01 sys 모듈은 사용자 입력이나 외부 경로에 대한 값 전달에 사용됩니다. 이외 Python을 실행하기 위한 시스템 값들에 대한 정보를 담고 있습니다.
02 PyQt5.QtWidgets 모듈은 GUI를 구성하기 위한 거의 모든 Widget들을 담고 있습니다.
04 QWidget을 상속 받은 App Class를 만듭니다.
06 __init__ 함수는 클레스가 생성될 때 최초로 호출 됩니다.
07 QWidget을 상속받았기 때문에 QWidget이 생성될 때 필요한 값을 전달해줍니다.
08 화면에 생성 될 Window 제목을 'Window!!!' 로 설정합니다.
11 QtPy 어플리케이션의 시작을 알리는 QApplication을 생성합니다.
12 앞서 만든 App을 생성합니다.
13 생성된 App을 화면에 보이도록 합니다.
14 시스템이 종료 될 때 정상적 종료(0), 비 정상적 종료를 알려 줍니다(1)
모든 것을 이해하기는 어렵습니다.
윈도우 생성으로 PyQt에 한걸음 다가갔다고 생각하면 됩니다.
이제 생성한 윈도우의 속성값을 변경해서 우리가 원하는 형태로 변경해보겠습니다.
크기 조절
원하는 크기로 Window를 생성할 수 있습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class App(QWidget):
def __init__(self):
super(App, self).__init__()
self.setWindowTitle('Window!!!')
self.resize(500, 600)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
09 크기를 가로 500px, 세로 600px 으로 변경합니다.
위치 조절
화면의 원하는 위치에서 시작하도록 설정 할 수 있습니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class App(QWidget):
def __init__(self):
super(App, self).__init__()
self.setWindowTitle('Window!!!')
self.resize(500, 600)
self.move(100, 100)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
10 화면의 가로 100px, 세로 100px 위치가 시작점이 됩니다.
위치와 크기를 같이 조절
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class App(QWidget):
def __init__(self):
super(App, self).__init__()
self.setWindowTitle('Window!!!')
self.setGeometry(100, 100, 500, 600)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
09 setGeometry(가로 위치, 세로 위치, 가로 크기, 세로 크기)
배경 색 변경
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtCore import Qt
from PyQt5 import QtGui
class App(QWidget):
def __init__(self):
super(App, self).__init__()
self.setWindowTitle('Window!!!')
self.setGeometry(100, 100, 500, 600)
self.setBackgroundColor()
def setBackgroundColor(self):
self.setAutoFillBackground(True)
p = self.palette()
p.setColor(self.backgroundRole(), Qt.white)
p.setColor(self.backgroundRole(), QtGui.QColor(0,0,244))
self.setPalette(p)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
12 setBackgroundColor 함수를 호출합니다.
15 백그라운드를 자동으로 꽉 채워주는 옵션입니다.
16 현재 사용중인 palette를 가져옵니다. palette는 각위젯의 컬러를 관리합니다.
17 색깔을 변경합니다.
18 RBG 값을 이용해 색을 변경 할 떄 사용합니다.
19 변경된 palette를 다시 끼웁니다.