add version and ok button to about dialog

This commit is contained in:
2021-10-31 19:50:33 +01:00
parent f1b0bf4981
commit 0d04432d8b
3 changed files with 29 additions and 2 deletions

1
VERSION.info Normal file
View File

@@ -0,0 +1 @@
0.1-alpha

View File

@@ -5,6 +5,7 @@ from PyQt6.QtGui import QFont, QPixmap
from PyQt6.QtWidgets import *
from label import Label
from vbox import VBox
class AboutDialog(QDialog):
@@ -21,12 +22,16 @@ class AboutDialog(QDialog):
heading_app_name.setAlignment(Qt.AlignmentFlag.AlignLeft)
heading_app_name.setFont(QFont("default", 25))
heading_app_name.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)
version = QLabel(self.tr("Version: {0}".format(self._version())))
version.setAlignment(Qt.AlignmentFlag.AlignLeft)
app_icon = QLabel()
app_icon.setPixmap(QPixmap("icon7.png"))
heading = QWidget(self)
hbox = QHBoxLayout(heading)
hbox.addWidget(app_icon)
hbox.addWidget(heading_app_name)
hbox.addWidget(VBox(heading_app_name, version))
hbox.addSpacerItem(QSpacerItem(1, 1, hPolicy=QSizePolicy.Policy.Expanding))
heading.layout = hbox
@@ -38,6 +43,11 @@ class AboutDialog(QDialog):
self.layout.addWidget(tabs)
buttons = QDialogButtonBox(self)
buttons.setStandardButtons(QDialogButtonBox.StandardButton.Ok)
buttons.accepted.connect(self.close)
self.layout.addWidget(buttons)
def _about(self) -> QWidget:
result = QWidget()
result.layout = QVBoxLayout(result)
@@ -53,7 +63,14 @@ class AboutDialog(QDialog):
result.layout = QVBoxLayout(result)
result.layout.addWidget(Label(self.tr(textwrap.dedent("""
<ul>
<li>PyQt6 6.2.1 (GPL v3) - <a href="https://code.qt.io/cgit/qt/qtbase.git/">https://code.qt.io/cgit/qt/qtbase.git/</a></li>
<li>PyQt6 6.2.1 (GPL v3)</li>
<li>Qt6 6.2.1 (LGPL v3) - <a href="https://code.qt.io/cgit/qt/qtbase.git/">https://code.qt.io/cgit/qt/qtbase.git/</a></li>
<li>watchdog 2.16 (Apache 2.0)</li>
</ul>"""))))
return result
def _version(self):
with open('VERSION.info', "rt") as f:
line = f.readline()
version = line.strip()
return version

9
vbox.py Normal file
View File

@@ -0,0 +1,9 @@
from PyQt6.QtWidgets import QWidget, QVBoxLayout
class VBox(QWidget):
def __init__(self, *widgets: QWidget):
super(VBox, self).__init__()
self.layout = QVBoxLayout(self)
for widget in widgets:
self.layout.addWidget(widget)