사용자가 입력을 하고 확인 버튼을 누르면 입력값을 가운데 결과 출력창에 추가합니다.
입력값이 누적되어 보이도록 합니다.
Copy # -*- coding: UTF-8 -*-
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5 import QtGui
from PyQt5.QtGui import QPalette
class App(QWidget):
def __init__(self):
super(App, self).__init__()
self.setWindowTitle('Widget 배치!!!')
self.resize(400, 600)
self.addWidgets()
def addWidgets(self):
self.label_title = QLabel('위젯들을 붙여봅시다!!', self)
self.label_title.move(0,20)
self.label_title.resize(400, 40)
self.label_title.setAlignment(Qt.AlignCenter)
self.titleFont()
self.titleFontColor()
self.label_info = QLabel('확 : ',self)
self.label_info.move(40,100)
self.infoFont()
self.le_input = QLineEdit('', self)
self.le_input.move(100, 100)
def infoFont(self):
font = QtGui.QFont()
font.setPointSize(27)
self.label_title.setFont(font)
def titleFont(self):
font = QtGui.QFont()
font.setPointSize(30)
self.label_title.setFont(font)
def titleFontColor(self):
pal = QtGui.QPalette()
pal.setColor(QPalette.WindowText, QtGui.QColor(38,38,38))
self.label_title.setPalette(pal)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec_())
20 사용자 입력을 유도하기 위해 입력이라는 레이블을 하나 추가합니다.
22 레이블의 글자를 조절합니다.
23 사용자 입력을 받는 QLineEdit를 추가합니다.
Copy self.te_result = QTextEdit('', self)
self.te_result.move(40, 160)
self.te_result.resize(300,300)
self.te_result.setReadOnly(True)
01 결과를 한줄식 출력하기 위해 QTextEdit 위젯을 사용했습니다.
04 사용자 입력을 막고 출력만 사용하기 위해 setReadOnly 옵션을 추가합니다.
Copy self.button = QPushButton('입', self)
self.button.resize(160, 50)
self.button.move(30, 550)
self.button.clicked.connect(self.confirm)
self.button2 = QPushButton('초기화', self)
self.button2.resize(160, 50)
self.button2.move(200, 550)
self.button2.clicked.connect(self.reset)
01 입력 버튼을 추가합니다.
02 옆에 초기화 버튼을 추가하기 위해 크기를 조절합니다.
04 버튼 클릭 시 동작을 하기위해 이벤트를 추가합니다.
05 입력 내용을 초기화하는 버튼을 추가합니다.
Copy def confirm(self):
self.te_result.append(self.le_input.text())
self.le_input.clear()
self.te_result.repaint()
def reset(self):
self.te_result.clear()
self.te_result.repaint()
01 사용자 입력값을 받아서 결과 출력창에 추가하기 위한 함수를 만듭니다.
02 입력창의 내용을 가져와서(self.le_input.text()) 결과 출력창에 추가합니다.
03 사용자가 입력을 편하게하기 위해 입력창을 비웁니다.
04 결과 출력창의 화면을 다시 그립니다.
05 초기화 함수를 만듭니다.
06 결과 출력창을 비웁니다.
07 결과 출력창을 다시 그립니다.