반응형
버튼 클릭 시 바뀌는 이벤트 (pyqt)
+사용한 pyqt01.ui
from PyQt5 import QtWidgets, uic
import sys
form_window = uic.loadUiType("pyqt01.ui")[0]
class UiMainWindow(QtWidgets.QMainWindow, form_window):
def __init__(self):
super().__init__()
self.setupUi(self)
self.pb.clicked.connect(self.myclick)
self.show()
self.clicked_once = False # 버튼이 클릭되었는지 여부를 저장하는 변수
def myclick(self):
if not self.clicked_once: # 처음 클릭되었을 때
self.lbl.setText("Good Evening!")
self.clicked_once = True
else: # 두 번째 클릭되었을 때
self.lbl.setText("Good Morning!")
self.clicked_once = False
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = UiMainWindow()
sys.exit(app.exec_())
- 버튼 클릭 시 숫자 1 증가
from PyQt5 import QtWidgets, uic
import sys
form_window = uic.loadUiType("pyqt02.ui")[0]
class UiMainWindow(QtWidgets.QMainWindow, form_window):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.pb.clicked.connect(self.myclick)
def myclick(self):
sum = int(self.le.text())
sum += 1
self.le.setText(str(sum))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = UiMainWindow()
sys.exit(app.exec_())
+ 사용한 ui
- 두 수를 받아와 버튼 클릭 시 빼기
from PyQt5 import QtWidgets, uic
import sys
form_window = uic.loadUiType("pyqt03.ui")[0]
class UiMainWindow(QtWidgets.QMainWindow, form_window):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.pb.clicked.connect(self.myclick)
def myclick(self):
su1 = int(self.le01.text())
su2 = int(self.le02.text())
sum = su1 - su2
self.le03.setText(str(sum))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = UiMainWindow()
sys.exit(app.exec_())
- 단 입력 후 구구단 출력하기
from PyQt5 import QtWidgets, uic
import sys
form_window = uic.loadUiType("pyqt04.ui")[0]
class UiMainWindow(QtWidgets.QMainWindow, form_window):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.pb.clicked.connect(self.myclick)
def myclick(self):
su1 = self.le.text()
su2 = int(su1)
txt = ""
for i in range(1,9+1):
txt += "{}x{}={}\n".format(su1,i,i*su2)
self.te.setText(txt)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = UiMainWindow()
sys.exit(app.exec_())
- 로또 번호 출력하기
from PyQt5 import QtWidgets, uic
import sys
from random import random
form_window = uic.loadUiType("pyqt05.ui")[0]
class UiMainWindow(QtWidgets.QMainWindow, form_window):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.pb.clicked.connect(self.myclick)
def myclick(self):
su = list(range(1, 45+1))
for i in range(1,999):
rnd = int(random()*45)
temp = su[0];
su[0] = su[rnd]
su[rnd] = temp
# print(su)
self.lcd1.display(su[0])
self.lcd2.display(su[1])
self.lcd3.display(su[2])
self.lcd4.display(su[3])
self.lcd5.display(su[4])
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = UiMainWindow()
sys.exit(app.exec_())
- n에서 m까지 a배수의 합 구하기
from PyQt5 import QtWidgets, uic
import sys
from random import random
form_window = uic.loadUiType("pyqt06.ui")[0]
class UiMainWindow(QtWidgets.QMainWindow, form_window):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.pb.clicked.connect(self.myclick)
def myclick(self):
su1 = int(self.le1.text())
su2 = int(self.le2.text())
su3 = int(self.le3.text())
sum = 0
arr = list(range(su1, int(su2+1)))
for i in arr:
if i%su3 == 0:
print(i)
sum += i
self.le4.setText(str(sum))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = UiMainWindow()
sys.exit(app.exec_())
- 번호 입력 후 버튼 클릭 시 알람창 출력하기
from PyQt5 import QtWidgets, uic
import sys
from random import random
from PyQt5.Qt import QMessageBox
form_window = uic.loadUiType("pyqt07.ui")[0]
class UiMainWindow(QtWidgets.QMainWindow, form_window):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.pb1.clicked.connect(self.myclick)
self.pb2.clicked.connect(self.myclick)
self.pb3.clicked.connect(self.myclick)
self.pb4.clicked.connect(self.myclick)
self.pb5.clicked.connect(self.myclick)
self.pb6.clicked.connect(self.myclick)
self.pb7.clicked.connect(self.myclick)
self.pb8.clicked.connect(self.myclick)
self.pb9.clicked.connect(self.myclick)
self.pb0.clicked.connect(self.myclick)
self.pb_call.clicked.connect(self.mycall)
def myclick(self):
str_old = self.le.text()
str_new = self.sender().text() # sender : 기존에 존재하는 text의 값을 가져옴
self.le.setText(str_old+str_new)
def mycall(self):
str = self.le.text()
QMessageBox.about(self,'Calling',str) # 파이썬 alert창
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main_window = UiMainWindow()
sys.exit(app.exec_())
반응형
'Python' 카테고리의 다른 글
[Python] 11장 마리아 DB 설치 및 HeidiSQL 설치 (0) | 2024.04.02 |
---|---|
[Python] 10.5.1장 과제1 (0) | 2024.04.01 |
[Python] 9장 Anaconda 설치 및 실행 방법 (0) | 2024.03.29 |
[Python] 8장 pyqt5 설치 방법 (0) | 2024.03.28 |
[Python] 7.5장 과제 (Swing을 이용) (0) | 2024.03.28 |