Я создал форму gui с помощью qtdesigner и преобразован в код python с помощью pyuic4. Образец моего основного сценария выглядит следующим образом:pyqt - Обновление текста виджета из функции из другого файла
#!/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")
function1 от главного сценария и function2 из another_file_function одинаковы. Также я вызываю функцию2 из основного класса. Проблема в том, что когда я использую function1()
из основного скрипта, он обновляет текст графического интерфейса без проблем. Однако, если я использую одну и ту же функцию в другом файле и вызываю эту функцию из основного сценария, она не обновляется, и я получаю ошибку global name 'self' is not defined
.
Где я ошибаюсь? Любая помощь предоставляется.
спасибо.
Ok. Вы правы, я забыл включить себя. Однако, когда я запускаю скрипт после модификации, я все равно получаю 'объект не имеет атрибута 'ui''. Если вы можете предложить какое-то объяснение, это поможет мне понять концепцию. Это всего лишь запрос. –
Это означает, что объект, над которым вы работаете, не имеет атрибута 'ui'. Измените свой вопрос, чтобы показать, что вы сейчас пытаетесь. – tacaswell