shainer_dev
29-08-2009, 15:00
Salve a tutti,
sto iniziando da poco ad imparare come usare le QT con il linguaggio python. Premetto che non ho mai usato le QT in altri contesti e sono poco esperta nell'uso di classi in generale.
Il problema nel mio codice è questo: se inserisco una Menubar, poi non riesco ad inserire più di un widget (impostato come central widget con setCentralWidget). Se provo ad esempio ad inserire un'hbox o una griglia con due pulsanti, essi non vengono visualizzati.
Ho provato a spostare la creazione del menu in una classe apposita, facendo avvenire la creazione nel suo __init__, ma non è servito. Al momento l'ho spostata in una funzione che si trova all'interno della stessa classe degli altri widget, col risultato che viene visualizzato il solo menu.
Ecco il codice interessato:
class MainWindow(QtGui.QMainWindow, QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
QtGui.QWidget.__init__(self, parent)
self.resize(700, 600)
self.hbox = QtGui.QHBoxLayout()
self.CreateMenus()
self.button = QtGui.QPushButton('prova')
self.button2 = QtGui.QPushButton('prova2')
self.hbox.addWidget(self.button)
self.hbox.addWidget(self.button2)
self.setLayout(self.hbox)
def CreateMenus(self):
self.quit = QtGui.QAction(QtGui.QIcon('icons/info.png'), 'Quit', self)
self.quit.setShortcut('Ctrl+Q')
self.connect(self.quit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
self.pref = QtGui.QAction(QtGui.QIcon('icons/info.png'), 'Preferences', self)
self.pref.setShortcut('Ctrl+P')
self.info = QtGui.QAction(QtGui.QIcon('icons/info.png'), 'Information', self)
self.info.setShortcut('Ctrl+I')
self.statusBar()
self.menubar = self.menuBar()
self.file = self.menubar.addMenu('&File')
self.mod = self.menubar.addMenu('&Edit')
self.about = self.menubar.addMenu('&About')
self.file.addAction(self.quit)
self.mod.addAction(self.pref)
self.about.addAction(self.info)
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
Dove sbaglio?
Un ringraziamento a chi mi risponderà,
Lisa
sto iniziando da poco ad imparare come usare le QT con il linguaggio python. Premetto che non ho mai usato le QT in altri contesti e sono poco esperta nell'uso di classi in generale.
Il problema nel mio codice è questo: se inserisco una Menubar, poi non riesco ad inserire più di un widget (impostato come central widget con setCentralWidget). Se provo ad esempio ad inserire un'hbox o una griglia con due pulsanti, essi non vengono visualizzati.
Ho provato a spostare la creazione del menu in una classe apposita, facendo avvenire la creazione nel suo __init__, ma non è servito. Al momento l'ho spostata in una funzione che si trova all'interno della stessa classe degli altri widget, col risultato che viene visualizzato il solo menu.
Ecco il codice interessato:
class MainWindow(QtGui.QMainWindow, QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
QtGui.QWidget.__init__(self, parent)
self.resize(700, 600)
self.hbox = QtGui.QHBoxLayout()
self.CreateMenus()
self.button = QtGui.QPushButton('prova')
self.button2 = QtGui.QPushButton('prova2')
self.hbox.addWidget(self.button)
self.hbox.addWidget(self.button2)
self.setLayout(self.hbox)
def CreateMenus(self):
self.quit = QtGui.QAction(QtGui.QIcon('icons/info.png'), 'Quit', self)
self.quit.setShortcut('Ctrl+Q')
self.connect(self.quit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
self.pref = QtGui.QAction(QtGui.QIcon('icons/info.png'), 'Preferences', self)
self.pref.setShortcut('Ctrl+P')
self.info = QtGui.QAction(QtGui.QIcon('icons/info.png'), 'Information', self)
self.info.setShortcut('Ctrl+I')
self.statusBar()
self.menubar = self.menuBar()
self.file = self.menubar.addMenu('&File')
self.mod = self.menubar.addMenu('&Edit')
self.about = self.menubar.addMenu('&About')
self.file.addAction(self.quit)
self.mod.addAction(self.pref)
self.about.addAction(self.info)
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
Dove sbaglio?
Un ringraziamento a chi mi risponderà,
Lisa