[PyQt] mainwindow and dialog question
Jason Rahm
J.Rahm at F5.com
Mon Mar 28 15:00:41 BST 2011
Wow, that was simple. Spent the better part of the weekend digging through forums and tutorials trying to find an example to match. Thanks much for the rapid response.
Jason
From: pyqt-bounces at riverbankcomputing.com [mailto:pyqt-bounces at riverbankcomputing.com] On Behalf Of Vincent Vande Vyvre
Sent: Monday, March 28, 2011 7:54 AM
To: pyqt at riverbankcomputing.com
Subject: Re: [PyQt] mainwindow and dialog question
Le 28/03/11 13:48, Jason Rahm a écrit :
Python 2.7.1 / PyQt 4.8.3 / Qt 4.7.2
I have a mainwindow and a dialog designed in Qt Designer and converted to python code via pyuic4:
Mainwindow - Ui_editor.py (class is Ui_mw_editor)
Dialog1 - Ui_connect.py (class is Ui_dia_connect)
I have a menubar with actions defined in the Qt Designer (code from Ui_editor.py):
self.actionConnect = QtGui.QAction(mw_Editor)
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap(_fromUtf8("icons/default/ToolbarConnect.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.actionConnect.setIcon(icon2)
self.actionConnect.setObjectName(_fromUtf8("actionConnect"))
So, from my app.py file, I have this code:
import os, sys
from PyQt4 import QtCore
from PyQt4.QtGui import QMainWindow, QDialog, QApplication
from ui.Ui_Editor import Ui_mw_Editor
from ui.Ui_connect import Ui_dia_connect
class Main(QMainWindow, Ui_mw_Editor):
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
self.actionConnect.connect(self.connectDialog)
def connectDialog(self):
self.connectdlg = ConnectDlg()
self.connectdlg.show()
class ConnectDlg(QDialog, Ui_dia_connect):
def __init__(self):
QDialog.__init__(self)
self.setupUi(self)
self.actionConnect.connect(self.close)
def main():
app = QApplication(sys.argv)
window=Main()
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
###
If I remove the self.actionConnect.connect(self.connectDialog) and the supporting def and class, the mainwindow launches OK. If I include it, I get these errors:
D:\dev\f5editor>python mw2.py
Traceback (most recent call last):
File "mw2.py", line 42, in <module>
main()
File "mw2.py", line 35, in main
window=Main()
File "mw2.py", line 18, in __init__
self.actionConnect.connect(self.connectDialog)
TypeError: arguments did not match any overloaded call:
QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'instancemethod'
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'instancemethod'
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'instancemethod'
Any help would be appreciated.
Jason
_______________________________________________
PyQt mailing list PyQt at riverbankcomputing.com<mailto:PyQt at riverbankcomputing.com>
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Try like that:
self.actionConnect.triggered.connect(self.connectDialog)
cheers
--
Vincent V.V.
Oqapy<https://launchpad.net/oqapy>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20110328/b6294635/attachment.html>
More information about the PyQt
mailing list