add 'about qt' dialog
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
krow_icon = "icons" + os.sep + "krowlog.svg"
|
krow_icon = "icons" + os.sep + "krowlog.svg"
|
||||||
|
qt_icon = "icons" + os.sep + "qt-logo.png"
|
||||||
license_file = os.path.dirname(os.path.realpath(__file__)) + os.sep + "LICENSE"
|
license_file = os.path.dirname(os.path.realpath(__file__)) + os.sep + "LICENSE"
|
||||||
changelog_file = os.path.dirname(os.path.realpath(__file__)) + os.sep + "changelog.txt"
|
changelog_file = os.path.dirname(os.path.realpath(__file__)) + os.sep + "changelog.txt"
|
||||||
|
|
||||||
|
|||||||
79
src/plugins/krowlog/about_qt_dialog.py
Normal file
79
src/plugins/krowlog/about_qt_dialog.py
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
import textwrap
|
||||||
|
|
||||||
|
import PySide6
|
||||||
|
from PySide6.QtCore import Qt
|
||||||
|
from PySide6.QtGui import QFont, QPalette
|
||||||
|
from PySide6.QtWidgets import *
|
||||||
|
|
||||||
|
import constants
|
||||||
|
|
||||||
|
import krowlog
|
||||||
|
from src.ui.icon import Icon
|
||||||
|
from src.ui.label import Label
|
||||||
|
from src.ui.vbox import VBox
|
||||||
|
from src.i18n import _
|
||||||
|
|
||||||
|
|
||||||
|
class AboutQTDialog(QDialog):
|
||||||
|
"""Dialog for showing info about KrowLog"""
|
||||||
|
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super(AboutQTDialog, self).__init__(parent)
|
||||||
|
self.setWindowTitle(_("About QT"))
|
||||||
|
self.setModal(True)
|
||||||
|
# self.setMinimumWidth(850)
|
||||||
|
# self.setFixedHeight(400)
|
||||||
|
|
||||||
|
self.layout = QVBoxLayout(self)
|
||||||
|
|
||||||
|
text = f"""
|
||||||
|
<b>About QT</b>
|
||||||
|
<p>This program uses QT version {PySide6.QtCore.__version__}.</p>
|
||||||
|
|
||||||
|
<p>QT is a C++ toolkit for cross-platform application development.</p>
|
||||||
|
|
||||||
|
<p>Qt provides single-source portability across all major desktop
|
||||||
|
operating systems. It is also available for embedded Linux and other
|
||||||
|
embedded and mobile operating systems.</p>
|
||||||
|
|
||||||
|
<p>Qt is available under multiple licensing options designed to accommodate
|
||||||
|
the needs of our various users.</p>
|
||||||
|
|
||||||
|
<p>Qt licensed under our commercial license agreement is appropriate for
|
||||||
|
development of proprietary/commercial software where you do not want to
|
||||||
|
share any source code with third parties or otherwise cannot comply with
|
||||||
|
the terms of GNU (L)GPL.</p>
|
||||||
|
|
||||||
|
<p>Qt licensed under GNU (L)GPL is appropriate for the development of Qt
|
||||||
|
applications provided you can comply with the terms and conditions of the
|
||||||
|
respective licenses.</p>
|
||||||
|
|
||||||
|
Please see <a href="http://qt.io/licensing">qt.io/licensing</a> for an<
|
||||||
|
overview of Qt licensing.
|
||||||
|
|
||||||
|
<p>Copyright (C) 2025 The Qt Company Ltd and other contributors.</p>
|
||||||
|
|
||||||
|
<p>Qt and the Qt logo are trademarks of The Qt Company Ltd.</p>
|
||||||
|
|
||||||
|
<p>Qt is The Qt Company Ltd product developed as an open source project.
|
||||||
|
See <a href="http://qt.io">qt.io</a> for more information.</p>
|
||||||
|
"""
|
||||||
|
label = Label(text)
|
||||||
|
label.setWordWrap(True)
|
||||||
|
|
||||||
|
app_icon = QLabel()
|
||||||
|
app_icon.setPixmap(Icon(constants.qt_icon).pixmap(64, 64))
|
||||||
|
heading = QWidget(self)
|
||||||
|
hbox = QHBoxLayout(heading)
|
||||||
|
hbox.addWidget(app_icon)
|
||||||
|
hbox.addWidget(label)
|
||||||
|
hbox.addSpacerItem(QSpacerItem(1, 1, hData=QSizePolicy.Policy.Expanding))
|
||||||
|
|
||||||
|
heading.layout = hbox
|
||||||
|
self.layout.addWidget(heading)
|
||||||
|
|
||||||
|
buttons = QDialogButtonBox(self)
|
||||||
|
buttons.setStandardButtons(QDialogButtonBox.StandardButton.Close)
|
||||||
|
buttons.rejected.connect(self.close)
|
||||||
|
self.layout.addWidget(buttons)
|
||||||
|
self.setSizePolicy(QSizePolicy.Policy.MinimumExpanding, QSizePolicy.Policy.MinimumExpanding)
|
||||||
@@ -5,6 +5,7 @@ from PySide6.QtCore import Qt
|
|||||||
from PySide6.QtWidgets import QDockWidget, QMessageBox
|
from PySide6.QtWidgets import QDockWidget, QMessageBox
|
||||||
|
|
||||||
import constants
|
import constants
|
||||||
|
from src.plugins.krowlog.about_qt_dialog import AboutQTDialog
|
||||||
from src.plugins.krowlog.aboutdialog import AboutDialog
|
from src.plugins.krowlog.aboutdialog import AboutDialog
|
||||||
from src.mainwindow import MainWindow
|
from src.mainwindow import MainWindow
|
||||||
from src.pluginbase import PluginBase
|
from src.pluginbase import PluginBase
|
||||||
@@ -36,6 +37,7 @@ class KrowLogPlugin(PluginBase):
|
|||||||
return [
|
return [
|
||||||
MenuContribution("file", action=self._action_close(), action_id="close application", after="<last>"),
|
MenuContribution("file", action=self._action_close(), action_id="close application", after="<last>"),
|
||||||
MenuContribution("help", action=self._action_about(), action_id="open about dialog", after="<last>"),
|
MenuContribution("help", action=self._action_about(), action_id="open about dialog", after="<last>"),
|
||||||
|
MenuContribution("help", action=self._action_about_qt(), action_id="open about QT dialog", after="<last>"),
|
||||||
MenuContribution("settings", menu=self._sub_menu_languages(), action_id="recent files menu"),
|
MenuContribution("settings", menu=self._sub_menu_languages(), action_id="recent files menu"),
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -108,6 +110,14 @@ class KrowLogPlugin(PluginBase):
|
|||||||
)
|
)
|
||||||
return about_action
|
return about_action
|
||||||
|
|
||||||
|
def _action_about_qt(self) -> RAction:
|
||||||
|
action = RAction(
|
||||||
|
_("&About QT"),
|
||||||
|
action=lambda: AboutQTDialog().exec(),
|
||||||
|
icon_file=constants.qt_icon
|
||||||
|
)
|
||||||
|
return action
|
||||||
|
|
||||||
def _action_close(self) -> RAction:
|
def _action_close(self) -> RAction:
|
||||||
icon = "close" if sys.platform == 'win32' or sys.platform == 'cygwin' else "exit"
|
icon = "close" if sys.platform == 'win32' or sys.platform == 'cygwin' else "exit"
|
||||||
close_action = RAction(_("E&xit"), action=lambda: self.main_window.destruct(), shortcut='Ctrl+X',
|
close_action = RAction(_("E&xit"), action=lambda: self.main_window.destruct(), shortcut='Ctrl+X',
|
||||||
|
|||||||
Reference in New Issue
Block a user