누군가 어떻게 말해 줄 수 있습니까?하나의 파이에서 gui로 문자열 전달하기
main.py와 gui.py (pyqt4에서 작성)가 있습니다. main.py는 "hello world"라는 코드를 실행하고이 문자열을 gui.py listWidget.addItem()
에 전달하려고합니다.
그래서 main.py에서 내가 그랬어 :
from gui import Ui_Form
send_str = "hello all"
ui.listWidget.addItem(send_str)
나는 오류를 얻을 : NameError: global name 'ui' is not defined
을. 내가 작업하는 모든 경우, 한 평에 모두 코드를 넣으면 gui.py 같이 gui.py 가리키는
는
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
입니다. 이 두 가지를 분리하는 방법, 내 main.py가 끝없는 루프에서 실행되기를 원하기 때문에 때때로 GUI를 열고 main.py가 창으로 보낼 새 값을 확인하고 싶습니까?
모듈을'import '할 때'import'를하는 스크립트에서 전역을 정의하는 모든 변수를 자동으로 만들지 않습니다. 이 경우'gui.ui'와 같이 모듈 이름 앞에 접두사가 필요합니다. 그러나 'ui'를 정의한 코드 부분은'if __name__ == "__main __":'내부에 있으므로 스크립트를 가져올 때 변수가 정의되지 않으므로 여전히 문제가 있습니다. 접두사를 추가 한 경우 – martineau
답장을 보내 주셔서 감사합니다. 나는 이제 어떻게이 일을 할 수 있는지 전혀 모른다. 아이디어는 "서비스"를 메인 py로 실행하고, 필요에 따라 gui를 실행하고 상태를 서비스와 동일하게 체크 할 때마다 ... – nele
'gui.py'는 변경할 수 있습니까? – martineau