如何将变量从一个python模块(1st module)
传递到另一个(2nd module)
,其中包含一个主模块和两个Qdialog
,当2nd module
中按下按钮时会出现这些模块
如何将这些值从1st module
发送到Qdialog
2nd module
我正在处理多个模块和数据需要在这里和那里更新,并且与继承/创建类和模块的实例完全混淆
# mainwindow.py(1st module)
from 2nd_module import window2, dialog1, dialog2
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.win2 =window2()
self.dia1 =dialog1()
if 1:
self.win2.bar()
# pass data
self.dia1.some_function(data)
。
# 2nd_module.py
from mainwindow import mainwindow
class dialog1 (QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
def update(self):
w = window2()
#do something
w.self.ma.foo()
.
.
class dialog2 (QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
.
.
class window2(QtGui.QMainWindow):
def __init__(self):
super(window2, self).__init__()
self.update_request = 0 # initilizing the variable here
self.ma = mainwindow()
self.connect(dialog1_bttn, Qt.SIGNAL("clicked()"), self.open_dialog1 )
def open_dialog1(self): #this is how i create the instance of dialog box
self.open1 =dialog1()
self.open1.show
def foo(self): # this updates the request value from 2 dialog boxes
#do something
self.update_request = 1
def bar(self): # this is called from 1st module to check if there are any update requests
if self.update_request ==1:
#do something
我的挣扎
所以这里当我从dialog1调用foo()
时它工作正常并将值更新为1.但是现在当我从第一个模块调用bar()
时,值self.update_request
变为0全部时间
我的mainwindow(1st module)
运行所有后台任务,例如从串口交换数据等。我需要将这些数据发送到dialog1
中的2nd_module
来更新值
任何人都可以告诉我如何创建Qt Dialogs, windows
的正确实例并将data/variables/list
从一个班级传递到另一个班级..提前谢谢