Logo ROOT   6.16/01
Reference Guide
qtexample.py
Go to the documentation of this file.
1## \file
2## \ingroup tutorial_pyroot
3## Qt example
4##
5## \macro_code
6##
7## \author Wim Lavrijsen
8
9import sys
10from PyQt4.QtGui import *
11from PyQt4.QtCore import *
12
13
14import ROOT
15import sip
16
17class window(QMainWindow):
18 def __init__(self):
19 # Init the main window.
20 QMainWindow.__init__(self)
21 self.resize(350, 350)
22
23 # Create the central widget.
24 self.CentralWidget = QWidget(self)
25 self.setCentralWidget(self.CentralWidget)
26 self.Layout = QGridLayout(self.CentralWidget)
27
28 # Create a button.
29 self.QuitButton = QPushButton(self.centralWidget())
30 self.QuitButton.setText('Quit')
31 self.Layout.addWidget(self.QuitButton, 1, 0)
32 # Connect the button.
33 QObject.connect(self.QuitButton, SIGNAL('clicked()'), self.quit)
34
35 # Create a root histogram.
36 self.hist = ROOT.TH1F("pipo","pipo", 100, 0, 100)
37
38 # Create the main TQtWidget (using sip to get the pointer to the central widget).
39 self.Address = sip.unwrapinstance(self.CentralWidget)
40 self.Canvas = ROOT.TQtWidget(sip.voidptr(self.Address).ascobject())
41 ROOT.SetOwnership( self.Canvas, False )
42
43 # Place the TQtWidget in the main grid layout and draw the histogram.
44
45 self.Layout.addWidget(sip.wrapinstance(ROOT.AddressOf(self.Canvas)[0],QWidget), 0, 0)
46 self.hist.Draw()
47
48 def quit(self):
49 print 'Bye bye...'
50 self.close()
51 ROOT.gApplication.Terminate()
52
53
54if __name__ == '__main__':
55 application = qApp
56 terminator = ROOT.TQtRootSlot.CintSlot()
57 termAddress = sip.wrapinstance(ROOT.AddressOf(terminator)[0],QObject)
58 QObject.connect(application, SIGNAL("lastWindowClosed()"),termAddress ,SLOT("Terminate()"))
59 w = window()
60 w.show()
61 ROOT.gApplication.Run(1)
62 print 'Bye !'
th1 Draw()