BeispielZugriff auf UI-Elemente von einer anderen Klasse in Python
function.py
class testClass(object):
def functionA(self):
#doSomething
self.Qlabel.clear()
main.py
class mainClass(object):
def __init__(self, parent = #something):
#initialize something
super(mainClass, self).__init__(parent)
self.setupUi(self)
self.Qlabel.clicked.connect(self.testFunc)
def testFunc(self):
import function as FT
FT.testClass().functionA(self)
Ich habe versucht, meinen PyQt function.py
zu main.py
verbinden. Es gibt mir dieses TypeError: functionA() nimmt genau 1 Argument (2 gegeben).
Wenn ich das ‚Selbst‘ wegzunehmen in so dass es FT.testClass().functionA()
ist, dann bekomme ich Attribute: ‚Testclass‘ -Objekt kein Attribut ‚QLabel‘
ich in PyQt : accessing elements from outside the class sah, dass es mit nur mit obj
funktioniert aber nicht mit Klassen.
Ich würde gerne verstehen, wie das zu beheben und auch warum meine vorherige Methode nicht funktioniert. Jede Hilfe wäre willkommen!
Auch wenn Sie nicht wollen, Objekt aktuelle Klasse dann ändern FT.testClass folgende Sie() übergeben. Funktioneine() – db1912
Ich habe beide Vorschläge ausprobiert und bekomme einen weiteren Fehler: AttributError 'testClass' Objekt hat kein Attribut 'Qlabel'. –
bedeutet jetzt, Sie können die Funktion aufrufen. Aber Qlabel ist nicht Teil deiner testClass. Machen Sie diesen Teil von testClass oder importieren Sie ihn. du importierst es besser und entfernst "self". Präfix. Z.B. aus PyQt.QtCore import * aus PyQt.QtGui import * und benutze Qlabel.clear() – db1912