当QListWidget索引更改时更新嵌套的QStackWidget

2024-09-30 12:17:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我面临着一个我无法解决的问题,即使它不应该是困难的。在

我有一个QListWidget,有5个项目(所以5行)和2个相关的QStackedWidgets。第一页由3页组成:第一页包含另一个嵌套的QStackedWidgets,有两页。总共5页。在

一个小的gif有一个想法:

enter image description here

现在我要做的是创建一个链接QListWidget和2QStackedWidget的函数。我希望QListWidget的项1和2只链接到父项QStackedWidget的第一页和第二页,而项3、4和5只链接到父项{}(第二、第三和第四页)。在

我写的代码如下:

# connect the listWidget currentRow signal to a custom function
self.listWidget.currentRowChanged.connect(self.updateStacked)

def updateStacked(self):

    idx = self.listWidget.currentRow()
    if idx is 0 or idx is 1:
        self.stackedPlotWidget.setCurrentIndex(0)
        self.stackedNestedWidget.setCurrentIndex(1)

    else:
        self.stackedPlotWidget.setCurrentIndex(idx - 1)

但是有些东西不能正常工作:for QlistWidget行0和1工作正常,但似乎没有考虑else语句。在

有什么建议吗?在


Tags: 项目selfis链接connectelseidxqlistwidget
1条回答
网友
1楼 · 发布于 2024-09-30 12:17:28

正确的插槽写入方法如下:

self.listWidget.currentRowChanged.connect(self.updateStacked)

def updateStacked(self, row):
    if 0 <= row <= 1:
        self.stackedPlotWidget.setCurrentIndex(0)
        self.stackedNestedWidget.setCurrentIndex(row)
    elif row > 1:
        self.stackedPlotWidget.setCurrentIndex(row - 1)

更新

下面是一个完整的例子,展示了如何处理所有的信号。请注意,数字调整框仅用于模拟以编程方式设置堆栈小部件的索引。在

^{pr2}$

相关问题 更多 >

    热门问题