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_())
# ----------------------------------------------------------------------------