2
GtkExpanderのように、exapdnまたは崩壊して子供を隠すことができるコンテナがqt4にありますか?pyqt4のgtkのエキスパンダーに相当する
のqt4の設計者は、まさにそれを持っていますが、カスタムウィジェットのように見える:
GtkExpanderのように、exapdnまたは崩壊して子供を隠すことができるコンテナがqt4にありますか?pyqt4のgtkのエキスパンダーに相当する
のqt4の設計者は、まさにそれを持っていますが、カスタムウィジェットのように見える:
ありませんが、1を実装するのはかなり簡単です。ここには非常に基本的な例があります。あなたはより多くの機能とそれを拡張することができます。
from PyQt4 import QtGui
import sys
class ExpanderWidget(QtGui.QWidget):
def __init__(self, text, widget, parent=None):
super(ExpanderWidget, self).__init__(parent)
self.layout = QtGui.QVBoxLayout()
# better use your own icons
# these are kind of ugly :)
style = QtGui.QCommonStyle()
self.rightArrow = style.standardIcon(QtGui.QStyle.SP_ArrowRight)
self.downArrow = style.standardIcon(QtGui.QStyle.SP_ArrowDown)
self.toggle = QtGui.QPushButton(self.downArrow, text)
self.toggle.clicked.connect(self.toggleWidget)
self.widget = widget
self.layout.addWidget(self.toggle)
self.layout.addWidget(self.widget)
self.setLayout(self.layout)
def toggleWidget(self):
if self.widget.isVisible():
self.toggle.setIcon(self.rightArrow)
self.widget.setVisible(False)
else:
self.toggle.setIcon(self.downArrow)
self.widget.setVisible(True)
app = QtGui.QApplication(sys.argv)
secretWidget = QtGui.QLabel('I am a secret widget. I can be hidden!')
expander = ExpanderWidget('I hide a widget', secretWidget)
expander.show()
sys.exit(app.exec_())