컴퓨터/Python

python pyside2 파이썬클래스 box layout

풍경소리^^ 2020. 10. 18. 21:43

www.youtube.com/watch?v=DO8UqRVsoJA

파이썬클래스

===============================================

import sys
from PySide2.QtWidgets import QApplication, QWidget,\
QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, \
QLabel,QFormLayout,QSpinBox
from PySide2.QtGui import Qt # 레이블의 정렬상태 변경

ids = ["return", "zero", "abc", "python", "class"] # 11
class Form(QLabel):
def __init__(self):
super(Form, self).__init__()
self.setupUI()

def setupUI(self):
self.setWindowTitle("Form Layout")
self.form = QFormLayout() # 1
self.setLayout(self.form) # 1
# self.form.setHorizontalSpacing(20)
self.form.setVerticalSpacing(10) # 8 레이블과 위젯사이 간격
# Qt.AlignRight / Qt.AlignLeft
self.form.setLabelAlignment(Qt.AlignCenter) # 9

self.lnName = QLineEdit() # 2
self.lnPNum2 = QLineEdit() # 3
self.lnId = QLineEdit() # 4
self.btnFindId = QPushButton("중복검사") # 4
self.lblChkId = QLabel("ID 중복검사를 진행해주세요") # 5 우측에 레이블만 추가
self.btnOk = QPushButton("확인") # 6 두영역 모두에 표시
self.spAge = QSpinBox() # 7
self.spAge.setValue(19) # 7
self.lnPNum = QLineEdit() # 7

self.vbId = QHBoxLayout() # 4
self.vbId.addWidget(self.lnId) # 4
self.vbId.addWidget(self.btnFindId) # 4

self.form.addRow("이름: ", self.lnName) # 2
self.form.addRow("ID: ", self.vbId) # 4
self.form.addWidget(self.lblChkId) # 5 우측에 레이블만 추가
self.form.addRow("나이: ", self.spAge) # 7
self.form.addRow("연락처: ", self.lnPNum) # 7
self.form.addRow("보호자연락처: ", self.lnPNum2) # 3
self.form.addRow(self.btnOk) # 6 두영역 모두에 표시

self.spAge.valueChanged[int].connect(self.chk_age) # 10
self.btnFindId.clicked.connect(self.chk_id) # 11

def chk_age(self, v): # 10
if v <20: # 10
self.lnPNum2.setEnabled(True) # 10
else: # 10
self.lnPNum2.setEnabled(False) # 10

def chk_id(self): # 11
if len(self.lnId.text())<2: # 11
self.lblChkId.setText("2글자 이상 입력하세요") # 11
else: # 11
if ids.count(self.lnId.text())== 1: # 11
self.lblChkId.setText("중복되는 ID가 존재합니다") # 11
else: # 11
self.lblChkId.setText("멋진 ID네요") # 11

if __name__ == '__main__':
app = QApplication(sys.argv)
form = Form()
form.show()
sys.exit(app.exec_())

# pyinstaller -w -F 파일이름.py
# ctrl + enter 다음 줄
# ctrl + (fn) F5 코드 실행
# ctrl + shift + k 현재 행 삭제
# ctrl + / 현재 행 주석
# alt + ↑ 코드 이동
# alt + shift + ↓ 현재 행 복사

'컴퓨터 > Python' 카테고리의 다른 글

python time.sleep random  (0) 2020.10.21
python pyside2 qtdesigner 설치  (0) 2020.10.19
python ul li 크롤링 input  (0) 2020.10.17
python tqdm 진행률  (0) 2020.10.16
python 폴더내 txt파일 합쳐서 xlsx로 저장하기  (0) 2020.10.13