[PyQt] Having trouble emitting and connecting SIGNALS

Entity Reborn entityreborn at gmail.com
Sat Mar 5 20:33:59 GMT 2011


Gah, I figured it out. Noob error.

On Sat, Mar 5, 2011 at 12:20 PM, Entity Reborn <entityreborn at gmail.com>wrote:

> For some reason, with this code, I cannot get newitemfunc called.
>
>>  from PyQt4 import QtCore, QtGui
>>
>> import sys
>>
>>
>>> def newitemfunc(parentitem, newitem):
>>
>>     print("newitem")
>>
>>
>>> class class1(QtCore.QObject):
>>
>>     pass
>>
>>
>>> class class2(QtCore.QAbstractItemModel):
>>
>>     def test1(self, data):
>>
>>         return self.test2(data, class1())
>>
>>
>>>     def test2(self, data, curitem):
>>
>>         if "SubItems" in data:
>>
>>             for item in data["SubItems"]:
>>
>>                 newitem = class1()
>>
>>                 print("emitting")
>>
>>                 newitem.emit(QtCore.SIGNAL("newitem"), newitem)
>>
>>                 self.test2(item, newitem)
>>
>>
>>> class MainWindow(QtGui.QMainWindow):
>>
>>     def __init__(self, data, *args):
>>
>>         super(MainWindow, self).__init__(*args)
>>
>>         self.model = class2()
>>
>>         print("connecting")
>>
>>         self.connect(self.model, QtCore.SIGNAL("newitem"), newitemfunc)
>>
>>         self.model.test1(data)
>>
>>
>>
>> app = QtGui.QApplication(sys.argv)
>>
>>
>>> data = {
>>
>>     "Title": "Title",
>>
>>     "Summary": "Summary",
>>
>>     "SubItems": [
>>
>>         {
>>
>>             "Title": "Item 1",
>>
>>             "Summary": "A basic item",
>>
>>             "SubItems": [
>>
>>                 {
>>
>>                     "Title": "SubItem1.1",
>>
>>                     "Summary": "Sub item one of item one",
>>
>>                 },
>>
>>             ]
>>
>>         },
>>
>>         {
>>
>>             "Title": "CheckBoxItem",
>>
>>             "Summary": "A second item, currently a little bugged. (Should
>>> be flush to the left)",
>>
>>             "CheckBoxType": "CheckBox",
>>
>>             "Checked": True,
>>
>>         },
>>
>>         {
>>
>>             "Title": "RadioItems",
>>
>>             "Summary": "A third radio item",
>>
>>             "SubItems": [
>>
>>                 {
>>
>>                     "Title": "SubItem1.1",
>>
>>                     "Summary": "Sub item one of item three",
>>
>>                     "CheckBoxType": "Radio",
>>
>>                     "Checked": False,
>>
>>                 },
>>
>>                 {
>>
>>                     "Title": "SubItem1.2",
>>
>>                     "Summary": "Sub item two of item three",
>>
>>                     "CheckBoxType": "Radio",
>>
>>                     "Checked": True,
>>
>>                 },
>>
>>                 {
>>
>>                     "Title": "SubItem1.3",
>>
>>                     "Summary": "Sub item three of item three",
>>
>>                     "CheckBoxType": "Radio",
>>
>>                     "Checked": False,
>>
>>                 },
>>
>>             ]
>>
>>         },
>>
>>     ],
>>
>> }
>>
>>
>>> window = MainWindow(data)
>>
>> window.show()
>>
>>
>>> sys.exit(app.exec_())
>>
>>
> --
> ~EntityReborn
>



-- 
~EntityReborn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20110305/66e6ae68/attachment-0001.html>


More information about the PyQt mailing list