pyqt5를 이용한 체크박스(checkbox), 콤보박스(combo) 사용법 > [파이썬]기초실습예제

본문 바로가기
사이트 내 전체검색

[파이썬]기초실습예제

게시판 상단

pyqt5를 이용한 체크박스(checkbox), 콤보박스(combo) 사용법

페이지 정보

작성자 관리자 댓글 0건 조회 561회 작성일 21-07-22 20:41

본문

실행화면


96ceb057ccc0022ea4e5b0fa0fc45a8b_1626953942_7168.JPG 



qtdesigner5 를 이용하여 그림과 같이 새로만들기를 클릭한후 버튼없는 다이얼로그 상자 만들기를 선택하고

 label,checkbox 2개를 화면에 배치합니다.

체크박스의 objectname은 각각 chk_apple,chk_banana로 변경합니다.

체크박스를 선택한후 속성창의 text내용은 사과와 바나나로 각각 변경합니다.

라벨선택후 속성창에서 objectnamelbl_text로 변경합니다.

생성된 다이얼로그 폼의 이름은 exam2_pyqt5.ui로 하여 저장합니다.

화면을 실행시킨후 사과가 체크되면 텍스트의 내용을 [사과체크됨]이라고 라벨의 내용이 변경됩니다.

 


콤보박스 추가하기

qtdesigner5의 좌측 위젯상자에서 combo box를 다이얼로그 창으로 드래그합니다.

콤보박스 선택후 마우스 우측버튼 클릭하여 항목편집에서 첫줄은 빈칸,사자,호랑이,기린,원숭이 5개의 항목을 추가후 objecyname cmb_animal로 변경,

아래쪽에는 lbl_text2 라는 이름으로 라벨을 만듭니다.

 

코드설명


#pyqt5패키지를 추가해야 에러가 안남
#PyQt5.QtWidgets 에 있는 라이브러리 전체를 임포트하여 사용할수 있게함
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic

#UI파일 연결
#동일한 디렉토리에 exam2_pyqt5.ui파일(qtdesigner로 만든 파일)이 있어야 함
form_class2 = uic.loadUiType("exam2_pyqt5.ui")[0]

#화면을 띄우는데 사용되는 Class 선언
class WindowClass(QMainWindow, form_class2):
   
def __init__(self):
       
super().__init__()
       
self.setupUi(self)

       
self.chk_apple.clicked.connect(self.f_clicked) #사용자가 만든 f_clicked함수를 호출함
       
self.chk_banana.clicked.connect(self.f_clicked)

   
def f_clicked(self):
       
if self.chk_apple.isChecked() == True & self.chk_banana.isChecked() == True:
           
self.lbl_text.setText("사과와 바나나 체크됨")
       
elif self.chk_apple.isChecked() == True:   #사과체크박스가 체크되있다면
           
self.lbl_text.setText("사과 체크됨")   #라벨의 내용을 변경함
       
elif self.chk_banana.isChecked() == True:
           
self.lbl_text.setText("바나나 체크됨")
       
else:
           
self.lbl_text.setText("체크된 과일이 없음")


if __name__ == "__main__" :
    app = QApplication(sys.argv)
    myWindow = WindowClass() 
#클래스의 인스턴스 생성
   
myWindow.show() #화면을 보여줌
   
app.exec_()

 





첨부파일

댓글목록

등록된 댓글이 없습니다.

게시판 하단

회원로그인

접속자집계

오늘
6
어제
7
최대
221
전체
17,029

그누보드5
Copyright © 소유하신 도메인. All rights reserved.