PyQtで提供されるウィジェットは、一般的な用途とニーズをカバーする基本的なビルディングブロックとコンビニエンスウィジェットです。しかし、カスタムウィジェットが必要なときは、近いものをサブクラス化して独自のカスタムウィジェットを作成することができます。
QGroupBoxを使用できます。基本的にQFrameはQLabelで構成されています。次に、クラスはこのラベルのテキストを設定できるいくつかのメソッドをラップします。この基本的なウィジェットは、次のように始まります:
group = QtGui.QGroupBox()
group.setTitle("FOO")
代わりにQWidgetを使用し、空白のラベルを付けたQGroupBoxを追加します。親ウィジェットの絶対位置にボタンを配置します。私たちはQFrameを使用することができましたが、QGroupBoxを使用すると、あなたが望むインスタントスタイルが得られます。
class ButtonGroupBox(QtGui.QWidget):
def __init__(self, parent=None):
super(ButtonGroupBox, self).__init__(parent=parent)
self.layout = QtGui.QVBoxLayout(self)
self.layout.setContentsMargins(0,24,0,0)
self.groupBox = QtGui.QGroupBox(self)
self.button = QtGui.QPushButton("FOO", parent=self)
self.layout.addWidget(self.groupBox)
self.button.move(0, -4)
ボタンのテキストを変更できるメソッドを使用して、このカスタムクラスを拡張できます。上部のウィジェットの余白は、GroupBoxの上にボタンをレイアウトする余分なスペースを与えるために必要です。
出典
2012-02-20 16:45:53
jdi
+1これはすばらしく、私が探していたものです... –