从类之外的QStackedWidget的setCurrentIndex

时间:2018-07-26 02:24:20

标签: python pyqt pyqt5 qwidget qstackedwidget

我正在尝试从其类的外部设置StackedWidget的索引,但是遇到一个错误,即该对象没有属性。我的代码如下(我为缩进造成了歉意,没有正确粘贴):

> zzz <- read.table(textConnection(captureOutput(print(z.df))), 
    stringsAsFactors=FALSE)

> zzz
  ID weight detail2.height detail2.gender detail2.name
1  1    200           NULL           NULL         NULL
2  2    300           NULL           NULL         NULL
3  3    400            6.5              M         John
4  4    500           NULL           NULL         NULL
5  5    600            5.5              F         Jane

> str(zzz)
'data.frame':   5 obs. of  5 variables:
 $ ID            : int  1 2 3 4 5
 $ weight        : int  200 300 400 500 600
 $ detail2.height: chr  "NULL" "NULL" "6.5" "NULL" ...
 $ detail2.gender: chr  "NULL" "NULL" "M" "NULL" ...
 $ detail2.name  : chr  "NULL" "NULL" "John" "NULL" ...

单击按钮时出现错误:

类型对象'ut_Screen1'没有属性'StackBot'

谢谢您的指导。

1 个答案:

答案 0 :(得分:1)

我认为您对OOP的了解较差,因此建议您复习它们。

类是一个抽象概念,它仅对使用该类创建的对象的行为建模,因此ut_Screen1不是对象,而是类的名称。只有对象可以使用该类的非静态方法。总之,您不应使用ut_Screen1。

一种可能的解决方案是使用MainWindow类的myWindow对象访问名为start_screen的ut_Screen1类的对象:

def ut_ButtonClicked(name):
    try:
        if name == "Button1":
            myWindow.start_screen.StackBot.setCurrentIndex(1)
    except Exception as e:
        print(e)