import sys
from PySide6.QtCore import QSize, Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("MyWindow")
button = QPushButton("Click")
self.setFixedSize(QSize(400, 300))
self.setCentralWidget(button)
app = QApplication(sys.argv)
window = MyWindow()
window.show()
app.exec()
이전 게시글에서 공부한 code를 다시 불러오자
2021.08.31 - [pyside6] - [PySide6] 버튼 사용하기 #1
import sys
from PySide6.QtWidgets import QApplication, QPushButton # 사용할 class import함
from PySide6.QtCore import Slot # Slot decorator 사용을 위해 import함
@Slot()
def say_hello(): # button click 시, 호출될 function
print("Button clicked, Hello!")
# Create the Qt Application
app = QApplication(sys.argv) # QApplication class로 instance 생성
# Create a button, connect it and show it
button = QPushButton("Click me") # Button 생성
button.clicked.connect(say_hello) # button에 "say_hello" function 연결
button.show()
# Run the main Qt loop
app.exec() # Qt main loop 진입 및 Qt code 시작
실행 결과는 위와 같이 button이 존재하는 window가 나타났다.
보는바와 같이 모든 widget은 window가 될 수 있다. 다만 위와 같은 구조로는 효과적인 프로그램을 만들 수 있다.
( button이 하나만 존재하는 window로는 할 수 있는 것이 많지 않다. )
다양한 widget 들이 빈(empty) widget을 구성하면 보다 유용한 프로그램을 만들 수 있을 것이다. 이를 위해서 QT에서 QMainWindow class가 지원된다.
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
app = QApplication(sys.argv)
window = QMainWindow()
window.show()
# Start the event loop.
app.exec()
실행 결과를 보면 empty(빈) window가 생성된 것을 볼 수 있다.
다양한 widget이 포함된 custom window를 생성하기 위해서는 QMainWindow() class를 상속받은 MyWindow()를 생성하여 Button을 추가해보자.
import sys
from PySide6.QtCore import QSize, Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("MyWindow") # MyWindow의 title을 "MyWindow"로 설정
button = QPushButton("Click")
self.setCentralWidget(button) # button을 MyWindow의 중앙에 위치 시킴
app = QApplication(sys.argv)
window = MyWindow()
window.show()
app.exec()
이제 setFixedSize() 를 사용하여 생성된 MyWindow 및 widget의 size를 변경해 보자.
import sys
from PySide6.QtCore import QSize, Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("MyWindow")
button = QPushButton("Click")
self.setFixedSize(QSize(400, 300)) # <<<<<<<<<<<<<<<<< ADD
self.setCentralWidget(button)
app = QApplication(sys.argv)
window = MyWindow()
window.show()
app.exec()
[PySide6] Tree Widget을 사용하여 data 출력 (2) | 2021.09.01 |
---|---|
[PySide6] QDialog 창 with Modal/Modaless (0) | 2021.09.01 |
[PySide6] 버튼 사용하기 #2 (0) | 2021.09.01 |
[PySide6] Table Widget을 사용하여 Data 출력하기 (0) | 2021.09.01 |
[PySide6] Dialog Application 생성하기 (0) | 2021.08.31 |