From c81ad9a42f5912245be31a3eed29ea897300e7e7 Mon Sep 17 00:00:00 2001 From: Bernardo Carvalho Date: Mon, 10 Mar 2025 16:13:07 +0000 Subject: [PATCH] Added PyQt6 script to List Archived Channels Signed-off-by: Bernardo Carvalho --- epics/css/pyQt/config.py | 5 ++ epics/css/pyQt/getChannels.py | 101 ++++++++++++++++++++++++++++++++ epics/css/pyQt/requirements.txt | 2 + 3 files changed, 108 insertions(+) create mode 100644 epics/css/pyQt/config.py create mode 100644 epics/css/pyQt/getChannels.py create mode 100644 epics/css/pyQt/requirements.txt diff --git a/epics/css/pyQt/config.py b/epics/css/pyQt/config.py new file mode 100644 index 0000000..106331d --- /dev/null +++ b/epics/css/pyQt/config.py @@ -0,0 +1,5 @@ +# git update-index --assume-unchanged config.py +host = "xx.tecnico.ulisboa.pt" +database = "YYYYY" +username = "XXXXXX" +password = "ZZZZZZ" diff --git a/epics/css/pyQt/getChannels.py b/epics/css/pyQt/getChannels.py new file mode 100644 index 0000000..7694ce7 --- /dev/null +++ b/epics/css/pyQt/getChannels.py @@ -0,0 +1,101 @@ +#!/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 diff --git a/epics/css/pyQt/requirements.txt b/epics/css/pyQt/requirements.txt new file mode 100644 index 0000000..cbec9b3 --- /dev/null +++ b/epics/css/pyQt/requirements.txt @@ -0,0 +1,2 @@ +python3-pyqt6 +libqt6sql6-psql