From da146230629e6b46332285fa28fc6c3bceaed697 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Sat, 6 Mar 2021 17:43:04 +0100 Subject: [PATCH] use qt resources for icons --- blipblop/ui/about.py | 4 +--- blipblop/ui/audioblop.py | 6 +++--- blipblop/ui/help.py | 9 ++++----- blipblop/ui/mainwindow.py | 11 +++++------ blipblop/ui/startscreen.py | 4 ++-- resources.qrc | 23 +++++++++++++++++++++++ 6 files changed, 38 insertions(+), 19 deletions(-) create mode 100644 resources.qrc diff --git a/blipblop/ui/about.py b/blipblop/ui/about.py index b628aa4..f707085 100644 --- a/blipblop/ui/about.py +++ b/blipblop/ui/about.py @@ -3,8 +3,6 @@ from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QLabel, QVBoxLayout, QWidget from PyQt5.QtCore import Qt -import blipblop.constants as cnst - class AboutDialog(QDialog): @@ -42,7 +40,7 @@ class About(QWidget): # rtd_link.setAlignment(Qt.AlignCenter) iconlabel = QLabel() - pixmap = QPixmap(os.path.join(cnst.ICONS_FOLDER, "blipblop_logo.png")) + pixmap = QPixmap(":/icons/blipblop_logo") s = pixmap.size() new_height = int(s.height() * 300/s.width()) pixmap = pixmap.scaled(300, new_height, Qt.KeepAspectRatio, Qt.FastTransformation) diff --git a/blipblop/ui/audioblop.py b/blipblop/ui/audioblop.py index 95dcb9a..7a5536a 100644 --- a/blipblop/ui/audioblop.py +++ b/blipblop/ui/audioblop.py @@ -1,6 +1,6 @@ from PyQt5.QtWidgets import QAction, QComboBox, QFormLayout, QGridLayout, QLabel, QPushButton, QSizePolicy, QSlider, QSpinBox, QSplitter, QTextEdit, QVBoxLayout, QWidget from PyQt5.QtCore import QPoint, QRandomGenerator, QTimer, Qt, pyqtSignal -from PyQt5.QtGui import QColor, QFont, QKeySequence, QPainter, QPen, QPixmap +from PyQt5.QtGui import QColor, QFont, QIcon, QKeySequence, QPainter, QPen, QPixmap from PyQt5.QtMultimedia import QMediaPlayer import os @@ -117,7 +117,7 @@ class AudioBlop(QWidget): widget.setLayout(grid) l = QLabel("Auditory reaction test") - l.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "auditory_task.png"))) + l.setPixmap(QPixmap(":/icons/auditory_task")) grid.addWidget(l, 0, 0, Qt.AlignLeft) l2 =QLabel("Measurement of auditory reaction times\npress enter to start") @@ -128,7 +128,7 @@ class AudioBlop(QWidget): l2.setStyleSheet("color: #2D4B9A") grid.addWidget(l2, 1, 0, 1, 2, Qt.AlignLeft) - settings_btn = QPushButton(cnst.get_icon("settings"), "") + settings_btn = QPushButton(QIcon(":/icons/settings"), "") settings_btn.setToolTip("edit task settings") settings_btn.setShortcut(QKeySequence("alt+s")) settings_btn.clicked.connect(self.on_toggle_settings) diff --git a/blipblop/ui/help.py b/blipblop/ui/help.py index 8baa3b5..00f68d0 100644 --- a/blipblop/ui/help.py +++ b/blipblop/ui/help.py @@ -1,4 +1,3 @@ -import os from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QFrame, QHBoxLayout, QPushButton, QSizePolicy, QTextBrowser, QVBoxLayout, QWidget from PyQt5.QtCore import QUrl @@ -17,12 +16,12 @@ class HelpDialog(QDialog): self.help._edit.historyChanged.connect(self._on_history_changed) - self.back_btn = QPushButton(QIcon(os.path.join(cnst.ICONS_FOLDER, "back_btn")), "back") + self.back_btn = QPushButton(QIcon(":/icons/back_btn"), "back") self.back_btn.setEnabled(False) self.back_btn.clicked.connect(self.help._edit.backward) - self.home_btn = QPushButton(QIcon(os.path.join(cnst.ICONS_FOLDER, "home_btn")),"home") + self.home_btn = QPushButton(QIcon(":/icons/home_btn"),"home") self.home_btn.clicked.connect(self.help._edit.home) - self.fwd_btn = QPushButton(QIcon(os.path.join(cnst.ICONS_FOLDER, "fwd_btn")),"forward") + self.fwd_btn = QPushButton(QIcon(":/icons/fwd_btn"),"forward") self.fwd_btn.setEnabled(False) self.fwd_btn.clicked.connect(self.help._edit.forward) @@ -53,7 +52,7 @@ class HelpBrowser(QWidget): def __init__(self, parent=None) -> None: super().__init__(parent=parent) self.setLayout(QVBoxLayout()) - + # FIXME https://stackoverflow.com/a/43217828 about loading from esource files doc_url = QUrl.fromLocalFile(cnst.DOCS_ROOT_FILE) self._edit = QTextBrowser() self._edit.setOpenLinks(True) diff --git a/blipblop/ui/mainwindow.py b/blipblop/ui/mainwindow.py index 8261d9c..8402cbb 100644 --- a/blipblop/ui/mainwindow.py +++ b/blipblop/ui/mainwindow.py @@ -25,17 +25,17 @@ class BlipBlop(QMainWindow): self.show() def create_actions(self): - self._quit_action = QAction(cnst.get_icon("nixview_quit"), "Quit", self) + self._quit_action = QAction(QIcon(":/icons/quit"), "Quit", self) self._quit_action.setStatusTip("Quit BlipBlop") self._quit_action.setShortcut(QKeySequence("Ctrl+q")) self._quit_action.triggered.connect(self.on_quit) - self._new_action = QAction(cnst.get_icon("new_task"), "New session", self) + self._new_action = QAction(QIcon(":/icons/new_session"), "New session", self) self._new_action.setStatusTip("Start a new session discarding previous results") self._new_action.setShortcut(QKeySequence("Ctrl+n")) self._new_action.triggered.connect(self.on_new) - self._results_action = QAction(cnst.get_icon("nix_data_frame"), "Show results", self) + self._results_action = QAction(QIcon(":/icons/results_table"), "Show results", self) self._results_action.setStatusTip("Show results as table") self._results_action.setShortcut(QKeySequence("Ctrl+r")) self._results_action.setEnabled(True) @@ -46,20 +46,19 @@ class BlipBlop(QMainWindow): self._about_action.setEnabled(True) self._about_action.triggered.connect(self.on_about) - self._help_action = QAction(cnst.get_icon("nixview_help"), "help") + self._help_action = QAction(QIcon(":/icons/help"), "help") self._help_action.setStatusTip("Show help dialog") self._help_action.setShortcut(QKeySequence("F1")) self._help_action.setEnabled(True) self._help_action.triggered.connect(self.on_help) - # self._visual_task_action = QAction(cnst.get_icon("visual_task"), "visual") self._visual_task_action = QAction(QIcon(":/icons/visual_task"), "visual") self._visual_task_action.setStatusTip("Start measuring visual reaction times") self._visual_task_action.setShortcut(QKeySequence("Ctrl+1")) self._visual_task_action.setEnabled(True) self._visual_task_action.triggered.connect(self.on_visual) - self._auditory_task_action = QAction(cnst.get_icon("auditory_task"), "auditory") + self._auditory_task_action = QAction(QIcon(":/icons/auditory_task"), "auditory") self._auditory_task_action.setStatusTip("Start measuring auditory reaction times") self._auditory_task_action.setShortcut(QKeySequence("Ctrl+2")) self._auditory_task_action.setEnabled(True) diff --git a/blipblop/ui/startscreen.py b/blipblop/ui/startscreen.py index ad84e25..107ea02 100644 --- a/blipblop/ui/startscreen.py +++ b/blipblop/ui/startscreen.py @@ -39,13 +39,13 @@ class StartScreen(QWidget): visual_task_label = MyLabel() visual_task_label.setToolTip("Click to start a new visual task (Ctrl+1)") - visual_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "visual_task_large.png"))) + visual_task_label.setPixmap(QPixmap(":/icons/visual_task_large")) visual_task_label.setMaximumWidth(256) visual_task_label.clicked.connect(self.new_visual_task) auditory_task_label = MyLabel() auditory_task_label.setToolTip("Click to start a new auditory task (Ctrl+2)") - auditory_task_label.setPixmap(QPixmap(os.path.join(cnst.ICONS_FOLDER, "auditory_task_large.png"))) + auditory_task_label.setPixmap(QPixmap(":/icons/auditory_task_large")) auditory_task_label.setMaximumWidth(256) auditory_task_label.clicked.connect(self.new_auditory_task) diff --git a/resources.qrc b/resources.qrc new file mode 100644 index 0000000..ecc2617 --- /dev/null +++ b/resources.qrc @@ -0,0 +1,23 @@ + + + + icons/blipblop_logo.icns + icons/blipblop_logo.png + icons/visual_task.png + icons/visual_task_large.png + icons/auditory_task.png + icons/auditory_task_large.png + icons/home_btn.png + icons/back_btn.png + icons/fwd_btn.png + icons/help.png + icons/new_session.png + icons/new_session_large.png + icons/blipblop_table.png + icons/settings.png + + + + docs/index.md + + \ No newline at end of file