QLineEdit 는 한줄로 된 텍스트 입력 칸 입니다.
한줄이지만 기본값에 32767개의 문자를 받을 수 있습니다.
(16비트 배열 인듯)
setMaxLength 메소드로 입력 문자수의
제한을 걸어둘 수 있습니다.
사용자에게 입력을 받는 다는 것은
사용자가 키보드에 문자를 입력하면
문자열이 저장된다는 뜻인데요.
Enter 키나 QPushButton 을 클릭하는
시그날을 슬롯 함수와 연결시키면 됩니다.
아래 예제는 사용자에게 이름을 입력받고
레이블에 표시하는 코드입니다.
콘솔로 표시해도 되는데
굳이 레이블을 사용한 것은
유저들에게 콘솔창을 보여줄 것은 아니니까
윈도우창에 그냥 보여주도록 했습니다.
lineEdit 위젯의 쓸모는 여러가지인데
구글 웹스크레이퍼를 만들때
검색어를 입력받는 용도로 사용하는 등
다양하게 사용할 수 있습니다.
from PyQt5.QtWidgets import (
QWidget, QApplication, QGridLayout,
QPushButton, QLabel, QLineEdit
)
# from PyQt5.QtCore import Qt
import sys
class MyApp(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle("My App")
# QVBox Layout
layout = QGridLayout()
self.setLayout(layout)
self.label = QLabel("Name")
layout.addWidget(self.label, 0, 0)
self.labelO = QLabel()
layout.addWidget(self.labelO, 1, 1)
self.button = QPushButton("Send")
self.button.clicked.connect(self.returnPressed)
layout.addWidget(self.button, 1, 0)
self.lineEdit =QLineEdit()
self.lineEdit.setPlaceholderText("enter your name")
self.lineEdit.setMaxLength(10)
self.lineEdit.returnPressed.connect(self.returnPressed)
layout.addWidget(self.lineEdit, 0, 1)
def returnPressed(self):
text = self.lineEdit.text()
print(text)
self.labelO.setText(text)
if __name__ == "__main__":
app = QApplication(sys.argv)
screen = MyApp()
screen.resize(320, 200)
screen.show()
sys.exit(app.exec_())
코드를 보면 매우 심플한 것을 알 수 있습니다.
또 여기서는 그리드레이아웃을 사용했는데
좌표를 사용해서 여러개 위젯을 배치할 때
QBoxLayout 쪽 보다 쉬운 것 같습니다.
PyQt5 에서 레이블, 버튼, 라인에디트 정도만
사용해도 이미 문자열 입력과 출력까지
해결이 된 것입니다.
이 정도만으로도 여러가지 앱을 만들 수 있겠죠?
GUI 위젯만 계속 배우는 것도 지루하니까
웹스크레이핑과 함께 사용해보면서
작은 프로젝트라도 실습해보는 것을 추천합니다.
PyQt의 클래스와 메소드는 수천개가 넘습니다.
어차피 그 기능들 다 사용할 것도 아니고
외우지도 못하기 때문에 필요할 때 레퍼런스를 뒤지면서 해야합니다.
작더라도 자신이 만들려는 프로젝트를 기획하고
하나라도 만들어 보는 것을 추천합니다.
아래는 간단한 GUI 프로그램입니다.
kivy도 PyQt와 같은 GUI입니다.
파이큐티5 (PyQt5) 7 | 버튼그룹으로 GUI 가위바위보 게임 만들기 | ButtonGroup
파이썬 KIVY | 간단한 시계 만들기 | 파이썬 GUI 프레임워크
파이썬 tkinter GUI 계산기 만들기 | 파이썬 윈도우 프로그래밍
아래 문서는 웹스크래이핑 기초입니다.
파이썬 | 웹스크레이핑 기초 | BeautifulSoup 모듈 사용법
파이썬 | 빌보드 차트 TOP 100 스크레이핑 | 10월 3일차 BTS 1위 주간 | 글로벌 200 차트 KPOP이 싹쓸이 | bs4