ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PyQt5 라이브러리
    python 2025. 12. 8. 15:14

    PyQt5 라이브러리는 많은 것을 지원하지만, 다른 라이브러리보다 뛰어난 기능은 GUI기능이다. 운영체제에 상관없이 코드 호환성이 거의 100%이다. 

     

    기본적인 창 띄우기:

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    
    class MyApp(QWidget):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.setWindowTitle("내가 만든 창")
            self.move(500, 100)
            self.resize(400, 200)
            self.show()
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        ex = MyApp()
        app.exec_()

     

    그리드 레이아웃으로 적절한 레이아웃 만들기:

    import sys
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import QIcon
    
    class MyApp(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            centralWidget = QWidget()
            self.setCentralWidget(centralWidget)
    
            mainGrid = QGridLayout()
            centralWidget.setLayout(mainGrid)
    
            leftGrid = QGridLayout()
    
            leftGrid.addWidget(QLabel('title'), 0, 0)
            leftGrid.addWidget(QLabel('author'), 1, 0)
            leftGrid.addWidget(QLabel('review'), 2, 0)
    
            leftGrid.addWidget(QLineEdit(), 0, 1)
            leftGrid.addWidget(QLineEdit(), 1, 1)
            leftGrid.addWidget(QTextEdit(), 2, 1)
    
            rightGrid = QGridLayout()
    
            btn = QPushButton('버튼', self)
            btn.clicked.connect(self.buttonF)
            rightGrid.addWidget(btn, 3, 0)
    
            mainGrid.addLayout(leftGrid, 0, 0)
            mainGrid.addLayout(rightGrid, 0, 1)
    
            self.setWindowTitle("내가 만든 창")
            self.move(500, 100)
            self.statusBar().showMessage('statusbar')
            self.show()
    
        def buttonF(self):
            print("버튼 클릭됨")
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        ex = MyApp()
        app.exec_()

     

    여러 위젯과 시그널:

    https://wikidocs.net/21933에 보면 여러 위젯과 해당 위젯의 시그널을 설명해주고 있다.

    버튼, 체크박스, 콤보박스, 텍스트 브라우저 등 다양한 위젯을 볼 수 있다.

     

    시그널 메소드.connect를 하면 해당 시그널이 일어났을 때 실행해야할 함수를 지정할 수 있다. 예를들어 버튼 클릭이 일어났을 때, btn.clicked.connect(funcA) 를 하면 btn이 클릭되었을 때 funcA가 실행된다.


    참고: https://pypi.org/project/PyQt5/

    https://wikidocs.net/book/2165

    https://wikidocs.net/book/2944

    -

    'python' 카테고리의 다른 글

    파이썬 소켓 통신  (0) 2025.12.03
    asyncio 라이브러리  (0) 2025.08.23
    selenium v4.0 (python)  (0) 2023.04.10
    파이썬 sorted 정렬 조건 정해주기  (0) 2022.07.08
    파이썬 리스트 인덱스 여러개 찾기  (0) 2022.06.30
Designed by Tistory.