pyqt从不同fi的函数更新widget文本

2024-04-19 01:51:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用qtdesigner创建了gui表单,并使用pyuic4将其转换为python代码。我的主脚本示例如下:

#!/usr/bin/env python

from PyQt4 import QtGui
from multibootusb_ui import Ui_Dialog
import sys
import os
import another_file_function
class AppGui(QtGui.QDialog,Ui_Dialog):

    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.close.clicked.connect(self.close)
        another_file_function.function2()

    def function1():
        self.ui.text_label.setText("some text")
    function1()

app = QtGui.QApplication(sys.argv)
window = AppGui()
ui = Ui_Dialog()
window.show()
sys.exit(app.exec_())

为了方便起见,我在不同的文件中创建了不同的函数。这样它就可以在任何时候被任何通货存取。在

以下是另一个_file_函数的函数示例:

^{pr2}$

主脚本中的function1与另一个_file_函数中的function2是相同的。我也从主类调用function2。问题是,当我从主脚本使用function1()时,它会更新GUI文本而不会出现问题。但是,如果我在不同的文件中使用同一个函数,并从主脚本调用该函数,它将无法更新,并得到global name 'self' is not defined错误。在

我哪里错了?任何帮助都会得到认可。在

谢谢。在


Tags: 函数fromimportself脚本ui示例sys
1条回答
网友
1楼 · 发布于 2024-04-19 01:51:57

我也不清楚为什么function1起作用,我将假设它的定义中有一个self,而你删除了它。在

要使function2工作,您需要执行以下操作:

其他文件:

def function2(input):
    #code here
    input.ui.text_label.setText("some text")

主文件:

^{pr2}$

相关问题 更多 >