Python basic
  • Python 기초 수업
  • Python 설치
  • Python의 기본
    • Python 시작하기
    • 변수(Variable)
    • 산술 연산자
    • 문자열(String) 출력
    • 문장(Statement)
  • 자료형
    • 정수형(Integer)
    • 실수형(Float)
    • 부울형(Bool)
    • 복소수형(Complex)
    • 문자열형(String)
  • 조건문
  • 자료구조
    • List
    • Set
    • 튜플(Tuple)
    • 딕셔너리(Dictionary)
  • 반복문
  • 문제 타임
  • 함수(Function)
    • 기본형 함수
    • 매개변수(Parameter)와 반환값(Return Value)
    • 가변매개변수 함수
    • 함수 설명 표시
    • 변수의 범위
  • 모듈(Module)
    • 모듈의 이용
    • __name__ 그리고 '__main__'
  • 예외처리(Exception Handling)
    • try, except, else, finally
  • 클래스(Class)
    • Class 심화
  • PyQt
    • PyQt 설치
    • PyQt Widget
      • QWidget
      • QLabel
      • QLineEdit
      • QTextEdit
      • QPushButton
      • QCheckBox
      • Application Make
        • Widget의 배치 #1
        • Widget의 배치 #2
        • 숫자 맞추기 게임
        • 야구게임
  • OPEN API(공공데이터 포탈)
    • 공공데이터 사용하기
  • 크롤링 (Crawling)
    • Crawling Library 설치
    • 날씨, 미세먼지 농도
  • SQLlite
    • DB의 작성
  • Dic 참고
  • 함수 참고 코드
  • Widget 배치 시작 코드
  • 야구게임
Powered by GitBook
On this page
  • 사용 되는 곳
  • 생성
  • 크기 조절
  • 위치 조절
  • 위치와 크기를 같이 조절
  • 배경 색 변경
  1. PyQt
  2. PyQt Widget

QWidget

가장 기본이 되는 Window View 입니다.

PreviousPyQt WidgetNextQLabel

Last updated 6 years ago

사용 되는 곳

QWidget은 그림 그릴 떄 사용되는 캔버스라고 생각하시면 됩니다. QWidget위에 다양한 Widget들을 배치시켜 화면에 나타나게 합니다.

생성

# -*- coding: UTF-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class App(QWidget):
    def __init__(self):
        super(App, self).__init__()
        self.setWindowTitle('Window!!!')
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = App()
    window.show()
    sys.exit(app.exec_())

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를 다시 끼웁니다.

https://docs.python.org/3/library/sys.html
http://pyqt.sourceforge.net/Docs/PyQt5/QtWidgets.html