gpt4 book ai didi

python - 更改pyqt中QStackedWidget的索引

转载 作者:太空宇宙 更新时间:2023-11-03 18:54:46 24 4
gpt4 key购买 nike

我有一个 QListWidget 和一个 QStackedWidget。 QListWidget显示了QStackedWidget中Widget的名称。在 QListWidget 中,您可以通过拖放重新排列小部件的顺序。

所以我的问题是,如何更新 QStackedWidget 中更改的顺序?

这是一个显示问题的最小示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore

class TestWidget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.layout = QtGui.QHBoxLayout(self)
self.stack = QtGui.QStackedWidget(self)
self.item_list = QtGui.QListWidget(self)
self.item_list.setDragEnabled(True)
self.item_list.setDragDropMode(QtGui.QAbstractItemView.InternalMove)

self.layout.addWidget(self.item_list)
self.layout.addWidget(self.stack)

for i in range(10):
b_name = "Button %04i" % i
i_name = "Item %04i" % i
self.stack.addWidget(QtGui.QPushButton(b_name, self))
self.item_list.addItem(i_name)

self.item_list.currentRowChanged.connect(self.stack.setCurrentIndex)


if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
widget = TestWidget()

widget.show()
sys.exit(app.exec_())

最佳答案

在寻找 QStackedWidget 示例时发现了这个问题。可能不再需要,但我会考虑不要尝试重新排列堆叠小部件中的顺序。相反,我会保留一个 python 字典,它使用列表名称作为键,使用堆栈中的索引作为值。然后,当列表的值发生变化时,查找索引并将其设置为堆栈的该部分。

看起来比尝试动态更正堆栈要少得多的工作。

关于python - 更改pyqt中QStackedWidget的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com