connect pushbutton mit methode
Verfasst: Donnerstag 8. November 2012, 17:03
Hallo,
ich würde gerne durch das Drücken verschiedener pushButtons eine methode mit verschiedenen Parametern aufrufen. Im Beispiel habe ich eine Funktion für Knopf 1 und eine für Knopf 2 aber ich würde gerne alle Knöpfe mit der Funktion funct_buttonAllg verknüpfen und nur den Parameter abhängig vom Knopf angepasst übergeben. Leider kann man das wohl nicht durch
also was tun?
ich würde gerne durch das Drücken verschiedener pushButtons eine methode mit verschiedenen Parametern aufrufen. Im Beispiel habe ich eine Funktion für Knopf 1 und eine für Knopf 2 aber ich würde gerne alle Knöpfe mit der Funktion funct_buttonAllg verknüpfen und nur den Parameter abhängig vom Knopf angepasst übergeben. Leider kann man das wohl nicht durch
Code: Alles auswählen
self.connect(self.ui.PB_button3, QtCore.SIGNAL("clicked()"),
self.funct_buttonAllg(3))
Code: Alles auswählen
#!/usr/bin/python
# -*- encoding: utf8 -*-
from PyQt4 import QtCore, QtGui, uic
class WritableObject:
def __init__(self):
self.content = []
def write(self, string):
self.content.append(string)
class GUI(QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
self.ui = uic.loadUi('uiGUI.ui')
self.ui.show()
# redirect print to console to widget
self.consoleBuffer = WritableObject()
sys.stdout = self.consoleBuffer
self.connect(self.ui.PB_button1, QtCore.SIGNAL("clicked()"),
self.funct_button1)
self.connect(self.ui.PB_button2, QtCore.SIGNAL("clicked()"),
self.funct_button2)
self.connect(self.ui.PB_button3, QtCore.SIGNAL("clicked()"),
self.funct_buttonAllg)
# functions for the buttons
def funct_button1(self):
print "Button 1 pressed"
self.printToConsole()
def funct_button2(self):
print "Button 2 pressed"
self.printToConsole()
def funct_buttonAllg(self, value=1):
print "Button " + str(value) + " pressed"
self.printToConsole()
def printToConsole(self):
self.ui.TE_console.clear()
self.ui.TE_console.insertPlainText(''.join(self.consoleBuffer.content))
self.ui.TE_console.ensureCursorVisible()
# ----------------------------------------------------------------------------
if __name__ == "__main__":
import sys
from PyQt4 import QtCore, QtGui, uic
app = QtGui.QApplication(sys.argv)
objGUI = GUI()
sys.exit(app.exec_())
# ----------------------------------------------------------------------------