102 lines
2.1 KiB
Python
102 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
PyQt6 SQL App for Esther Reports
|
|
Python version of http://esther.tecnico.ulisboa.pt/esther-php/show_report.php
|
|
|
|
ssh -X -t golem 'cd /home/esther/git-repos/esther-python/sql; zsh -l'
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
from PyQt6.QtCore import QSize, QDate, Qt
|
|
# from PyQt6 import QtCore
|
|
|
|
from PyQt6.QtGui import QAction, QIcon, QPixmap # QFont
|
|
|
|
from PyQt6.QtSql import (
|
|
QSqlDatabase,
|
|
QSqlRelation,
|
|
# QSqlRelationalDelegate,
|
|
QSqlRelationalTableModel,
|
|
QSqlTableModel,
|
|
QSqlQuery,
|
|
QSqlQueryModel,
|
|
)
|
|
from PyQt6.QtWidgets import (
|
|
QWidget,
|
|
QApplication,
|
|
QLineEdit, QDateEdit,
|
|
QMainWindow,
|
|
QTableView,
|
|
QVBoxLayout, QHBoxLayout, QGridLayout, QFormLayout,
|
|
QDialog,
|
|
QDialogButtonBox, QPushButton,
|
|
QCheckBox,
|
|
QComboBox,
|
|
QSpinBox,
|
|
QRadioButton,
|
|
QLabel,
|
|
QTableWidget, QTableWidgetItem,
|
|
QStatusBar,
|
|
QSlider,
|
|
QToolBar,
|
|
QTabWidget,
|
|
# QSizePolicy,
|
|
QAbstractScrollArea,
|
|
)
|
|
|
|
import config as cfg
|
|
|
|
|
|
db = QSqlDatabase("QPSQL")
|
|
db.setHostName(cfg.host)
|
|
db.setDatabaseName(cfg.database)
|
|
db.setUserName(cfg.username)
|
|
db.setPassword(cfg.password)
|
|
"""
|
|
db.open()
|
|
|
|
query = QSqlQuery(db=db)
|
|
query.exec("SELECT * FROM channel")
|
|
while (query.next()):
|
|
print(query.value(0))
|
|
print(query.value(1))
|
|
|
|
|
|
"""
|
|
|
|
|
|
class MainWindow(QMainWindow):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
container = QWidget()
|
|
layoutMain = QHBoxLayout()
|
|
if not db.open():
|
|
print("DB not openned")
|
|
sys.exit(-1)
|
|
|
|
model = QSqlTableModel(db=db)
|
|
model.setTable('channel')
|
|
model.select()
|
|
self.tableViewReports = QTableView()
|
|
self.tableViewReports.setModel(model)
|
|
layoutMain.addWidget(self.tableViewReports)
|
|
|
|
self.setStatusBar(QStatusBar(self))
|
|
|
|
container.setLayout(layoutMain)
|
|
self.setMinimumSize(QSize(1200, 700))
|
|
self.setCentralWidget(container)
|
|
|
|
|
|
app = QApplication(sys.argv)
|
|
window = MainWindow()
|
|
window.show()
|
|
# sys.exit(app.exec())
|
|
app.exec()
|
|
|
|
# vim: syntax=python ts=4 sw=4 sts=4 sr exit
|