On Sun, 06 May 2012 20:25:15 +0300, Enes Albay <albaye...@gmail.com> wrote: > Hi, > > > If i implement my class like below: > > class MainWindow(QtGui.QMainWindow): > def __init__(self): > super(MainWindow, self).__init__() > self.initUI() > > def initUI(): > .... > .... > self.showButton = QtGui.QPushButton(u"KlavyeyiGoster", > self.mainWidget) > self.showButton.resize(self.showButton.sizeHint()) > self.showButton.clicked.connect(self.widgetClicked) > .... > .... > > > def widgetClicked(self): > self.newWidget = QtGui.QWidget(); > self.newWidget.setGeometry(0, 0, 300, 300) > self.newWidget.show() > > when i click Button, newWidget is constructed and showed. But if i > change "widgetClicked" method like this: > > def widgetClicked(self): > newWidget = QtGui.QWidget(); > newWidget.setGeometry(0, 0, 300, 300) > newWidget.show() > > when i clicked the button, it doesn't show anything. There are no > compilation or run time errors. > > What is the reason of this difference?
In the second version you aren't keeping a reference to the widget (either explicitly or implicitly by giving it a parent) so it is getting garbage collected when widgetClicked() returns. Phil _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt