PyQt5에서 매일 배워야 하는 레이아웃 관리
이 글에서는 PyQt5에서 매일 배워야 할 레이아웃 관리 관련 정보를 중심으로 자세히 소개하고 있습니다. 참고할만한 가치가 있으니 관심 있는 친구들이 참고하면 됩니다.
GUI 프로그래밍에서 빼놓을 수 없는 부분이 있는데, 레이아웃 관리입니다. 레이아웃 관리는 애플리케이션 창에 컨트롤이 배치되는 방식을 제어합니다. 레이아웃 관리는 두 가지 방법으로 수행할 수 있습니다. 절대 위치 지정 또는 레이아웃 클래스 메서드를 사용하여 프로그램 창에서 컨트롤의 위치를 제어할 수 있습니다.
절대 위치 지정
각 컨트롤은 프로그래머가 지정한 위치에 따라 배치됩니다. 절대 위치 지정을 사용할 때 다음 제한 사항을 알고 싶습니다.
창 크기를 조정해도 컨트롤의 크기와 위치는 동일하게 유지됩니다.
애플리케이션이 플랫폼에 따라 다르게 보일 수 있습니다
-
글꼴 변경으로 인해 애플리케이션의 레이아웃이 손상될 수 있습니다
레이아웃을 변경하기로 결정한 경우 각 컨트롤을 완전히 수정해야 하므로 지루하고 시간이 많이 걸립니다
다음 예는 절대 좌표 위치 지정 방법입니다. 통제의.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个例子显示了在窗口中使用绝对定位的三个标签。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年7月31日 """ import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lbl1 = QLabel('我的世界你曾经来过', self) lbl1.move(15, 10) lbl2 = QLabel('CSND博客', self) lbl2.move(35, 40) lbl3 = QLabel('程序员', self) lbl3.move(55, 70) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('绝对定位') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
이 예에서는 라벨이 사용되었습니다. x 및 y 좌표 값을 제공하여 위치를 지정합니다. 좌표계의 원점은 컨트롤의 왼쪽 상단입니다. x 값은 왼쪽에서 오른쪽으로 증가합니다. y 값은 위에서 아래로 증가합니다.
lbl1 = QLabel('我的世界你曾经来过', self) lbl1.move(15, 10)
레이블 컨트롤은 x=15 및 y=10에 배치됩니다.
프로그램 실행 후
Box 레이아웃 상자 레이아웃
레이아웃 관리는 레이아웃 클래스를 사용하여 보다 유연하고 실용적입니다. 이는 창에 컨트롤을 배치하는 데 선호되는 방법입니다. QHBoxLayout 및 QVBoxLayout은 각각 가로 및 세로로 정렬된 컨트롤의 기본 레이아웃 클래스입니다.
프로그램 오른쪽 하단에 두 개의 버튼을 넣는다고 상상해 보세요. 이러한 레이아웃을 생성하려면 가로 하나와 세로 하나, 두 개의 상자를 사용할 수 있습니다. 필요한 여유 공간을 만들기 위해 스트레치 팩터를 추가하겠습니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,我们在窗口的右下角放置两个按钮。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年7月31日 """ import sys from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QVBoxLayout, QHBoxLayout) class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): okButton = QPushButton('确定') cancelButton = QPushButton('取消') hbox = QHBoxLayout() hbox.addStretch(1) hbox.addWidget(okButton) hbox.addWidget(cancelButton) vbox = QVBoxLayout() vbox.addStretch(1) vbox.addLayout(hbox) self.setLayout(vbox) self.setGeometry(300, 300, 350, 150) self.setWindowTitle('Box布局') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
이 예에서는 창의 오른쪽 하단에 두 개의 버튼을 배치합니다. 응용 프로그램 창의 크기를 조정하면 오른쪽 하단 모서리에 고정됩니다. 우리는 HBoxLayout과 QVBoxLayout 레이아웃을 모두 사용합니다.
okButton = QPushButton('确定') cancelButton = QPushButton('取消')
여기서 두 개의 버튼을 만들었습니다.
hbox = QHBoxLayout() hbox.addStretch(1) hbox.addWidget(okButton) hbox.addWidget(cancelButton)
가로 상자 레이아웃을 만들고, 늘이기 요소를 늘리고(addStretch), 두 개의 버튼을 추가했습니다(addWidget). 두 개의 버튼을 추가하기 전에 스트레치 요소를 추가하여 두 개의 버튼을 창 오른쪽으로 밀어냅니다.
vbox = QVBoxLayout() vbox.addStretch(1) vbox.addLayout(hbox)
원하는 레이아웃을 얻으려면 가로 레이아웃을 세로 레이아웃에도 넣어야 합니다. 수직 상자의 확장 요소는 내부 컨트롤을 포함하여 수평 상자를 창 아래쪽으로 밀어냅니다.
self.setLayout(vbox)
마지막으로 창의 기본 레이아웃을 설정합니다.
프로그램 실행 후
QGridLayout 그리드 레이아웃
가장 일반적으로 사용되는 레이아웃 클래스는 그리드 레이아웃입니다. 이 레이아웃은 공간을 행과 열로 나눕니다. 그리드 레이아웃을 생성하기 위해 QGridLayout 클래스를 사용합니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,我们使用网格布局创建一个计算器的框架。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年7月31日 """ import sys from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QGridLayout) class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): grid = QGridLayout() self.setLayout(grid) names = ['Cls', 'Bck', '', 'Close', '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+',] positions = [(i, j) for i in range(5) for j in range(4)] for position, name in zip(positions, names): if name == '': continue button = QPushButton(name) grid.addWidget(button, *position) self.move(300, 150) self.setWindowTitle('计算器') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
이 경우 생성된 버튼 컨트롤을 그리드에 배치하겠습니다.
grid = QGridLayout() self.setLayout(grid)
QGridLayout을 인스턴스화하고 응용 프로그램 창의 레이아웃을 설정합니다.
names = ['Cls', 'Bck', '', 'Close', '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+',]
앞으로 사용될 버튼 라벨입니다.
positions = [(i, j) for i in range(5) for j in range(4)]
x 그리드 위치 목록을 만들었습니다.
for position, name in zip(positions, names): if name == '': continue button = QPushButton(name) grid.addWidget(button, *position)
버튼을 생성하고 레이아웃에 (addWidget)을 추가하세요.
프로그램이 실행된 후
그리드 레이아웃 확장
창의 컨트롤은 그리드의 여러 열이나 행에 걸쳐 있을 수 있습니다. 다음 예에서는 이를 설명합니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,我们使用GridLayout的跨行创建了一个更复杂的窗口布局。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年7月31日 """ import sys from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QTextEdit, QLineEdit, QGridLayout) class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): title = QLabel('标题') author = QLabel('作者') review = QLabel('评论') titleEdit = QLineEdit() authorEdit = QLineEdit() reviewEdit = QTextEdit() grid =QGridLayout() grid.setSpacing(10) grid.addWidget(title, 1, 0) grid.addWidget(titleEdit, 1, 1) grid.addWidget(author, 2, 0) grid.addWidget(authorEdit, 2, 1) grid.addWidget(review, 3, 0) grid.addWidget(reviewEdit, 3, 1, 5, 1) self.setLayout(grid) self.setGeometry(300, 300, 350, 300) self.setWindowTitle('评论') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
우리가 만든 프로그램에는 QGridLayout 레이아웃을 사용하는 세 개의 레이블, 두 개의 한 줄 텍스트 입력 상자 및 텍스트 편집 컨트롤이 포함되어 있습니다.
grid =QGridLayout() grid.setSpacing(10)
그리드 레이아웃을 인스턴스화하고 간격을 설정하세요.
grid.addWidget(reviewEdit, 3, 1, 5, 1)
그리드 레이아웃에 컨트롤을 추가하면 이 컨트롤에 행 범위 또는 열 범위를 사용할 수 있습니다. 이 예에서는 reviewEdit 컨트롤이 5개 행에 걸쳐 있어야 합니다.
프로그램 실행 후
PyQt5 튜토리얼의 이 부분은 레이아웃 관리에 전념합니다. PyQt5의 이벤트 관련 내용은 추후 소개하겠습니다.
관련 추천:
PyQt5는 라벨이 있는 체크박스를 매일 배워야 합니다
PyQt5는 창 중심 효과를 만드는 방법을 매일 배워야 합니다
위 내용은 PyQt5에서 매일 배워야 하는 레이아웃 관리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Redis를 사용하여 분산 트랜잭션 관리를 구현하는 방법 소개: 인터넷의 급속한 발전으로 인해 분산 시스템의 사용이 점점 더 널리 보급되고 있습니다. 분산 시스템에서 트랜잭션 관리는 중요한 과제입니다. 기존의 트랜잭션 관리 방법은 분산 시스템에서 구현하기 어렵고 비효율적입니다. Redis의 특성을 활용하여 분산 트랜잭션 관리를 쉽게 구현하고 시스템의 성능과 안정성을 향상시킬 수 있습니다. 1. Redis 소개 Redis는 효율적인 읽기 및 쓰기 성능과 풍부한 데이터를 갖춘 메모리 기반 데이터 저장 시스템입니다.

