123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- import sys
- from PyQt6.QtSql import QSqlDatabase, QSqlQuery
- from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLineEdit, QMessageBox, QTableView, \
- QTableWidget, QTableWidgetItem
- # db = QSqlDatabase.addDatabase('QPSQL')
- # db.setHostName('10.30.0.137')
- # db.setPort(5432)
- # db.setUserName('gr692_zaa')
- # db.setPassword('12345')
- #
- # if not db.open():
- # print(db.lastError().text())
- # raise SystemExit
- #
- # query = QSqlQuery(db)
- # query.exec("""SELECT * FROM users""")
- # while query.next():
- # print(query.value(1))
- class MyApp(QWidget):
- def __init__(self):
- super().__init__()
- self.setFixedHeight(250)
- self.setFixedWidth(400)
- self.setWindowTitle('Авторизация')
- self.mainWindow = MainWindow()
- self.regWindow = RegWindow()
- self.loginEdit = QLineEdit()
- self.loginEdit.setFixedHeight(50)
- self.loginEdit.setPlaceholderText('Введите свой логин')
- self.passwordEdit = QLineEdit()
- self.passwordEdit.setEchoMode(QLineEdit.EchoMode.Password)
- self.passwordEdit.setFixedHeight(50)
- self.passwordEdit.setPlaceholderText('Введите свой пароль')
- authButton = QPushButton("Войти")
- authButton.setFixedHeight(60)
- authButton.clicked.connect(self.auth)
- regButton = QPushButton("Регистрация")
- regButton.setFixedHeight(40)
- regButton.clicked.connect(self.reg)
- vbox = QVBoxLayout()
- vbox.addWidget(self.loginEdit)
- vbox.addWidget(self.passwordEdit)
- vbox.addWidget(authButton)
- vbox.addStretch(1)
- vbox.addWidget(regButton)
- self.setLayout(vbox)
- def auth(self):
- login = self.loginEdit.text()
- password = self.passwordEdit.text()
- if login == 'asd':
- self.mainWindow.show()
- else:
- alert = QMessageBox()
- alert.setWindowTitle('Ошибка')
- alert.setText('Неверные данные!')
- alert.exec()
- def reg(self):
- myApp.close()
- self.regWindow.show()
- class RegWindow(QWidget):
- def __init__(self):
- super().__init__()
- self.setFixedHeight(300)
- self.setFixedWidth(300)
- self.mainWindow = MainWindow()
- self.setWindowTitle('Регистрация')
- nameEdit = QLineEdit()
- nameEdit.setPlaceholderText('Введите своё имя')
- nameEdit.setFixedHeight(30)
- lastnameEdit = QLineEdit()
- lastnameEdit.setPlaceholderText('Введите свою фамилию')
- lastnameEdit.setFixedHeight(30)
- regButton = QPushButton('Зарегистрироваться')
- regButton.setFixedHeight(50)
- regButton.clicked.connect(self.reg)
- vbox = QVBoxLayout()
- vbox.addWidget(nameEdit)
- vbox.addWidget(lastnameEdit)
- vbox.addStretch(1)
- vbox.addWidget(regButton)
- self.setLayout(vbox)
- def reg(self):
- self.setWindowTitle('Квалификационный экзамен')
- self.close()
- self.mainWindow.show()
- class TableView(QTableWidget):
- def __init__(self, data, *args):
- QTableWidget.__init__(self, *args)
- self.data = data
- self.setData()
- self.resizeColumnsToContents()
- self.resizeRowsToContents()
- def setData(self):
- for a in range(len(self.data)):
- for b in range(len(self.data[0])):
- self.setItem(b, a, QTableWidgetItem(self.data[a][b]))
- self.setHorizontalHeaderLabels(['123', '321', '222'])
- class MainWindow(QWidget):
- def __init__(self):
- super().__init__()
- self.setFixedHeight(500)
- self.setFixedWidth(500)
- self.setWindowTitle('Квалификационный экзамен')
- data = [['1', '2', '3', '4'],
- ['1', '2', '1', '3'],
- ['1', '1', '2', '1']]
- table = TableView(data, 4, 3)
- layout = QVBoxLayout()
- layout.addWidget(table)
- self.setLayout(layout)
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- myApp = MyApp()
- myApp.show()
- app.exec()
|