본문 바로가기
프로그래밍/Python

[GUI]

by leestun 2020. 8. 25.
반응형

GUI: Graphic User Interface

사용자가 프로그램을 사용할 때 필요한 규격을 그래픽으로 제공하는 것

- 지금까지 구현한 프로그래밍 명령의 순서에 따라 흐름 진행
- 이벤트기반 프로그래밍
:어떤 이벤트가 발생하냐에 따라 흐름이 진행되는 프로그램

이벤트(event)
- 마우스클릭
- 마우스 드래그
- 버튼 클릭
- 키보드 입력
—————————————————————
[toolkit]
파이썬에서 GUI프로그램을 개발하기 위해 제공되는 라이브러리
-TKinter
- PyQt5
————————————————————-
<윈도우설치>
pip:파이썬 설칙시 같이 설치
PyQt5 라이브러리가 규모가 큰 라이브러리
모든 기능을 다 사용할 수 없다.

*구성
1)화면에 출력된 사용자 인터페이스:UI

PyQt5가 제공하는 구성용품: 위젯
widget 클래스의 객체를 생성해서 UI를 만들 수 있다

위젯: UI(화면)을 구성하는 핵심 요소

2) 이벤트 루프
PyQt에서 QAppliction 클래스로 만들어진 객체에 exec_()메서드를
호출하면 이벤트 루프가 생성된다.

이벤트루프: 이벤트 발생 기다리는 대기상태

- 개발자는 exec_메서드를 호출하여 이벤트 루프 생성하는 것까지만 하면된다
이벤트 루프에는 관여 x

exec_() ~닫기버튼 누를때까지 작동

3) 이벤트를 처리할 메서드 구현
버튼과 같은 위젯을 클릭하면
어떠한 처리를 할 것인가를 메서드로 구현하기

PyQt5 라이브러리가 규모가 큰 라이브러리
모든 기능을 다 사용할 수 없다.

*구성
1)화면에 출력된 사용자 인터페이스:UI

PyQt5가 제공하는 구성용품: 위젯
widget 클래스의 객체를 생성해서 UI를 만들 수 있다

위젯: UI(화면)을 구성하는 핵심 요소

2) 이벤트 루프
PyQt에서 QAppliction 클래스로 만들어진 객체에 exec_()메서드를
호출하면 이벤트 루프가 생성된다.

이벤트루프: 이벤트 발생 기다리는 대기상태

- 개발자는 exec_메서드를 호출하여 이벤트 루프 생성하는 것까지만 하면된다
이벤트 루프에는 관여 x

exec_() ~닫기버튼 누를때까지 작동

3) 이벤트를 처리할 메서드 구현
버튼과 같은 위젯을 클릭하면
어떠한 처리를 할 것인가를 메서드로 구현하기

————————————————————————-
1. QApplication 생성자에 현재모듈 넘기기
app= QApplication(sys.argv)
>>>import sys
>>>sys.argv

————————————————————————-
이벤트를 처리하고 싶다?
1) 버튼생성
2) 메서드를 구현
3) 버튼에 이벤트 만들기
버튼.clicked.connect(메서드명)

————————————————————————-
GUI프로그램
1) QApplication 객체 생성
2) 위젯 생성
위젯.show():화면에 위젯이 보여짐
3)이벤트 처리
4)app.exec_():이벤트 루프 생성

————————————————————————-

[위젯의 종류]

QMessageBox: 알림창

- QLabel

- QPushButton
:버튼

- QlineEdit
:텍스트 입력창

- QRadioButton
:동그라미 선택체크버튼, 중복x
ex)남,녀

- QGroupBox
:제목이 있는 테두리를 만들 시 사용

- QCheckBox
:네모 선택체크버튼, 중복o
ex)취미, 가입경로

- QSpinBox
:증가/감소 시킬 때 사용하는
화살표와 값을 출력하는 출력창으로 구성


- QTableWidget
:행과 열로 구성된 표 형태의 데이터를 테이블 형태로 표시


반응형

'프로그래밍 > Python' 카테고리의 다른 글

[GUI] 이미지 삽입/배경색 지정/ 배경이미지 설정  (0) 2020.09.08
[GUI2]  (0) 2020.08.26
파일입출력  (0) 2020.08.17
예외  (0) 2020.08.16
모듈과 패키지  (0) 2020.08.16