Python QT(PySide)如何将外部变量传递给类
问题描述:
我对Python QT和面向对象的游戏相当新颖。这里的情况:Python QT(PySide)如何将外部变量传递给类
我有一个字典数组,我需要输出一些这些键和值到GUI中。我必须知道有多少键/值,当然这意味着我需要对它们进行计数。如何传递“dic”以便“qCount”函数(请参阅下面的代码)可以获得我的密钥数量,以便可以在GUI中填充正确数量的字段。 (它的问题清单将采取将回读的答案)
我会想“类output_GUI(QtGui.QWidget,arrayofdics)”将是我会做的,但是这似乎更像一个函数声明不是一个类的东西。我确信还有一些我需要传递给班级的实例,但我对这个主题不太了解。
十分赞赏任何意见,
谢谢
巴勃罗
class output_GUI(QtGui.QWidget):
def __init__(self):
super(output_GUI, self).__init__()
self.initUI()
def initUI(self):
#populate fields with obtained keys
#some code.....
def qCount(dic):
for n, ques in enumerate(d['Question'] for d in dic):
#get number of questions etc...
def main():
app = QtGui.QApplication(sys.argv)
ex = output_GUI()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
答
嗯..我不知道如果我完全理解你的问题或没有。看来你的问题更多的是面向对象的编程。下面的代码也许就是你的需要:
class output_GUI(QtGui.QWidget):
def __init__(self):
super(output_GUI, self).__init__()
self.initUI()
def initUI(self):
#populate fields with obtained keys
#some code.....
self.your_variable = 1
self.your_dic = {'1': 'How are you?', '2': 'Where are you going?'}
def print_your_variable_for_fun(self):
print self.your_variable # output->1
self.your_variable = 2
print self.your_variable # output->2
self.your_variable = 1
def qCount(self):
for n, ques in enumerate(self.your_dic.values()):
#get number of questions etc...
print n, ques
def qAdding(self, newQuestion):
# adding question into your question dictionary
self.your_dic[str(len(self.your_dic)+1)] = str(newQuestion)
def main():
app = QtGui.QApplication(sys.argv)
ex = output_GUI()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
在你output_GUI类,每个成员函数可以通过传递“自我”(类本身)作为函数参数确定。所以它的成员函数可以操作它的(output_GUI_class)属性。
目前还不清楚字典是从哪里来的。取决于你需要以某种方式传递它。你基本上没有提供足够的信息来解决这个问题。 – Trilarion