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 정말 멋지 네요. –