No Description

dialog.py 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import sys
  2. from PyQt5.QtWidgets import *
  3. from PyQt5.QtCore import *
  4. class MyWindow(QWidget):
  5. def __init__(self):
  6. super().__init__()
  7. self.initUI()
  8. def initUI(self):
  9. self.setWindowTitle('SWH Academy Window.')
  10. centerGeometry = QDesktopWidget().availableGeometry().center()
  11. self.resize(300, 300)
  12. frameGeometry = self.frameGeometry()
  13. frameGeometry.moveCenter(centerGeometry)
  14. idLabel = QLabel("아이디 : ")
  15. ageLabel = QLabel("나이 : ")
  16. self.idLineEdit = QLineEdit()
  17. self.ageLineEdit = QLineEdit()
  18. self.registerButton = QPushButton("회원가입")
  19. self.registerButton.clicked.connect(self.registerButtonClicked)
  20. self.fontButton= QPushButton("폰트 고르기")
  21. self.fontButton.clicked.connect(self.fontButtonClicked)
  22. self.bgButton = QPushButton("배경색 바꾸기")
  23. self.bgButton.clicked.connect(self.bgColorButtonClicked)
  24. self.fileButton = QPushButton("파일 창")
  25. self.fileButton.clicked.connect(self.fileButtonClicked)
  26. self.textEdit = QTextEdit()
  27. layout = QGridLayout()
  28. layout.addWidget(idLabel, 0, 0)
  29. layout.addWidget(self.idLineEdit, 0, 1)
  30. layout.addWidget(ageLabel, 1, 0)
  31. layout.addWidget(self.ageLineEdit, 1, 1)
  32. layout.addWidget(self.registerButton, 1, 2)
  33. layout.addWidget(self.fontButton, 2, 0)
  34. layout.addWidget(self.bgButton, 2, 1)
  35. layout.addWidget(self.fileButton, 2, 2)
  36. layout.addWidget(self.textEdit, 3, 0)
  37. self.setLayout(layout)
  38. def registerButtonClicked(self):
  39. id, ok = QInputDialog.getText(self, '회원가입', '아이디를 입력하세요:')
  40. if ok:
  41. age, ok = QInputDialog.getInt(self, '회원가입', '나이를 입력하세요:')
  42. if ok:
  43. self.idLineEdit.setText(str(id))
  44. self.ageLineEdit.setText(str(age))
  45. def fontButtonClicked(self):
  46. font, ok = QFontDialog.getFont()
  47. print(font)
  48. if ok:
  49. self.idLineEdit.setFont(font)
  50. self.ageLineEdit.setFont(font)
  51. def bgColorButtonClicked(self):
  52. color = QColorDialog.getColor()
  53. print(color)
  54. if color.isValid():
  55. self.setStyleSheet('QWidget { background-color: %s }' % color.name())
  56. def fileButtonClicked(self):
  57. fname = QFileDialog.getOpenFileName(self, '파일 열기', './')
  58. print(fname)
  59. if fname[0]:
  60. with open(fname[0], 'r') as f:
  61. data = f.read()
  62. self.textEdit.setText(data)
  63. def closeEvent(self, event):
  64. ack = QMessageBox.question(self, '종료', '창을 닫을래요?', QMessageBox.Yes | QMessageBox.No)
  65. if ack == QMessageBox.Yes:
  66. event.accept()
  67. else:
  68. event.ignore()
  69. if __name__ == "__main__":
  70. app = QApplication(sys.argv)
  71. window = MyWindow()
  72. window.show()
  73. sys.exit(app.exec_())