main.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import sys
  2. from PyQt6.QtSql import QSqlDatabase, QSqlQuery
  3. from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLineEdit, QMessageBox, QTableView, \
  4. QTableWidget, QTableWidgetItem
  5. # db = QSqlDatabase.addDatabase('QPSQL')
  6. # db.setHostName('10.30.0.137')
  7. # db.setPort(5432)
  8. # db.setUserName('gr692_zaa')
  9. # db.setPassword('12345')
  10. #
  11. # if not db.open():
  12. # print(db.lastError().text())
  13. # raise SystemExit
  14. #
  15. # query = QSqlQuery(db)
  16. # query.exec("""SELECT * FROM users""")
  17. # while query.next():
  18. # print(query.value(1))
  19. class MyApp(QWidget):
  20. def __init__(self):
  21. super().__init__()
  22. self.setFixedHeight(250)
  23. self.setFixedWidth(400)
  24. self.setWindowTitle('Авторизация')
  25. self.mainWindow = MainWindow()
  26. self.regWindow = RegWindow()
  27. self.loginEdit = QLineEdit()
  28. self.loginEdit.setFixedHeight(50)
  29. self.loginEdit.setPlaceholderText('Введите свой логин')
  30. self.passwordEdit = QLineEdit()
  31. self.passwordEdit.setEchoMode(QLineEdit.EchoMode.Password)
  32. self.passwordEdit.setFixedHeight(50)
  33. self.passwordEdit.setPlaceholderText('Введите свой пароль')
  34. authButton = QPushButton("Войти")
  35. authButton.setFixedHeight(60)
  36. authButton.clicked.connect(self.auth)
  37. regButton = QPushButton("Регистрация")
  38. regButton.setFixedHeight(40)
  39. regButton.clicked.connect(self.reg)
  40. vbox = QVBoxLayout()
  41. vbox.addWidget(self.loginEdit)
  42. vbox.addWidget(self.passwordEdit)
  43. vbox.addWidget(authButton)
  44. vbox.addStretch(1)
  45. vbox.addWidget(regButton)
  46. self.setLayout(vbox)
  47. def auth(self):
  48. login = self.loginEdit.text()
  49. password = self.passwordEdit.text()
  50. if login == 'asd':
  51. self.mainWindow.show()
  52. else:
  53. alert = QMessageBox()
  54. alert.setWindowTitle('Ошибка')
  55. alert.setText('Неверные данные!')
  56. alert.exec()
  57. def reg(self):
  58. myApp.close()
  59. self.regWindow.show()
  60. class RegWindow(QWidget):
  61. def __init__(self):
  62. super().__init__()
  63. self.setFixedHeight(300)
  64. self.setFixedWidth(300)
  65. self.mainWindow = MainWindow()
  66. self.setWindowTitle('Регистрация')
  67. nameEdit = QLineEdit()
  68. nameEdit.setPlaceholderText('Введите своё имя')
  69. nameEdit.setFixedHeight(30)
  70. lastnameEdit = QLineEdit()
  71. lastnameEdit.setPlaceholderText('Введите свою фамилию')
  72. lastnameEdit.setFixedHeight(30)
  73. regButton = QPushButton('Зарегистрироваться')
  74. regButton.setFixedHeight(50)
  75. regButton.clicked.connect(self.reg)
  76. vbox = QVBoxLayout()
  77. vbox.addWidget(nameEdit)
  78. vbox.addWidget(lastnameEdit)
  79. vbox.addStretch(1)
  80. vbox.addWidget(regButton)
  81. self.setLayout(vbox)
  82. def reg(self):
  83. self.setWindowTitle('Квалификационный экзамен')
  84. self.close()
  85. self.mainWindow.show()
  86. class TableView(QTableWidget):
  87. def __init__(self, data, *args):
  88. QTableWidget.__init__(self, *args)
  89. self.data = data
  90. self.setData()
  91. self.resizeColumnsToContents()
  92. self.resizeRowsToContents()
  93. def setData(self):
  94. for a in range(len(self.data)):
  95. for b in range(len(self.data[0])):
  96. self.setItem(b, a, QTableWidgetItem(self.data[a][b]))
  97. self.setHorizontalHeaderLabels(['123', '321', '222'])
  98. class MainWindow(QWidget):
  99. def __init__(self):
  100. super().__init__()
  101. self.setFixedHeight(500)
  102. self.setFixedWidth(500)
  103. self.setWindowTitle('Квалификационный экзамен')
  104. data = [['1', '2', '3', '4'],
  105. ['1', '2', '1', '3'],
  106. ['1', '1', '2', '1']]
  107. table = TableView(data, 4, 3)
  108. layout = QVBoxLayout()
  109. layout.addWidget(table)
  110. self.setLayout(layout)
  111. if __name__ == '__main__':
  112. app = QApplication(sys.argv)
  113. myApp = MyApp()
  114. myApp.show()
  115. app.exec()