본문 바로가기
✨Python

[Python/파이썬] 파이썬으로 ui 윈도우 어플리케이션 구현하기 위젯 4 위젯에대해 알아보기

by 김말자 2022. 6. 13.
728x90
728x90
BIG

# 위젯 알아보기

윈도우 어플리케이션을 구현하려면 여러위젯이 들어가는데 구현하는 방법을 알아보도록 하자.

 

 

 

 

# 체크박스만들기

import sys

from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
       # 부모클래스 초기화자를 불러옴(반드시 필수사항임)
        self.initWindow()
       # 함수호출

    def initWindow(self):
        checkBox = QCheckBox('체크박스', self) #체크박스만듬
        checkBox.toggle() #체크된상태로 출력
        checkBox.stateChanged.connect(self.changeText) #체크박스 함수호출

        self.setGeometry(100,100,300,300)
        self.show()

def changeText(self, state):
    if state == Qt.Checked:
        #플래그가 체크된 상태
        self.setWindowTitle('체크박스 체크성공~')
    else:
        #플래그가 체크가 안된상태
        self.setWindowTitle('체크박스 체크실패..')
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyWindow()
    sys.exit(app.exec_())

# 이벤트 루프를 만들어 주는 것임
checkBox = QCheckBox('체크박스', self)
checkBox.toggle() # 체크된 상태로 출력
checkBox.stateChanged.connect(self.changeText)

체크박스 객체를 생성후에 큐체크박스를 만들어주면

스테이트체인지해준후 커넥트해 함수를 정의해서 불러오면

 

잘돌아가는 것을 확인할 수 있다.

 

 

# 라디오버튼만들기

import sys

from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class MyWindow(QWidget):

    def __init__(self):
        super().__init__() # 부모클래스의 초기화자 호출
        self.initWindow()

    def initWindow(self):

        radio1 = QRadioButton('첫번째버튼', self)
        radio1.move(50,50)
        radio1.setChecked(True)
       
        radio2 = QRadioButton(self)
        radio2.move(50,80)
        radio1.setChecked(True)
        radio2.setText('두번째버튼')
        

        self.setGeometry(100, 100, 300, 300)
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyWindow()
    sys.exit(app.exec_())
radio1 = QRadioButton('첫번째버튼', self)
radio1.move(50,50)
radio1.setChecked(True)

q라디오버튼을써서 버튼을 만든후 실행한다

 

 

잘돌아가는것을 확인할 수 있다.

 

 

 

# 콤보박스 만들기

import sys

from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class MyWindow(QWidget):

    def __init__(self):
        super().__init__()  # 부모클래스의 초기화자 호출
        self.initWindow()

    def initWindow(self):

         combo = QComboBox(self)
         combo.addItem('사과')
         combo.addItem('수박')
         combo.addItem('멜론')
         combo.addItem('딸기')

         self.label1 = QLabel('선택', self)
         self.label1.move(50,100)

         combo.activated[str].connect(self.onCombo)


         self.setGeometry(100, 100, 300, 300)
         self.show()

    def onCombo(self, text):
        self.label1.setText(text) # 레이블 안에 들어오면 찍어라

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyWindow()
    sys.exit(app.exec_())

 

 

 

 

import sys

from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class MyWindow(QWidget):

    def __init__(self):
        super().__init__()  # 부모클래스의 초기화자 호출
        self.initWindow()

    def initWindow(self):

         combo = QComboBox(self)
         combo.addItem('사과')
         combo.addItem('수박')
         combo.addItem('멜론')
         combo.addItem('딸기')



         self.setGeometry(100, 100, 300, 300)
         self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyWindow()
    sys.exit(app.exec_())
combo = QComboBox(self)
combo.addItem('사과')
combo.addItem('수박')
combo.addItem('멜론')
combo.addItem('딸기')

큐콤보박스를 이용해들어가고

아이템을 넣어주면

잘돌아가는것을 볼 수 있다.


combo.activated[str].connect(self.onCombo)

str방식으로 받아서 온콤보에 엮음

 

 

 

 

def onCombo(self, text):
    self.label1.setText(text) # 레이블 안에 들어오면 찍어라

콤보함수를 만들어서 레이블안에 들어오면 찍는다

 

잘 돌아가는 것을 확인할 수 있다.

728x90
반응형
BIG

댓글