import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * class MyWindow(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('SWH Academy Window.') centerGeometry = QDesktopWidget().availableGeometry().center() self.resize(300, 300) frameGeometry = self.frameGeometry() frameGeometry.moveCenter(centerGeometry) idLabel = QLabel("아이디 : ") ageLabel = QLabel("나이 : ") self.idLineEdit = QLineEdit() self.ageLineEdit = QLineEdit() self.registerButton = QPushButton("회원가입") self.registerButton.clicked.connect(self.registerButtonClicked) self.fontButton= QPushButton("폰트 고르기") self.fontButton.clicked.connect(self.fontButtonClicked) self.bgButton = QPushButton("배경색 바꾸기") self.bgButton.clicked.connect(self.bgColorButtonClicked) self.fileButton = QPushButton("파일 창") self.fileButton.clicked.connect(self.fileButtonClicked) self.textEdit = QTextEdit() layout = QGridLayout() layout.addWidget(idLabel, 0, 0) layout.addWidget(self.idLineEdit, 0, 1) layout.addWidget(ageLabel, 1, 0) layout.addWidget(self.ageLineEdit, 1, 1) layout.addWidget(self.registerButton, 1, 2) layout.addWidget(self.fontButton, 2, 0) layout.addWidget(self.bgButton, 2, 1) layout.addWidget(self.fileButton, 2, 2) layout.addWidget(self.textEdit, 3, 0) self.setLayout(layout) def registerButtonClicked(self): id, ok = QInputDialog.getText(self, '회원가입', '아이디를 입력하세요:') if ok: age, ok = QInputDialog.getInt(self, '회원가입', '나이를 입력하세요:') if ok: self.idLineEdit.setText(str(id)) self.ageLineEdit.setText(str(age)) def fontButtonClicked(self): font, ok = QFontDialog.getFont() print(font) if ok: self.idLineEdit.setFont(font) self.ageLineEdit.setFont(font) def bgColorButtonClicked(self): color = QColorDialog.getColor() print(color) if color.isValid(): self.setStyleSheet('QWidget { background-color: %s }' % color.name()) def fileButtonClicked(self): fname = QFileDialog.getOpenFileName(self, '파일 열기', './') print(fname) if fname[0]: with open(fname[0], 'r') as f: data = f.read() self.textEdit.setText(data) def closeEvent(self, event): ack = QMessageBox.question(self, '종료', '창을 닫을래요?', QMessageBox.Yes | QMessageBox.No) if ack == QMessageBox.Yes: event.accept() else: event.ignore() if __name__ == "__main__": app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_())