从未在Python/PyQt中定义的(子)类访问GUI元素
我有一个由Qt设计器创建的GUI。一个元素(“屏幕截图”)用作另一个类定义的占位符。它的Python代码翻译如下所示:从未在Python/PyQt中定义的(子)类访问GUI元素,python,pyqt,Python,Pyqt,我有一个由Qt设计器创建的GUI。一个元素(“屏幕截图”)用作另一个类定义的占位符。它的Python代码翻译如下所示: ... class Ui_endomess(object): def setupUi(self, endomess): ... self.screenshot = screenshot(self.centralwidget) ... from screenshot import screenshot
...
class Ui_endomess(object):
def setupUi(self, endomess):
...
self.screenshot = screenshot(self.centralwidget)
...
from screenshot import screenshot
...
class screenshot(QGraphicsView):
...
def some_function(self):
...
self.calibrateButton.setEnabled(True)
“屏幕截图”类如下所示:
...
class Ui_endomess(object):
def setupUi(self, endomess):
...
self.screenshot = screenshot(self.centralwidget)
...
from screenshot import screenshot
...
class screenshot(QGraphicsView):
...
def some_function(self):
...
self.calibrateButton.setEnabled(True)
两者都由具有以下结构的主脚本使用:
...
from endomess_ui import Ui_endomess
...
class endomess(QMainWindow, Ui_endomess):
def __init__(self):
QMainWindow.__init__(self)
self.setupUi(self)
...
def main(argv):
app = QApplication(argv, True)
wnd = endomess()
wnd.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main(sys.argv)
当然,我可以在“endomess”类中操作GUI对象,如下所示:
...
class Ui_endomess(object):
def setupUi(self, endomess):
...
self.screenshot = screenshot(self.centralwidget)
...
from screenshot import screenshot
...
class screenshot(QGraphicsView):
...
def some_function(self):
...
self.calibrateButton.setEnabled(True)
我想做的是从“screenshot”类中的函数操作GUI元素。我到处乱打“全球”电话,但我就是不知道怎么做。这可能吗
提前感谢您的帮助 qt方法是在
屏幕截图
类中定义一个信号,并将其连接到endomise
类中的一个插槽,然后该插槽可以执行修改
在屏幕截图
类中,您还可以作为self.parent().parent()
访问对象(self.parent()应该是中心Widget
,它是endomise
实例的父对象),但如果层次结构中的某些内容发生更改,这可能会中断