전체보기
-
[PyQt5] 7. Qt DesignerPython/PyQt5 2021. 5. 20. 21:22
Qt Designer 의 설치 경로 Qt Designer는 pyqt5-tools 패키지를 설치한 뒤 다음 경로에서 찾을 수 있습니다. path_of_projects\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe 바로가기를 프로젝트 폴더에 만들어 두는 게 편합니다. 객체 탐색기 객체 탐색기로 객체의 트리 구조를 보면서 작업합니다. 미리 보기 CTRL+R으로 미리 보기 하면서 작업합니다. .ui 파일 GUI를 만든 뒤 .ui 라는 확장자로 저장할 수 있고, 이 파일은 XML 형식의 텍스트 파일입니다. Form 0 0 400 300 Form 0 0 0 0 PushButton false https://github.com/pycrawling/pyqt5_..
-
[PyQt5] 6. WidgetsPython/PyQt5 2021. 5. 19. 16:46
Qt5에는 다음과 같이 다양한 위젯이 있습니다. 다행히 아이콘만 보더라도 대부분의 위젯이 어떤 용도로 사용되는지 알 수 있습니다. 비슷비슷한 위젯을 비슷비슷한 코드로 나열하는 것은 지루한 일입니다. 공식 문서와 구글링 및 Qt Designer 사용을 추천드리고, 여기서는 제가 자주 쓰는 위젯만 간단히 나열하겠습니다. QLabel: 텍스트, 리치 텍스트, 그림, 영상 등을 구현할 수 있음. QLineEdit: 원 라인 에디터, 패스워드 가능. QTextEdit: 멀티 라인 에디터, 리치 텍스트 지원. QGroupBox: 그룹 박스, 프레임과 제목을 지원하는 컨테이너. QCheckBox: 체크박스 QPushButton: 푸시 버튼 QRadioButton: 라디오 버튼 QListBox: 리스트 박스 QComb..
-
[PyQt5] 5. layoutPython/PyQt5 2021. 5. 19. 14:18
레이아웃은 위젯들을 담아두는 틀입니다. 레이아웃을 잘 이용하면 자동으로 줄 맞춤이 되고, 좌표를 하드 코딩할 필요가 없어 유연한 GUI를 만들 수 있기 때문에, 무척 편합니다. 하드 코딩은 데이터를 직접 코드 내에 넣어두는 것을 말합니다. 레이아웃을 사용하면 (좌표에 관련된) 숫자는 거의 사용하지 않습니다. 최상위 위젯을 QMainWindow에서 QWidget으로 바꿨습니다. 이유는 마지막에... QVBoxLayout QVBoxLayout이라는 클래스가 보입니다. V는 Vertical(세로)에서 나왔다는 걸 알 수 있죠. QVBoxLayout 클래스로 layout 인스턴스를 만들어서 layout 인스턴스에 위젯들을 하나씩 addWidget 해 주었습니다. addWidget으로 상위 위젯에 add해주기 때..
-
[PyQt5] 4. EventPython/PyQt5 2021. 5. 19. 12:36
signal, slot GUI에서 버튼이 클릭이 된다던지 등의 사건을 event라고 합니다. event가 발생하면 (버튼이 눌러지면) 그에 따른 일(창을 띄운다, 결과를 출력한다 등)을 해야겠죠? 그것을 처리하는 함수를 event handler라고 합니다. Qt에서는 event를 signal, event handler를 slot이라고 합니다. 이벤트 루프 PyQt에서는 exec_()로 이벤트 루프를 실행한다고 했습니다. 파이썬 2까지는 exec가 예약된 키워드였기 때문에 exec에 밑줄이 추가되었습니다. 파이썬 3부터는 exec가 예약된 키워드가 아닙니다. 그래서 exec(), exec_() 모두 가능합니다. 이벤트 루프란 다음과 유사합니다. def mouse_clicked(): print('마우스가 클..
-
[PyQt5] 3. ClassPython/PyQt5 2021. 5. 18. 22:30
이런 코드를 쓸 수도 있지만 조금만 프로젝트가 복잡해져도 힘들어지기 때문에 대부분 클래스를 이용해서 GUI를 만듭니다. from PyQt5.QtWidgets import QApplication, QMainWindow app = QApplication([]) my_window = QMainWindow() my_window.setWindowTitle('My App') my_window.setGeometry(100, 100, 300, 300) my_window.show() app.exec_() https://github.com/pycrawling/pyqt5_study/blob/main/pyqt5_study_03-1.py 클래스를 만들고 최상위 위젯 QWidget, QDialog, QMainWindow 등을 상..
-
[PyQt5] 2. Hello World!Python/PyQt5 2021. 5. 18. 19:30
import sys from PyQt5.QtWidgets import * app = QApplication(sys.argv) label = QLabel('Hello World!') label.show() app.exec_() https://github.com/pycrawling/pyqt5_study/blob/main/pyqt5_study_02.py 위 코드를 실행(shift+F10)하면 아래와 같은 조촐한 화면이 나옵니다. 1. sys와 sys.argv import sys print(sys.argv) # ['C:/PyApp/qt_demo/main.py'] sys.argv는 실행파일의 옵션을 받을 때 사용합니다. 문자열 list 형식으로 들어오는데요. GUI 프로그램을 작성할 때 sys.argv를 사용할 ..
-
[PyQt5] 1. 설치Python/PyQt5 2021. 5. 18. 17:53
1. 파이썬 설치 파이썬 3.9 버전을 설치합니다. 본인이 사용 중인 OS에 따라 32bit, 64bit 버전을 고르면 됩니다. 모르면 32bit. https://www.python.org/ Welcome to Python.org The official home of the Python Programming Language www.python.org 2. 파이참 설치 무료버전인 커뮤니티 버전을 고릅니다. https://www.jetbrains.com/ko-kr/pycharm/download/#section=windows 다운로드 PyCharm: JetBrains가 만든 전문 개발자용 Python IDE www.jetbrains.com 3. 프로젝트 생성 4. PyQt5 설치 PyQt5를 설치하면, 파이참..