import sys
from PyQt6.QtWidgets import *
from PyQt6.QtSql import QSqlDatabase, QSqlQueryModel, QSqlQuery
from PyQt6.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Автозаправка")
self.setGeometry(100, 100, 800, 600)
# Подключение к БД
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName("localhost")
db.setDatabaseName("avtozapravka") # название БД
db.setUserName("root") # логин
db.setPassword("") # пароль
if not db.open():
QMessageBox.critical(self, "Ошибка", "Не удалось подключиться к БД!")
return
# Центральный виджет
central = QWidget()
self.setCentralWidget(central)
layout = QVBoxLayout(central)
# Выбор таблицы
self.combo = QComboBox()
self.combo.addItems(["clients", "firma", "topilvo", "sales", "otchet"])
self.combo.currentTextChanged.connect(self.load_data)
layout.addWidget(self.combo)
# Таблица
self.table = QTableView()
layout.addWidget(self.table)
# Загружаем первую таблицу
self.load_data("clients")
def load_data(self, table_name):
model = QSqlQueryModel()
model.setQuery(f"SELECT * FROM {table_name}")
if model.lastError().isValid():
QMessageBox.critical(self, "Ошибка", model.lastError().text())
return
self.table.setModel(model)
self.table.resizeColumnsToContents()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())