From 416cf53c5d812aa4896fa75d710bf12b55bc86e8 Mon Sep 17 00:00:00 2001 From: Andreas Bolin <andbo467@student.liu.se> Date: Mon, 11 Jul 2022 15:57:35 +0200 Subject: [PATCH] fix bugs related to PyQt5 --- b_asic/scheduler-gui/main_window.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/b_asic/scheduler-gui/main_window.py b/b_asic/scheduler-gui/main_window.py index 736b9cbc..98a31ca7 100644 --- a/b_asic/scheduler-gui/main_window.py +++ b/b_asic/scheduler-gui/main_window.py @@ -28,18 +28,18 @@ from qtpy.QtCore import QCoreApplication, Qt, Slot, QSettings, QStandardPaths #QtCore QSize, QPoint from qtpy.QtGui import QCloseEvent from qtpy.QtWidgets import ( - QApplication, QMainWindow, QMessageBox, QFileDialog, QInputDialog, QCheckBox) + QApplication, QMainWindow, QMessageBox, QFileDialog, QInputDialog, QCheckBox, QAbstractButton) # QGraphics and QPainter imports from qtpy.QtWidgets import ( QGraphicsView, QGraphicsScene, QGraphicsWidget, QGraphicsLayout, QGraphicsLinearLayout, QGraphicsGridLayout, QGraphicsLayoutItem, QGraphicsAnchorLayout, - QGraphicsItem, QGraphicsItemGroup, QGraphicsItemAnimation) + QGraphicsItem, QGraphicsItemGroup) from qtpy.QtGui import ( QPaintEvent, QPainter, QPainterPath, QColor, QBrush, QPen, QFont, QPolygon, QLinearGradient) from qtpy.QtCore import ( - QRect) + QRect, QPoint, QSize, QByteArray) # B-ASIC import logger @@ -62,7 +62,8 @@ if __debug__: import PySide2 print('PySide version: ', PySide2.__version__) if QT_API.lower().startswith('pyqt'): - print('PyQt version: ', str(Qt.PYQT_VERSION_STR)) + from qtpy.QtCore import PYQT_VERSION_STR + print('PyQt version: ', PYQT_VERSION_STR) print('QtPy version: ', qtpy.__version__) # Autocompile the .ui form to a python file. @@ -73,9 +74,11 @@ if __debug__: # return (dir+'/ui/', file_base+'_ui.py') # uic.compileUiDir('.', map=_map_func) - uic.compileUiDir('.', map=(lambda dir,file: dir, 'ui_' + file)) + uic.compileUiDir('.', map=(lambda dir,file: (dir, 'ui_' + file))) except: try: # PySide2, try manual compile + print("fail!") + exit(1) import subprocess os_ = sys.platform if os_.startswith('linux'): @@ -271,9 +274,12 @@ class MainWindow(QMainWindow, Ui_MainWindow): ' <br></p>') box.setIcon(QMessageBox.Question) box.setStandardButtons(QMessageBox.Yes | QMessageBox.No) - box.setButtonText(QMessageBox.Yes, self.tr("&Exit")) - box.setButtonText(QMessageBox.No, self.tr("&Cancel")) - checkbox = QCheckBox('Don\'t ask again') + buttons: list[QAbstractButton] = box.buttons() + buttons[0].setText(self.tr('&Exit')) + buttons[1].setText(self.tr('&Cancel')) + #box.setButtonText(QMessageBox.Yes, self.tr('&Exit')) + #box.setButtonText(QMessageBox.No, self.tr('&Cancel')) + checkbox = QCheckBox(self.tr('Don\'t ask again')) box.setCheckBox(checkbox) ret = box.exec_() @@ -319,10 +325,10 @@ class MainWindow(QMainWindow, Ui_MainWindow): def _read_settings(self) -> None: """Read settings from Settings to MainWindow.""" s = QSettings() - self.restoreGeometry( s.value('mainwindow/geometry')) - self.restoreState( s.value('mainwindow/state')) + self.restoreGeometry( s.value('mainwindow/geometry', type=QByteArray)) + self.restoreState( s.value('mainwindow/state', type=QByteArray)) self.menu_node_info.setChecked( s.value('mainwindow/menu/node_info', True, type=bool)) - self.splitter_center.restoreState( s.value('mainwindow/splitter/state')) + self.splitter_center.restoreState( s.value('mainwindow/splitter/state', type=QByteArray)) log.debug('Settings read from \'{}\'.'.format(s.fileName())) -- GitLab