On Thu, 9 Sep 2010 21:12:26 +0200, Peter Liedler <pe...@liedler.at> wrote: > Hello, > > I am testing the current beta of (k)ubuntu 10.10 maverick meerkat and > recognized that my pyqt application stopped to work properly. > > After some time of research I could tie the problem down to the following > situation: > > I have a qcheckbox in a subclassed qobject and connected the sigal > statechanged which works perfectly in the previous versions. E.g. ubuntu
> lucid. > I also checked if the signal works without a subclass - it does on both > pyqt > versions. > > There might be a problem in my code as well which was not causing > malfunction > before, so please see the code below. It could also be a bug in the nerw > version? > > Can you take a look into this and help me? You need to call QObject.__init__() from workLoadItem.__init__(). Phil > Thank you > > Peter > > ------------------------------------ > > #!/usr/bin/python > # -*- coding: utf-8 -*- > > # test > # > > > #signal stateChanged of subclass is called correctly in python-qt4 > 4.7.3-1ubuntu2~lucid1~ppa3 on lucid lynx > # > #does not work on maverick meerkat beta: Version: 4.7.4-0ubuntu1 > > import sys, os > import locale > from os.path import dirname, join > import time > > try: > from PyQt4.QtGui import * > from PyQt4 import QtCore > from PyQt4.QtCore import * > import urllib > except: > print "Loading of python libraries failed, please install python-qt4" > exit(1) > > > class vidgrabMainWindow(QMainWindow): > """ Main window of jase """ > def __init__(self, parent=None): > QMainWindow.__init__(self, parent) > self.setMinimumSize(800,200) > self.setupWindow() > > def setupWindow(self): > """ Initialize main widget """ > > self.mainWidget = QWidget(self) > self.setCentralWidget(self.mainWidget) > > self.buttonLayout = QGridLayout() > self.buttonLayout.setSpacing(3) > self.mainWidget.setLayout(self.buttonLayout) > self.checkSub = workLoadItem(self) > > class workLoadItem(QObject): > > def __init__(self, parent=None): > self.parent = parent > self.name = QLabel() > self.name.setText("...") > self.checkBox = QCheckBox() > self.checkBox.setText("Test") > self.connect(self.checkBox, SIGNAL("stateChanged(int)"), > self.checkCalled) > self.parent.buttonLayout.addWidget(self.checkBox, 0, 1) > > def checkCalled(self, i = None): > if i == 2: > self.checkBox.setText("Checked") > elif i == 0: > self.checkBox.setText("UnChecked") > else: > self.checkBox.setText("None") > > > def main(): > app = QApplication(sys.argv) > app.setOrganizationName("jackcy") > app.setOrganizationDomain("...") > app.setApplicationName("test") > app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) > > form = vidgrabMainWindow() > form.show() > > app.exec_() > > def quit(self): > QApplication.quit(self) > > > if __name__ == '__main__': > """ Main function """ > main() > > > _______________________________________________ > PyQt mailing list PyQt@riverbankcomputing.com > http://www.riverbankcomputing.com/mailman/listinfo/pyqt _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt