PyQt5 - (qt designer) 간단한 MainWindow 만들기
본문 바로가기
파이썬(Python)/파이썬 GUI(PyQt5 & tkinter)

PyQt5 - (qt designer) 간단한 MainWindow 만들기

by 만초손겸수익 2020. 12. 16.

 qtdesigner를 이용하여 간단한 윈도우창을 만들겠습니다.

 

designer를 실행합니다.(실행파일이 어디있는지 모르시면, 아래 포스트를 참고하세요.)

2020/11/18 - [파이썬/PyQt5] - PyQt5 - qt designer 파일 위치

 

PyQt5 - qt designer 파일 위치

아나콘다(Anaconda3)를 설치하고 나서 qt designer 위치를 찾느라 헤메었네요. 비전공자에다 40대 아저씨가 코딩을 시작하려고 하니 엄청 힘든점이 많네요. designer 위치는 아래 경로에 있습니다. Anaconda

dotsnlines.tistory.com

'Main Window'를 선택한 다음 '생성(R)' 버튼을 클릭합니다.

 

왼쪽 메뉴에서 'Push Button' 과 'Line Edit'을 Drag & Drop 해서 위의 그림과 같이 만듭니다.

 

저장을 하시면 되는데, 저는 바탕화면에 저장했습니다.

 

이제 코드를 작성하시고 연결하면 됩니다.

import sys

from PyQt5.QtWidgets import *

from PyQt5 import uic

 

필요한 모듈을 가져옵니다.

 

form_class = uic.loadUiType(r'C:\Users\passi\Desktop\TestWindow.ui')[0]

 

저장한 ui의 경로를 설정해서 'form_class'로 저장합니다.

 

class MyWindow(QMainWindow, form_class):

    def __init__(self):

        super().__init__()

        self.setupUi(self)

        self.pushButton.clicked.connect(self.click_button)

 

MyWindow라는 클래스를 만들고, QMainWindow와 form_class를 상속 받습니다.

self.setupUi(self)로 UI를 불러옵니다. 그리고 pushButton을 연결합니다.

 

def click_button(self):

        exist_lineEdit =  self.lineEdit.text()

        self.lineEdit.setText(exist_lineEdit + self.pushButton.text())

 

버튼을 누르면 라인에딧에 버튼에 적혀 있는 글자가 연속적으로 나타나게 하는 함수입니다.

 

if __name__=='__main__':

    app = QApplication(sys.argv)

    window = MyWindow()

    window.show()

    app.exec_()

 

메인으로 만듭니다.

 

전체 코드는 아래와 같습니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
 
form_class = uic.loadUiType(r'C:\Users\passi\Desktop\TestWindow.ui')[0]
 
class MyWindow(QMainWindow, form_class):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.click_button)
 
    def click_button(self):
        exist_lineEdit =  self.lineEdit.text()
        self.lineEdit.setText(exist_lineEdit + self.pushButton.text())
 
if __name__=='__main__':
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    app.exec_()
cs

 

아래는 실행화면입니다.

 

 

 

 

728x90
반응형

댓글