1

QListWidget と QStackedWidget があります。QListWidget は、QStackedWidget 内のウィジェットの名前を示します。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_())
4

1 に答える 1