【问题标题】:dynamically asigning instances in Python/PyQt4在 Python/PyQt4 中动态分配实例
【发布时间】:2013-06-26 04:08:51
【问题描述】:

好的,这可能是重复的,但由于我无法从(可能)类似的问题中得到任何东西,这是我的:我正在开发一个小型 PyQt4 程序,我可以在其中输入歌曲的名称在 QLineEdit 中,然后在其下方添加一个 QLabel。我想要在每个标签旁边有一个按钮,单击时删除标签。相关代码:

    def Add(self):


        self.rf= QtGui.QLabel(self.le1.text(),self)
        self.rf.move(45,30)
        self.rf.resize(450,30)
        self.rf.show()


        self.x = QtGui.QPushButton("X",self)
        self.x.move(10,30)
        self.x.resize(30,30)
        self.x.show()
        self.x.clicked.connect(self.Del)


    def Del(self):

        self.rf.close()
        self.x.close()

现在,我不明白如何为每个动态添加的 Qlabel 分配不同的实例,以便在单击按钮时删除特定的实例。

我的最佳想法是创建一个变量,其中包含一个数字,该数字会随着每个添加的 QLabel 发生变化,例如 var = rf+str(num) 和 num = 0,然后为每个 QLabel 添加 1 到 num,然后使用 getattr对于实例,所以 getattr(self, var) = Qtgui.QLabel(...),不幸的是,这给了我一个错误,我无法将该值分配给函数。而且我无法创建字典,因为我必须为此提供不同的实例。

任何想法将不胜感激,非常感谢。

【问题讨论】:

    标签: python dynamic pyqt4 instances getattr


    【解决方案1】:

    您可以将它们全部保存在一个字典中,然后将其从标签文本中删除。它还提供了一种快速检查重复项的方法。

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      相关资源
      最近更新 更多