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_())
簡単にするために、別のファイルに別の関数を作成しました。どのスクリプトからでもいつでもアクセスできるようにします。
another_file_function からの関数のサンプルを次に示します。
#!/usr/bin/env python
def function2():
#code here
self.ui.text_label.setText("some text")
main スクリプトの function1 と another_file_function の function2 は同じです。また、メイン クラスから function2 を呼び出しています。問題は、function1()
メイン スクリプトから使用すると、問題なく GUI テキストが更新されることです。ただし、別のファイルで同じ関数を使用し、メイン スクリプトからその関数を呼び出すと、更新に失敗し、global name 'self' is not defined
エラーが発生します。
どこが間違っていますか?どんな助けでも感謝します。
ありがとうございました。