Script1具有QlabelScript2正在计算一些值。
我想从脚本2中的编码更改Qlabel的内容。
例如,我写了
self.button_A.clicked.connect(test)
我写过,
import script1
def test():
self.label_A.setText("this is changed text")
关于脚本2。
并且作为运行结果,自我未定义...
我不知道发生了什么。
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")
我考虑@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'