Hi,

I have 2 problems with QAbstractButton.clicked and auto-connection:

1. the auto-connected slot gets called twice, I have no idea why

2. according to Qt4 docs clicked has a boolean argument which I cannot
use with the autoconnected slot.

The attached files include a minimal example.

Andreas

-- 
Your lucky number is 3552664958674928.  Watch for it everywhere.
<ui version="4.0" >
 <author></author>
 <comment></comment>
 <exportmacro></exportmacro>
 <class>Form</class>
 <widget class="QWidget" name="Form" >
  <property name="geometry" >
   <rect>
    <x>0</x>
    <y>0</y>
    <width>312</width>
    <height>246</height>
   </rect>
  </property>
  <property name="windowTitle" >
   <string>Form</string>
  </property>
  <layout class="QHBoxLayout" >
   <property name="margin" >
    <number>9</number>
   </property>
   <property name="spacing" >
    <number>6</number>
   </property>
   <item>
    <widget class="QPushButton" name="pushButton" >
     <property name="text" >
      <string>PushButton</string>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <pixmapfunction></pixmapfunction>
 <resources/>
 <connections/>
</ui>
import sys
import cStringIO
import os
from PyQt4 import QtCore, QtGui
# this time, we use the code generator
from PyQt4.uic import Compiler

def compileToType(filename):
    code_string = cStringIO.StringIO()
    widget_info = Compiler.compileUi(file(filename, "r"), code_string)
    # the buffer code_string now contains the generated Python code
    widget_module = compile(code_string.getvalue(), filename, "exec")
    exec widget_module
    return locals()[widget_info["uiclass"]]

class myWidget(QtGui.QWidget, compileToType("test.ui")):
        def __init__(self):
                QtGui.QWidget.__init__(self)
                self.setupUi(self)

        # according to Qt4 docs clicked takes a boolean argument
        def on_pushButton_clicked(self):
                print "test"

if __name__ == "__main__":
        app =  QtGui.QApplication(sys.argv)
        w = myWidget()
        w.show()
        sys.exit(app.exec_())
_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to