Events in QDialog einfangen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Bernhard_42
User
Beiträge: 4
Registriert: Freitag 16. Dezember 2011, 15:03

Hallo zusammen,

ich habe einen kleinen Dialog erstellt und möchte nun über Tastatureingaben etc. Funktionen ausführen.
Leider werden meine Events nicht erkannt.
Könnt Ihr mir helfen und erklären, was ich falsch mache bzw. was ich noch machen muß, um die Events einzufangen.

Danke!
Bernhard

Code: Alles auswählen

from PyQt4 import QtCore, QtGui
import sys

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Dialog(object):

    def setupUi(self, Dialog):
        self.Dlg = Dialog
        Dialog.setObjectName(_fromUtf8("Dialog"))
        Dialog.resize(605, 545)
        Dialog.setWindowTitle(QtGui.QApplication.translate("Anzeigeprogramm", "Anzeigeprogramm", None, QtGui.QApplication.UnicodeUTF8))

        self.BTest = QtGui.QPushButton(Dialog)
        self.BTest.setGeometry(QtCore.QRect(490, 10, 111, 23))
        self.BTest.setText(QtGui.QApplication.translate("Dialog", "TestButton", None, QtGui.QApplication.UnicodeUTF8))
        self.BTest.setFlat(False)
        self.BTest.setObjectName(_fromUtf8("TestButton"))

        QtCore.QObject.connect(self.BTest, QtCore.SIGNAL(_fromUtf8("clicked()")), self.TestButton)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def TestButton( self ):
        print "TestButton"

    def resizeEvent( self, event ):
        print "Resize"
 
    def keyPressEvent(self, event):
        print "Key"

    def mouseMoveEvent(self, event):
        print "mouseMoveEvent"

def main():
    app = QtGui.QApplication(sys.argv)
    Dialog = QtGui.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    
    Dialog.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()
lunar

@Bernhard_42: Die Klasse, in welcher Du die Methoden für die Ereignisbehandlung implementierst, muss von "QDialog" abgeleitet sein. Und bitte, arbeite in Deinem eigenen Interesse erst weiter an diesem Projekt, wenn Du wirklich verstanden hast, warum das der Fall ist, und warum Dein Quelltext nicht funktioniert.

Der Quelltext sieht so aus, als hättest Du Dir einfach den vom Designer erzeugten Quelltext angesehen, und davon abgeschrieben, ohne zu verstehen, was Du da tust. Nichts für ungut…
Antworten