Python 从pyqt中GUI的另一个类访问实例变量
在我的项目中,我有两个班。我在访问第二类变量时遇到问题。代码结构如下所示Python 从pyqt中GUI的另一个类访问实例变量,python,pyqt4,Python,Pyqt4,在我的项目中,我有两个班。我在访问第二类变量时遇到问题。代码结构如下所示 class Ui_Dialog(object): def setupUi(self, Dialog): ------------------- ------------------- ------------------- ------------------- ------------------- def function1(self
class Ui_Dialog(object):
def setupUi(self, Dialog):
-------------------
-------------------
-------------------
-------------------
-------------------
def function1(self):
self.variable_I_wanna_share="XXXX"
-------------------
-------------------
class Ui_MainWindow(QtGui.QMainWindow,Ui_Dialog):
def setupUi(self, MainWindow):
-------------------
-------------------
-------------------
-------------------
def function2(self):
*Want to get that variable to here*
-------------------
我从一等继承了二等,但没用。有人能帮我弄清楚吗?
注意-第一类和第二类分别由pyuic4(pyqt)生成
谢谢。正如有人建议的那样,我认为您可以使用类变量归档所需内容
class Ui_Dialog(object):
variable_I_wanna_share = "XXXX"
def setupUi(self, Dialog):
pass
def function1(self):
Ui_Dialog.variable_I_wanna_share="YYYY"
class Ui_MainWindow(Ui_Dialog):
def setupUi(self, MainWindow):
pass
def function2(self):
#accessing class variable
print(Ui_Dialog.variable_I_wanna_share)
dialog=Ui_Dialog()
window=Ui_MainWindow()
下面是var类:
In [3]: window.function2()
XXXX
您可以使用function1从任何实例修改类var
In [4]: window.function1()
In [5]: window.function2()
YYYY
In [6]: window.variable_I_wanna_share
Out[6]: 'YYYY'
In [7]: dialog.variable_I_wanna_share
Out[7]: 'YYYY'
您还可以从实例中访问并修改类var
In [4]: window.function1()
In [5]: window.function2()
YYYY
In [6]: window.variable_I_wanna_share
Out[6]: 'YYYY'
In [7]: dialog.variable_I_wanna_share
Out[7]: 'YYYY'
请记住,如果您修改从实例引用它的类var,您将只为该实例修改它
In [8]: dialog.variable_I_wanna_share="ZZZZ"
In [9]: window.variable_I_wanna_share
Out[9]: 'YYYY'
In [10]: dialog.variable_I_wanna_share
Out[10]: 'ZZZZ'
正如有人建议的那样,我认为可以使用类变量归档所需的内容
class Ui_Dialog(object):
variable_I_wanna_share = "XXXX"
def setupUi(self, Dialog):
pass
def function1(self):
Ui_Dialog.variable_I_wanna_share="YYYY"
class Ui_MainWindow(Ui_Dialog):
def setupUi(self, MainWindow):
pass
def function2(self):
#accessing class variable
print(Ui_Dialog.variable_I_wanna_share)
dialog=Ui_Dialog()
window=Ui_MainWindow()
下面是var类:
In [3]: window.function2()
XXXX
您可以使用function1从任何实例修改类var
In [4]: window.function1()
In [5]: window.function2()
YYYY
In [6]: window.variable_I_wanna_share
Out[6]: 'YYYY'
In [7]: dialog.variable_I_wanna_share
Out[7]: 'YYYY'
您还可以从实例中访问并修改类var
In [4]: window.function1()
In [5]: window.function2()
YYYY
In [6]: window.variable_I_wanna_share
Out[6]: 'YYYY'
In [7]: dialog.variable_I_wanna_share
Out[7]: 'YYYY'
请记住,如果您修改从实例引用它的类var,您将只为该实例修改它
In [8]: dialog.variable_I_wanna_share="ZZZZ"
In [9]: window.variable_I_wanna_share
Out[9]: 'YYYY'
In [10]: dialog.variable_I_wanna_share
Out[10]: 'ZZZZ'
您使用的是实例变量,而不是类变量,因此必须从实例访问它。无论如何,在使用
function1
之前,写入的self.variable\u I\u wannna\u share
将不存在。当您从函数2继承时,您可能需要在函数2中执行此操作。例如函数2上的self.variable\u I\u want\u share
?使用类变量如何?例如,在您的\uuuu init\uuuu()
中,我在函数2上键入了self.variable\u I\u want\u share
。出现错误AttributeError:“Ui\u MainWindow”对象没有属性“variable\u I\u want\u share”
您使用的是实例变量,而不是类变量,因此必须从实例访问它。无论如何,在使用function1
之前,写入的self.variable\u I\u wannna\u share
将不存在。当您从函数2继承时,您可能需要在函数2中执行此操作。例如函数2上的self.variable\u I\u want\u share
?使用类变量如何?例如,在您的\uuuu init\uuuu()
中,我在函数2上键入了self.variable\u I\u want\u share
。出现错误AttributeError:'Ui\u MainWindow'对象没有属性'variable\u I\u want\u share'