Newer
Older
import sys # ONLY FOR DEBUG
from qtpy.QtCore import Qt
from qtpy.QtGui import QCursor, QPixmap
from qtpy.QtWidgets import QApplication # ONLY FOR DEBUG
from qtpy.QtWidgets import (
QDialog,
QFrame,
QHBoxLayout,
QLabel,
QPushButton,
QToolTip,
QVBoxLayout,
)
from b_asic._version import __version__
class AboutWindow(QDialog):
"""About window."""
def __init__(self, window):
super().__init__()
self._window = window
self.setWindowFlags(Qt.WindowTitleHint | Qt.WindowCloseButtonHint)
self.setWindowTitle("About B-ASIC")
self.dialog_layout = QVBoxLayout()
self.setLayout(self.dialog_layout)
self._add_information_to_layout()
def _hover_text(self, url):
# self.setWindowTitle(url) # When removing mouse, the title gets "B-ASIC Scheduler". Where does THAT come from?
if url:
QToolTip.showText(QCursor.pos(), url)
else:
QToolTip.hideText()
def _add_information_to_layout(self):
# |1 Title |2 |
# | License | Logo | <- layout12
# | Version | |
# ----------------------
# |3 links |4 OK | <- layout34
label1 = QLabel(
"# B-ASIC\n__Better ASIC and FPGA Signal Processing"
" Toolbox__\n\n*Construct, simulate and analyze signal processing"
" algorithms aimed at implementation on an ASIC or"
" FPGA.*\n\nB-ASIC is developed by the <a"
" href=\"https://liu.se/en/organisation/liu/isy/da\">Division of"
" Computer Engineering</a> at <a"
" href=\"https://liu.se/?l=en\">Linköping University</a>,"
" Sweden.\n\nB-ASIC is released under the <a"
" href=\"https://gitlab.liu.se/da/B-ASIC/-/blob/master/LICENSE\">MIT-license</a>"
" and any extension to the program should follow that same"
f" license.\n\n*Version: {__version__}*\n\nCopyright 2020-2023,"
" Oscar Gustafsson et al."
)
label1.setTextFormat(Qt.MarkdownText)
label1.setWordWrap(True)
label1.setOpenExternalLinks(True)
label1.linkHovered.connect(self._hover_text)
self.logo2 = QLabel(self)
self.logo2.setPixmap(
QPixmap(
str(pathlib.Path(__file__).parent.resolve())
+ "/../../logos/small_logo.png"
).scaledToWidth(100)
)
self.logo2.setFixedWidth(100)
label3 = QLabel(
"""Additional resources: <a href="https://da.gitlab-pages.liu.se/B-ASIC/">documentation</a>,"""
""" <a href="https://gitlab.liu.se/da/B-ASIC/">git repository</a>,"""
""" <a href="https://gitlab.liu.se/da/B-ASIC/-/issues">report issues and suggestions</a>."""
)
label3.setOpenExternalLinks(True)
label3.linkHovered.connect(self._hover_text)
button4 = QPushButton()
button4.setText("OK")
button4.setFixedWidth(80)
button4.clicked.connect(self.close)
layout12 = QHBoxLayout()
layout34 = QHBoxLayout()
layout12.addWidget(label1)
layout12.addWidget(self.logo2)
layout34.addWidget(label3)
layout34.addWidget(button4)
hline = QFrame()
hline.setFrameShape(QFrame.HLine)
hline.setFrameShadow(QFrame.Sunken)
self.dialog_layout.addLayout(layout12)
self.dialog_layout.addWidget(hline)
self.dialog_layout.addLayout(layout34)
# ONLY FOR DEBUG below
def show_about_window():
"""Simply show the about window."""
app = QApplication(sys.argv)
window = AboutWindow(QDialog)
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
show_about_window()