pyqt5 설치 단계: 1. Python과 pip가 컴퓨터에 설치되어 있는지 확인합니다. 2. 터미널이나 명령 프롬프트에 "pip install PyQt5" 명령을 입력하여 PyQt5를 설치합니다. 4. "pip install PyQt5.QtGui" 명령을 입력하여 일부 특정 기능이나 구성 요소를 설치할 수 있습니다. 5. 문제가 발생하면 pip 및 setuptools를 업그레이드해 보세요.

Java로 학생 성과 관리 기능을 구현하는 방법은 무엇입니까? 현대 교육 시스템에서 학생의 성과 관리는 매우 중요한 업무입니다. 학생 성과를 관리함으로써 학교는 학생의 학습 진행 상황을 더 잘 모니터링하고, 학생의 약점과 장점을 이해하며, 이 정보를 기반으로 보다 구체적인 교육 계획을 세울 수 있습니다. 이 기사에서는 Java 프로그래밍 언어를 사용하여 학생 성과 관리 기능을 구현하는 방법에 대해 설명합니다. 먼저, 학생 성적의 데이터 구조를 결정해야 합니다. 일반적으로 학생의 성적은 다음과 같이 나타낼 수 있습니다.

win10 시스템을 사용할 때 마우스를 사용하여 바탕화면을 마우스 오른쪽 버튼으로 클릭하거나 메뉴를 마우스 오른쪽 버튼으로 클릭하면 메뉴가 열리지 않고 컴퓨터를 정상적으로 사용할 수 없는 것을 발견했습니다. 이때 복원이 필요합니다. 문제를 해결하기 위한 시스템. Win10 마우스 오른쪽 버튼 클릭 메뉴 관리를 열 수 없습니다. 1. 먼저 제어판을 열고 클릭합니다. 2. 그런 다음 보안 및 유지 관리 아래를 클릭합니다. 3. 시스템을 복원하려면 오른쪽의 를 클릭하세요. 4. 그래도 사용할 수 없다면 마우스 자체에 문제가 있는지 확인해 보세요. 5. 마우스에 문제가 없다고 확신하면 +를 누르고 Enter를 누르세요. 6. 실행이 완료되면 컴퓨터를 다시 시작합니다.

