1

我有一个由 Qt Designer 创建的 GUI。一个元素(“屏幕截图”)用作另一个类定义的占位符。它的 Python 代码翻译如下:

...

class Ui_endomess(object):

    def setupUi(self, endomess):
        ...
        self.screenshot = screenshot(self.centralwidget)
        ...        

from screenshot import screenshot

“截图”类如下所示:

...
class screenshot(QGraphicsView):
... 
    def some_function(self):
        ...

两者都由具有以下结构的主脚本使用:

...
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 对象:

self.calibrateButton.setEnabled(True)

我想要做的是从“屏幕截图”类中的函数操作 GUI 元素。我搞砸了“全球”电话,但我只是不知道该怎么做。这可能吗?

提前感谢所有帮助!

4

1 回答 1

2

qt 方式是在您的screenshot类中定义一个信号并将其连接到您的类中的一个插槽,endomess然后可以执行修改。

screenshot类中,您也可以访问对象,因为self.parent().parent()(self.parent() 应该是centralWidget,并且是endomess实例的父对象),但是如果层次结构中的某些内容发生更改,这可能会中断。

于 2012-11-14T18:00:36.057 回答