【问题标题】:Python QT (PySide) How to pass external variable to the classPython QT(PySide)如何将外部变量传递给类
【发布时间】:2017-07-17 15:40:18
【问题描述】:

我对 Python QT 和面向对象的游戏相当陌生。情况如下:

我有一个字典数组,我需要将其中一些键和值输出到 GUI 中。我必须知道有多少键/值,所以这当然意味着我需要计算它们。如何传递“dic”以便“qCount”函数(参见下面的代码)可以获得我的键数,以便我可以在 GUI 中填充正确数量的字段。 (它是一个问题列表,将得到一个答案,然后再读回)

我认为像“class 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()

【问题讨论】:

  • 目前还不清楚词典的出处。根据您需要以一种或另一种方式传递它。你基本上没有提供足够的信息来解决这个问题。

标签: python qt pyside


【解决方案1】:

嗯.. 我不确定我是否完全理解你的问题。看来您的问题更多是关于面向对象的编程。以下代码可能是您需要的:

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 类中,您的每个成员函数都可以通过传递“self”(类本身)作为函数参数来建立。这样它的成员函数就可以操作它的(output_GUI_class)属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 2012-11-15
    • 2020-02-14
    • 1970-01-01
    相关资源
    最近更新 更多