Nun zu meinem (verständniss)Problem.
Die GUI besitzt eine eigene klasse. innerhalb dieser kann ich funktionen für die einzelnen Slots definieren. ich versuche nun die elemente der GUI von außerhalb dieser Klasse zu maipulieren.
Das habe ich sowohl direkt mit der Bezeichnung des Elementes als auch durch den Aufruf einer Funktion innerhalb dieser GUI-Klasse versucht. Hatte aber keinen echten erfolg.
Code: Alles auswählen
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
from gmetertest import Ui_MainWindow as Dlg
from Boarddummy import Ui_MainWindow as Dlg2
class MeinDialog(QtGui.QDialog, Dlg):
def __init__(self):
QtGui.QDialog.__init__(self)
self.setupUi(self)
#Slots
self.connect(self.menuBeenden, QtCore.SIGNAL("clicked()"), self.onQuit)
self.connect(self.B_Trennen, QtCore.SIGNAL("clicked()"), self.onTrennen)
# self.connect(self.S_G_YAchse, QtCore.SIGNAL("valueChanged(int)"), self.on_ySlider_change)
self.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.Dummysenden)
def onQuit(self):
# Methode zum Fensterschliessen
self.E_XAchse.setText("Schuess")
self.close()
def onTrennen(self):
self.E_XAchse.setText("Test")
value_xachsefine = self.S_F_XAchse.value()
self.E_YAchse.setText(str(value_xachsefine))
self.S_F_ZAchse.setValue(100)
def on_ySlider_change(self):
value = self.S_G_YAchse.value()
valuecut = value
if value > 200: valuecut = 200
if value < -200: valuecut = -200
self.S_F_YAchse.setValue(valuecut)
self.E_YAchse.setText(str(value))
def on_Call(self):
self.E_XAchse.setText("Weg2")
self.S_F_XAchse.setValue(100)
def Dummysenden(self):
valueX = self.verticalSlider.value()
valueY = self.verticalSlider_2.value()
valueZ = self.verticalSlider_3.value()
tempText = self.EB_Terminal.toPlainText()
sendString = "S: X" + str(float(valueX)/100) + " Y" + str(float(valueY)/100) + " Z" + str(float(valueZ)/100)
tempText = sendString + " \n" + tempText
self.EB_Terminal.setText(tempText)
Reciver("test")
def Reciver(Input):
print Input + "Global"
test = MeinDialog()
test.on_Call()
app = QtGui.QApplication(sys.argv)
dialog = MeinDialog()
dialog.show()
print "test"
sys.exit(app.exec_())
zum Ablauf des Porgrammes.
- pushButton wird betätigt
-> klasseninterne Funktion "Dummysenden" wird aufgerufen
-> nach erfolgreicher abarbeitung der internen Befehle wird die externe Funktion "Reciver" gerufen ind ihr Werte übergenen.
-> diese Werte werden auch übernommen und durch den Code der externen Funktion ausgeführt
-> in dieser Funktion versuche ich die Klasseninterne Funktion "on_Call" aufzurufen aber doert scheitert alles dann und ich verstehe nicht warum.
ich habe ein anderes Programm geschrieben, dass aus 2 Klassen mit mehreren internen Funktionen und mehreren Hauptebenen funktionen besteht. in diesem Programm funktionieren die funktionsaufrufe super egal in welchen richtungen. klassen intern von klasse zu klasse. Alsses halt.
So langsam wächst die Frustration.
Ich bitte also um ein paar Tipps.
wie rufe ich eine funktion innerhalb DIESER Klasse auf
wie manipuliere ich die Elemente der GUI von außerhalb der GUI-Klasse
mfg