PySide2(pyqt5)를 직관적으로 읽기 쉽게 작성해 보십시오.
BoxLayout QtWidgets。QWidget 확장 시도
알 수 없는 것은 QtWidgets입니다.QHBoxLayout 및 QtWidgets.QVBoxLayout은 QtWidgets입니다.QWidget의 확장 때문이 아니라는 것을 이해했습니다.그리고 박스 Layout을 QtWidgets로 바꿉니다.QWidget을 가져오려고 했습니다.그리고layout은 플러그인 구조지만python은 축진에 엄격하기 때문에 더욱 이해하기 어렵다.상당히 강세지만 각본부터 레이아웃 디자인까지 인상적인 묘사법을 고려해 봤다.import sys
from PySide2 import QtCore,QtWidgets
class HLayoutWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.layout = QtWidgets.QHBoxLayout()
self.setLayout(self.layout)
def addWidget(self,w):
self.layout.addWidget(w)
class VLayoutWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.layout = QtWidgets.QVBoxLayout()
self.setLayout(self.layout)
def addWidget(self,w):
self.layout.addWidget(w)
class Window(HLayoutWidget):
def __init__(self):
super().__init__()
self.resize(500, 500)
self.setWindowTitle("layout demo")
leftLayout = VLayoutWidget(); self.layout.addWidget(leftLayout)
leftButton1 = QtWidgets.QPushButton(); leftLayout.addWidget(leftButton1)
leftButton2 = QtWidgets.QPushButton(); leftLayout.addWidget(leftButton2)
leftButton3 = QtWidgets.QPushButton(); leftLayout.addWidget(leftButton3)
rightLayout = VLayoutWidget(); self.layout.addWidget(rightLayout)
self.rightButton1 = QtWidgets.QPushButton("Button1"); rightLayout.addWidget(self.rightButton1)
self.rightButton2 = QtWidgets.QPushButton("Button2"); rightLayout.addWidget(self.rightButton2)
leftLayout.sizeHint = lambda: QtCore.QSize(450,240)
leftLayout.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Expanding)
rightLayout.layout.setContentsMargins(0, 0, 0, 0)
leftButton1.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_TitleBarMenuButton))
leftButton2.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_MessageBoxInformation))
leftButton3.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_MessageBoxQuestion))
self.rightButton1.clicked.connect(self.hoge1)
self.rightButton2.clicked.connect(self.hoge2)
def hoge1(self):
self.rightButton1.setText("Button click")
def hoge2(self):
self.rightButton2.setText("Button click")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
심플한 네스트가 좋아요.
QtWidgets.QHBoxLayout은 addWidget()에 하위를 가질 수 있습니다.하지만 QtWidgets는QWidget처럼 솔리드가 없으므로 치수를 변경할 수 없습니다.크기를 변경하려면 QtWidgets를 사용합니다.QWidget에서는 setLayout을 사용합니다.QWidget에 설정해야 합니다.설정 없이 배치할 수 있습니다.이 부근은 번거로운 곳이다.아예 QtWidgets.QWidget에 addWidget () 를 넣으면 쓰기 방법이 간단해질 것 같아서 시도해 봤습니다.
레이아웃은 플러그인 구조이고python은 축소가 엄격하며 이해하기 어려운 부분은python이다.한 줄로 쓰는 방식으로 친자 관계도 쉽게 이해된다.
레이아웃 부분, 위젯의 미세한 조정, 신호, 슬롯을 분리해 쓰면 Qt 디자이너 없이 직관적으로 쓸 수 있다.상당히 간단해졌다.
Reference
이 문제에 관하여(PySide2(pyqt5)를 직관적으로 읽기 쉽게 작성해 보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gaziya5/items/e3cdb0251c01e76cbb05
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import sys
from PySide2 import QtCore,QtWidgets
class HLayoutWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.layout = QtWidgets.QHBoxLayout()
self.setLayout(self.layout)
def addWidget(self,w):
self.layout.addWidget(w)
class VLayoutWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.layout = QtWidgets.QVBoxLayout()
self.setLayout(self.layout)
def addWidget(self,w):
self.layout.addWidget(w)
class Window(HLayoutWidget):
def __init__(self):
super().__init__()
self.resize(500, 500)
self.setWindowTitle("layout demo")
leftLayout = VLayoutWidget(); self.layout.addWidget(leftLayout)
leftButton1 = QtWidgets.QPushButton(); leftLayout.addWidget(leftButton1)
leftButton2 = QtWidgets.QPushButton(); leftLayout.addWidget(leftButton2)
leftButton3 = QtWidgets.QPushButton(); leftLayout.addWidget(leftButton3)
rightLayout = VLayoutWidget(); self.layout.addWidget(rightLayout)
self.rightButton1 = QtWidgets.QPushButton("Button1"); rightLayout.addWidget(self.rightButton1)
self.rightButton2 = QtWidgets.QPushButton("Button2"); rightLayout.addWidget(self.rightButton2)
leftLayout.sizeHint = lambda: QtCore.QSize(450,240)
leftLayout.setSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Expanding)
rightLayout.layout.setContentsMargins(0, 0, 0, 0)
leftButton1.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_TitleBarMenuButton))
leftButton2.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_MessageBoxInformation))
leftButton3.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_MessageBoxQuestion))
self.rightButton1.clicked.connect(self.hoge1)
self.rightButton2.clicked.connect(self.hoge2)
def hoge1(self):
self.rightButton1.setText("Button click")
def hoge2(self):
self.rightButton2.setText("Button click")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
QtWidgets.QHBoxLayout은 addWidget()에 하위를 가질 수 있습니다.하지만 QtWidgets는QWidget처럼 솔리드가 없으므로 치수를 변경할 수 없습니다.크기를 변경하려면 QtWidgets를 사용합니다.QWidget에서는 setLayout을 사용합니다.QWidget에 설정해야 합니다.설정 없이 배치할 수 있습니다.이 부근은 번거로운 곳이다.아예 QtWidgets.QWidget에 addWidget () 를 넣으면 쓰기 방법이 간단해질 것 같아서 시도해 봤습니다.
레이아웃은 플러그인 구조이고python은 축소가 엄격하며 이해하기 어려운 부분은python이다.한 줄로 쓰는 방식으로 친자 관계도 쉽게 이해된다.
레이아웃 부분, 위젯의 미세한 조정, 신호, 슬롯을 분리해 쓰면 Qt 디자이너 없이 직관적으로 쓸 수 있다.상당히 간단해졌다.
Reference
이 문제에 관하여(PySide2(pyqt5)를 직관적으로 읽기 쉽게 작성해 보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gaziya5/items/e3cdb0251c01e76cbb05텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)