잘못 정렬된 WordPress 웹 페이지 해결 가이드 WordPress 웹 사이트 개발 시 때로는 웹 페이지 요소가 잘못 정렬되는 경우가 있습니다. 이는 다양한 장치의 화면 크기, 브라우저 호환성 또는 부적절한 CSS 스타일 설정 때문일 수 있습니다. 이러한 잘못된 정렬을 해결하려면 문제를 주의 깊게 분석하고, 가능한 원인을 찾아 단계별로 디버그하고 복구해야 합니다. 이 문서에서는 몇 가지 일반적인 WordPress 웹 페이지 정렬 문제와 해당 솔루션을 공유하고 개발에 도움이 되는 특정 코드 예제를 제공합니다.

HTML 및 CSS를 사용하여 반응형 회전판 레이아웃을 만드는 방법 회전판은 현대 웹 디자인의 일반적인 요소입니다. 사용자의 관심을 끌고, 여러 콘텐츠나 이미지를 표시하고, 자동으로 전환할 수 있습니다. 이 글에서는 HTML과 CSS를 사용하여 반응형 캐러셀 레이아웃을 만드는 방법을 소개합니다. 먼저 기본 HTML 구조를 만들고 필요한 CSS 스타일을 추가해야 합니다. 다음은 간단한 HTML 구조입니다: <!DOCTYPEhtml&g

H5에서 위치 속성을 유연하게 사용하는 방법 H5 개발에서는 요소의 위치 지정 및 레이아웃이 관련되는 경우가 많습니다. 이때 CSS 위치 속성이 작동하게 됩니다. 위치 속성은 상대 위치 지정, 절대 위치 지정, 고정 위치 지정 및 고정 위치 지정을 포함하여 페이지에서 요소의 위치 지정을 제어할 수 있습니다. 이번 글에서는 H5 개발에서 position 속성을 유연하게 활용하는 방법을 자세히 소개하겠습니다.

일부 사용자의 경우 Windows 11에서는 변경 사항을 수락하거나 확인하지 않더라도 새 키보드 레이아웃을 계속 추가합니다. WindowsReport 소프트웨어 팀은 이 문제를 재현했으며 Windows 11이 PC에 새 키보드 레이아웃을 추가하는 것을 방지하는 방법을 알고 있습니다. Windows 11에 자체 키보드 레이아웃이 추가된 이유는 무엇입니까? 이는 일반적으로 모국어가 아닌 언어와 키보드 조합을 사용할 때 발생합니다. 예를 들어 미국 표시 언어와 프랑스어 키보드 레이아웃을 사용하는 경우 Windows 11에 영어 키보드도 추가될 수 있습니다. Windows 11에 원하지 않는 새로운 키보드 레이아웃이 추가된 경우 어떻게 해야 할까요? Windows 11에서 키보드 레이아웃을 추가하지 못하게 하려면 어떻게 해야 합니까? 1. 불필요한 키보드 레이아웃을 삭제하고 '열기'를 클릭하세요.
