반응형
- PyQt5는 어플리케이션 프레임워크에 대한 파이썬 버전입니다. Qt는 플랫폼에 관계없이 다양한 기능을 포함하는 C++라이브러리이자 개발툴입니다.
- PyQt5는 이러한 1000여개의 클래스들을 포함하는 파이썬 모듈의 모음입니다.
- PyQt5는 윈도우, 리눅스, macOS, 안드로이드, iOS를 지원합니다.
- PyQt5의 홈페이지에서 최신의 그리고 안정적인 버전의 PyQt5와 최신 버전의 문서를 얻을 수 있습니다.
- PyQt5 개발자는 GPL과 상업용 라이센스 중 하나를 선택할 수 있습니다.
QLabel을 이용해 출력내용 작성
Button
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(150, 250, 350, 350) # 창의 위치와 크기
self.setWindowTitle("using Button")
self.UI()
def UI(self):
self.text=QLabel("text",self)
enterButton = QPushButton("Enter",self)
exitButton = QPushButton("Exit",self)
self.text.move(160,50)
enterButton.move(100,80)
exitButton.move(200,80)
enterButton.clicked.connect(self.enterFunc)
exitButton.clicked.connect(self.exitFunc)
self.show()
def enterFunc(self):
self.text.setText("You Clicked Enter")
self.text.resize(150,20)
def exitFunc(self):
self.text.setText("You Clicked Exit")
self.text.resize(150,20)
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
LineEdit
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(150, 250, 350, 350) # 창의 위치와 크기
self.setWindowTitle("using LineEdit")
self.UI()
def UI(self):
self.nameTextBox = QLineEdit(self)
self.nameTextBox.setPlaceholderText("Please enter your name")
self.nameTextBox.move(120,50)
self.passTextBox = QLineEdit(self)
self.passTextBox.setPlaceholderText("Please enter your password")
self.passTextBox.setEchoMode(QLineEdit.Password)
self.passTextBox.move(120,80)
button = QPushButton("Save",self)
button.move(180,110)
button.clicked.connect(self.getValues)
self.show()
def getValues(self):
name = self.nameTextBox.text()
pw = self.passTextBox.text()
self.setWindowTitle("Your name is "+name+"Your pw is"+pw)
def exitFunc(self):
self.text.setText("You Clicked Exit")
self.text.resize(150,20)
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
이미지 넣기
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPixmap
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(50, 50, 1000, 900) # 창의 위치와 크기
self.setWindowTitle("using Images")
self.UI()
def UI(self):
self.image = QLabel(self)
self.image.setPixmap(QPixmap('cat.jpg'))
removeButton = QPushButton("Remove",self)
removeButton.move(150,220)
removeButton.clicked.connect(self.removeImg)
showButton = QPushButton("Show",self)
showButton.clicked.connect(self.showImg)
showButton.move(260,220)
self.show()
def removeImg(self):
self.image.close()
def showImg(self):
self.image.show()
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
checkBox
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(50, 50, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using CheckBox")
self.UI()
def UI(self):
self.name = QLineEdit(self)
self.name.setPlaceholderText("Please enter your name")
self.surname = QLineEdit(self)
self.surname.setPlaceholderText("Family name을 입력하세요")
self.name.move(150,50)
self.surname.move(150,80)
self.remember = QCheckBox("Remember me",self)
self.remember.move(150,110)
button = QPushButton("Submit",self)
button.move(200,140)
button.clicked.connect(self.submit)
self.show()
def submit(self):
if (self.remember.isChecked()):
print("Name : "+self.name.text()+ "\nSurname : "+self.surname.text()+"\nRemember me checked")
else :
print("Name : "+self.name.text()+ "\nSurname : "+self.surname.text()+"\nRemember me not checked")
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
ComboBox
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(250, 150, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using Comboboxes")
self.UI()
def UI(self):
self.combo = QComboBox(self)
self.combo.move(150,100)
button = QPushButton("Save",self)
button.move(150,130)
button.clicked.connect(self.getValue)
self.combo.addItem("Python")
self.combo.addItems(["C","C#","PHP"])
list1 = ["Batman","Superman","Spiderman"]
for name in list1:
self.combo.addItem(name)
for number in range(18,101):
self.combo.addItem(str(number))
self.show()
def getValue(self):
value = self.combo.currentText()
print(value)
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
RadioButton
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(50, 50, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using RadioButton")
self.UI()
def UI(self):
self.name = QLineEdit(self)
self.name.setPlaceholderText("Please enter your name")
self.surname = QLineEdit(self)
self.surname.setPlaceholderText("Please enter your first name")
self.name.move(150,50)
self.surname.move(150,80)
self.male = QRadioButton("남성",self)
self.female = QRadioButton("여성",self)
self.female.setChecked(True)
self.female.move(150,110)
self.male.move(240,110)
button = QPushButton("Submit",self)
button.move(200,140)
button.clicked.connect(self.submit)
self.show()
def submit(self):
if (self.male.isChecked()):
print("Name : "+self.name.text()+ "\nSurname : "+self.surname.text()+"\n남성입니다.")
else :
print("Name : "+self.name.text()+ "\nSurname : "+self.surname.text()+"\n여성입니다.")
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
Message Boxes
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont
font = QFont("Times", 12)
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(250, 150, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using Message Boxes")
self.UI()
def UI(self):
button = QPushButton("Click Me!", self)
button.setFont(font)
button.move(200, 150)
button.clicked.connect(self.messageBox)
self.show()
def messageBox(self):
# mbox = QMessageBox.information(self,"information","You Logged Out!")
mbox = QMessageBox.question(self,"Warning!!!", "Are you sure to exit?",QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel,QMessageBox.No)
if mbox == QMessageBox.Yes:
sys.exit()
elif mbox == QMessageBox.No:
print("You clicked No Button")
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
SpinBox
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont
font = QFont("Times", 16)
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(250, 150, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using Spin Boxes")
self.UI()
def UI(self):
self.spinBox = QSpinBox(self)
self.spinBox.move(150,100)
self.spinBox.setFont(font)
# self.spinBox.setMinimum(25)
# self.spinBox.setMaximum(110)
self.spinBox.setRange(25,110)
# self.spinBox.setPrefix("$ ")
self.spinBox.setSuffix(" cm")
self.spinBox.setSingleStep(5)
# self.spinBox.valueChanged.connect(self.getValue)
button = QPushButton("Send",self)
button.move(150,140)
button.clicked.connect(self.getValue)
self.show()
def getValue(self):
value=self.spinBox.value()
print(value)
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
Text Editor
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont
font = QFont("Times", 14)
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(250, 150, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using Text editor")
self.UI()
def UI(self):
self.editor = QTextEdit(self)
self.editor.move(150,80)
button = QPushButton("Send",self)
self.editor.setAcceptRichText(False)
button.move(330,280)
button.clicked.connect(self.getValue)
self.show()
def getValue(self):
text = self.editor.toPlainText()
print(text)
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
Timer
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QTimer
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(250, 150, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using Timer")
self.UI()
def UI(self):
self.colorLabel = QLabel(self)
self.colorLabel.resize(250,250)
self.colorLabel.setStyleSheet("background-color:green")
self.colorLabel.move(40,20)
###################Buttons#######################
btnStart = QPushButton("Start",self)
btnStart.move(80,300)
btnStart.clicked.connect(self.start)
btnStop = QPushButton("Stop",self)
btnStop.move(190,300)
btnStop.clicked.connect(self.stop)
###################Timer#########################
self.timer = QTimer()
self.timer.setInterval(100) #0.1초
self.timer.timeout.connect(self.changeColor)
self.value=0
self.show()
def changeColor(self):
if self.value==0:
self.colorLabel.setStyleSheet("background-color:yellow")
self.value=1
else:
self.colorLabel.setStyleSheet("background-color:red")
self.value=0
def start(self):
self.timer.start()
def stop(self):
self.timer.stop()
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
List Widget
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(50, 50, 500, 500) # 창의 위치와 크기
self.setWindowTitle("using List widget")
self.UI()
def UI(self):
self.addRecord = QLineEdit(self)
self.addRecord.move(100,50)
self.listWidget = QListWidget(self)
self.listWidget.move(100,80)
####################################
list1 = ["Batman","Superman","Spiderman"]
self.listWidget.addItems(list1)
self.listWidget.addItem("Heman")
# for number in range(5,11)
# self.listwidget.addItem(str(number))
#####################################
btnAdd = QPushButton("Add",self)
btnAdd.move(360,80)
btnAdd.clicked.connect(self.funcAdd)
btnDelete = QPushButton("Delete",self)
btnDelete.move(360,110)
btnDelete.clicked.connect(self.funcDelete)
btnGet = QPushButton("Get",self)
btnGet.move(360,140)
btnGet.clicked.connect(self.funcGet)
btnDeleteAll = QPushButton("Delete All",self)
btnDeleteAll.move(360,170)
btnDeleteAll.clicked.connect(self.funcDeleteAll)
self.show()
def funcAdd(self):
val = self.addRecord.text()
self.listWidget.addItem(val)
self.addRecord.setText("")
def funcDelete(self):
id = self.listWidget.currentRow()
print(id)
self.listWidget.takeItem(id)
def funcGet(self):
val = self.listWidget.currentItem().text()
print(val)
def funcDeleteAll(self):
self.listWidget.clear()
def main():
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec_())
if __name__ =='__main__':
main()
반응형
'study > python' 카테고리의 다른 글
객체 지향 프로그래밍과 절차적 프로그래밍 (0) | 2020.12.02 |
---|---|
PyQt5 : widget and layout (0) | 2020.11.26 |
Matplotlib - 그래프 그리기2 (0) | 2020.11.16 |
Matplotlib - 그래프 그리기 (0) | 2020.11.09 |
Pandas - 데이터 합치기 (0) | 2020.11.09 |