On Sunday 04 May 2008, Lance Gamet wrote: > Hi, > about 3 years ago I did a bit of Qt3 and 4 on C++, now I am trying to do > something in python. > > A QMainWindow subclass as my mainwindow. Its basically a frame with no > widgets of its own. > > Several QWidget subclasses each representing a mode of the program, these > widgets should appear in the mainwindow depending on what part of the > program is being used. > > I have made the main window and a couple of widgets with designer-qt4 and > generate a Ui_Whatever.py with pyuic4 and subclass that. > > My problem is I cant get my widgets to appear in the main window. > > My MainWindow.py looks like (imports etc skipped): > > class MainWindow(QMainWindow, Ui_MainWindow): > def __init___(self): > QMainWindow.__init__(self) > self.setupUi(self) > > def newTeamWizardMode(self): > Widget = QWidget() > self.newTeamWizard = CreateNewTeamWizard(Widget) > self.newTeamWizard.setGeometry(QRect(0,0,90, 160)) > self.newTeamWizard.setObjectName("newTeamWizard") > self.newTeamWizard.show() > > My CreateNewTeamWizard is defined like so: > > class CreateNewTeamWizard(QWidget, Ui_CreateNewTeamWizard): > def __init___(self, parent = None): > QWidget.__init__(self, parent) > self.setupUi(self) > > In my main program i make the main window and try and add the widget like > this: > > app = Qt.QApplication(sys.argv) > mainWindow = MainWindow() > app.connect(app, Qt.SIGNAL("lastWindowClosed()"), app, Qt.SLOT("quit > ()")) > mainWindow.newTeamWizardMode() > mainWindow.show() > > One thing i tried was changing the CreateNewTeamWizard in > MainWindow.newTeamWizardMode to CreateNewTeamWizard(Widget, self) to > provide the main window as the parent but I get the following error: > > self.newTeamWizard = CreateNewTeamWizard(Widget, self) > TypeError: argument 2 of QWidget() has an invalid type > > I have looked for examples, but everything I have found is a bit too > simple. Creating a single window or widget, displaying it as the programs > main window and exiting when the window is closed. > > I havent found anything to tell me how to make a widget appear in a > mainwindow how I want. > > Any tips?
I think QMainWindow.setCentralWidget() is what you are looking for. > If someone can point me to a nice open source program that uses pyqt4 > that might help. The eric4 IDE probably covers most things you'll ever need. Phil -- http://mail.python.org/mailman/listinfo/python-list