Ich habe bisher in C++ und Qt programmiert und wollte nun mal PyQt4 ausprobieren. Ich habe mir mit dem Designer ein simples Window erstellt und versuche nun meine Signals mit selbst definierten Slots zu connecten. Laut http://www.riverbankcomputing.com/Docs/ ... -and-slots kann ich fuer den Slot eine ganz normale Python Funktion verwenden, richtig?
Ich habe nun zwei Dateien:
- *UI_Main.py - welches das aus dem .ui file (QtDesigner) generierte Python file ist
*main.pyw - mein simples Programm
Code: Alles auswählen
#main.pyw
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4 import QtGui, QtCore
from UI_Main import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent = None):
QMainWindow.__init__(self, parent)
self.setupUi(self)
#self.connect(self.ButtonAdd, SIGNAL("clicked()"),self.addEntry)
connect(self.ButtonAdd,QtCore.SIGNAL("clicked()"),self.close)
def addEntry(self):
self.lineEditAdd.setText("Test")
self.listCars.addItem("Test")
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Main = MainWindow()
ui = Ui_MainWindow()
ui.setupUi(Main)
Main.show()
sys.exit(app.exec_())
Dann habe ich versucht, dass der Button einfach das Programm beendet, naemlich mit self.close als SLOT.
In der automatisch generierten Ui_MainWindow Klasse funktioniert das naemlich einwandfrei:
Code: Alles auswählen
QtCore.QObject.connect(self.ButtonQuit,QtCore.SIGNAL("clicked()"),MainWindow.close)
Vielen Dank