【问题标题】:python class get member addressee?python类获取成员收件人?
【发布时间】:2017-01-25 03:06:12
【问题描述】:

大家

我用c++程序很久了。

这几天,我用python做了一个GUI程序。

但是,我不了解python的类。

问题是这样的。

在这个 Gui 程序中,用户可以添加许多视图。然后单击按钮更改视图。

在我的代码中。我把元素放到这样的类中

class LoadingView():
    def __init__(self):
        self.idx=0
        self.view = pg.GraphicsLayoutWidget()
        self.w1 = self.view.addPlot()
        self.view.nextRow()
        self.w2 = self.view.addPlot()
        self.view.nextRow()
        self.w3 = self.view.addPlot()
        self.view.nextRow()
        self.w4 = self.view.addPlot()

我立即创建类并将其放入数组中

        self.TreeIdx = self.TreeIdx + 1
        self.AddNodeToTree(SetDlg.EditBoxName.text())
        Loding_view = LoadingView()
        self.LView.append(LoadingView)
        self.gridLayout_2.addWidget(Loding_view.view, 0, 0, 1, 1)

最后,当我按下按钮时,我想实现改变视图

            self.gridLayout_2.addWidget(self.LView[int(Text.split('.')[0]) - 1].view, 0, 0, 1, 1)

但是,它返回了 AttributeError: class LoadingView has no attribute 'view' 我不知道如何实现它。需要你帮助... 谢谢!

【问题讨论】:

  • 您添加了LoadingView 而不是Loding_view

标签: python list class pyqt


【解决方案1】:

您需要在 __ init __ 函数中包含“视图”。现在你只有自己。

试试这个:

class LoadingView:
    def __init__(self,
                 idx=None,
                 view=None,
                 w1=None,
                 w2=None,
                 w3=None,
                 w4=None,
                 Nrows=None,
                 ):
        self.idx=idx if idx is not None else 0
        self.view=view if view is not None else pg.GraphicsLayoutWidget()
        self.w1=w1
        self.w2=w2
        self.w3=w3
        self.w4=w4
        self.Nrows=Nrows

    def datafill(self):
        for i in self.Nrows:
            self.__dict__['w'+str(i+1)]=self.view.addPlot()

Loading_view=LoadingView()
Loading_view.datafill()

您可以创建一个列表而不是显式定义的术语,但我展示的方式将使用字典遍历显式定义的术语。如果您在定义类的实例时不提供这些值,此方法还会设置 view 和 idx 的默认值。

【讨论】:

  • 将它传递给构造函数不是这里的问题。请参阅@BrenBarn 的评论。
  • 不要举报我纠正了你的错误答案。
  • 我没有举报任何人。我明白你的意思了。
猜你喜欢
  • 2015-04-20
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 2021-04-19
  • 2023-03-05
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
相关资源
最近更新 更多