import os from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QLabel, QVBoxLayout, QWidget from PyQt5.QtCore import Qt import nixview.constants as cnst class AboutDialog(QDialog): def __init__(self, parent=None) -> None: super().__init__(parent=parent) self.setModal(True) about = About(self) self.setLayout(QVBoxLayout()) self.layout().addWidget(about) bbox = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok) bbox.accepted.connect(self.accept) self.layout().addWidget(bbox) class About(QWidget): def __init__(self, parent=None) -> None: super().__init__(parent=parent) self.setLayout(QVBoxLayout()) heading = QLabel("NixView") font = heading.font() font.setPointSize(18) font.setBold(True) heading.setFont(font) heading.setAlignment(Qt.AlignCenter) subheading = QLabel("viewer for nix data files\nby Jan Grewe") subheading.setAlignment(Qt.AlignCenter) nix_link = QLabel("https://github.com/g-node/nix") nix_link.setOpenExternalLinks(True) nix_link.setAlignment(Qt.AlignCenter) rtd_link = QLabel("https://nixio.readthedocs.io/en/master/") rtd_link.setOpenExternalLinks(True) rtd_link.setAlignment(Qt.AlignCenter) iconlabel = QLabel() pixmap = QPixmap(os.path.join(cnst.ICONS_FOLDER, "nix_logo.png")) s = pixmap.size() new_height = int(s.height() * 300/s.width()) pixmap = pixmap.scaled(300, new_height, Qt.KeepAspectRatio, Qt.FastTransformation) iconlabel.setPixmap(pixmap) iconlabel.setMaximumWidth(300) iconlabel.setAlignment(Qt.AlignCenter) iconlabel.setScaledContents(True) self.layout().addWidget(heading) self.layout().addWidget(subheading) self.layout().addWidget(iconlabel) self.layout().addWidget(nix_link) self.layout().addWidget(rtd_link)