实施例
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)
我尝试将我的PyQt function.py
连接到main.py
。它一直给我这个TypeError:functionA()只取1个参数(给定2个)。
如果我带走了自我'因此它FT.testClass().functionA()
,然后我得到了AttributeError:' testClass'对象没有属性' Qlabel'
我在PyQt : accessing elements from outside the class中看到它只使用obj
而不是使用类。
我想了解如何解决这个问题,以及为什么我之前的方法无法解决问题。任何帮助将不胜感激!
答案 0 :(得分:0)
在functionA的定义中再创一个Entry。 对于例如
def functionA(self, mainClassObj):
#doSomething
self.Qlabel.clear()
错误的原因是你用一个额外的参数调用testclass函数。你用一个参数定义它。
注意:您必须启动Qlabel:
def functionA(self, mainClassObj):
#doSomething
from PyQt5.QtWidgets import QLabel
Qlabel().clear()
这应该适合你。
答案 1 :(得分:0)
我设法让它运转起来。问题基本上在function.py
,我使用self.Qlabel.clear()
代替object.Qlabel.clear()
,
这是工作代码。
function.py
class testClass(object):
def functionA(self, object):
#doSomething
object.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)