从其他Python脚本更改PyQt的QLabel

问题描述 投票:-1回答:2

Script1具有QlabelScript2正在计算一些值。

我想从脚本2中的编码更改Qlabel的内容。

例如,我写了

self.button_A.clicked.connect(test)

我写过,

import script1

def test():
    self.label_A.setText("this is changed text")

关于脚本2。

并且作为运行结果,自我未定义...

我不知道发生了什么。

python user-interface pyqt pyqt5 uicontrol
2个回答
0
投票

self指的是从您定义button_A的类中创建的对象。

例如,如果代码如下:

class MyWindow(QtGui.QMainWindow):

    def __init__(self):
        super().__init__()
        self.button_A = QtGui.QPushButton("Button A", self)
        self.button_A.clicked.connect(test)

并且您使用以下方法实例化了对象:

my_window = MyWindow()

然后您必须在脚本2中引用该my_window,并使用以下命令调用该命令:

from script1 import my_window

my_window.label_A.setText("this is changed text")

0
投票

我考虑@ipaleka的响应的做法是在我的Script1中添加了几行。

import Script2

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)


        self.button_A.clicked.connect(Script2.test)
.
.
.
ui = Ui_MainWindow() #this is the one I added***

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

以及我的脚本2,

from Script1 import ui

def test():
    .
    .
    ui.label_A.setText("this is changed text")

并且说:AttributeError: 'Ui_MainWindow' object has no attribute 'help_line'

© www.soinside.com 2019 - 2024. All rights reserved.