1
0
Fork 0
mirror of synced 2024-06-26 10:11:19 +12:00

Convert about.ui to python

This commit is contained in:
Stelios Tsampas 2021-04-21 23:54:24 +03:00
parent 530cff2a14
commit 598c153375
2 changed files with 159 additions and 35 deletions

View file

@ -1,9 +1,10 @@
import webbrowser
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton
from PyQt5.QtWidgets import QWidget
from rare import __version__
from rare.utils.utils import get_latest_version
from .about_ui import Ui_About
def versiontuple(v):
@ -13,45 +14,27 @@ def versiontuple(v):
return tuple((9, 9, 9)) # It is a beta version and newer
class About(QWidget):
class About(QWidget, Ui_About):
def __init__(self):
super(About, self).__init__()
self.layout = QVBoxLayout()
self.setupUi(self)
self.title = QLabel("<h2>About</h2>")
self.layout.addWidget(self.title)
self.version.setText(__version__)
self.update_lbl.setVisible(False)
self.update.setVisible(False)
self.open_browser.setVisible(False)
self.version = QLabel("Version: " + __version__)
self.layout.addWidget(self.version)
latest_tag = get_latest_version()
self.update_available = versiontuple(latest_tag) > versiontuple(__version__)
self.update.setText("{} -> {}".format(__version__, latest_tag))
self.open_browser.clicked.connect(
lambda: webbrowser.open("https://github.com/Dummerle/Rare/releases/latest"))
if self.update_available:
print(f"Update available: {__version__} -> {latest_tag}")
self.update_available = QLabel(self.tr("Update available: {} -> {}").format(__version__, latest_tag))
self.layout.addWidget(self.update_available)
self.open_browser = QPushButton(self.tr("Download latest release"))
self.layout.addWidget(self.open_browser)
self.open_browser.clicked.connect(
lambda: webbrowser.open("https://github.com/Dummerle/Rare/releases/latest"))
self.dev = QLabel(self.tr("Developer:") + "<a href='https://github.com/Dummerle'>Dummerle</a>")
self.dev.setToolTip("Github")
self.dev.setOpenExternalLinks(True)
self.dev.setWordWrap(True)
self.layout.addWidget(self.dev)
self.lgd_dev = QLabel(self.tr("Legendary developer:") + "<a href='https://github.com/derrod/'>derrod</a>")
self.lgd_dev.setOpenExternalLinks(True)
self.lgd_dev.setToolTip("Github")
self.layout.addWidget(self.lgd_dev)
self.license = QLabel("License: GNU General Public License v3.0")
self.layout.addWidget(self.license)
self.info_text = QLabel(
self.tr("This is a beta version, so you can get bugs. If you get a bug, please report it by creating a "
"Issue on <a href='https://github.com/Dummerle/Rare/issues'>Github</a>. You can also contact me "
"on Discord (Dummerle#7419). Or you can join the <a href='https://discord.gg/YvmABK9YSk'>Discord server</a>"))
self.info_text.setWordWrap(True)
self.info_text.setOpenExternalLinks(True)
self.layout.addWidget(self.info_text)
self.layout.addStretch()
self.setLayout(self.layout)
self.update_lbl.setVisible(True)
self.update.setVisible(True)
self.open_browser.setVisible(True)

View file

@ -0,0 +1,141 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'about.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_About(object):
def setupUi(self, About):
About.setObjectName("About")
About.resize(499, 396)
self.gridLayout = QtWidgets.QGridLayout(About)
self.gridLayout.setObjectName("gridLayout")
self.title = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.title.sizePolicy().hasHeightForWidth())
self.title.setSizePolicy(sizePolicy)
self.title.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.title.setObjectName("title")
self.gridLayout.addWidget(self.title, 0, 0, 1, 3)
self.version_lbl = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.version_lbl.sizePolicy().hasHeightForWidth())
self.version_lbl.setSizePolicy(sizePolicy)
self.version_lbl.setObjectName("version_lbl")
self.gridLayout.addWidget(self.version_lbl, 1, 0, 1, 1)
self.license = QtWidgets.QLabel(About)
self.license.setObjectName("license")
self.gridLayout.addWidget(self.license, 7, 1, 1, 3)
self.license_lbl = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.license_lbl.sizePolicy().hasHeightForWidth())
self.license_lbl.setSizePolicy(sizePolicy)
self.license_lbl.setObjectName("license_lbl")
self.gridLayout.addWidget(self.license_lbl, 7, 0, 1, 1)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem, 14, 0, 1, 4)
self.dev_lbl = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.dev_lbl.sizePolicy().hasHeightForWidth())
self.dev_lbl.setSizePolicy(sizePolicy)
self.dev_lbl.setObjectName("dev_lbl")
self.gridLayout.addWidget(self.dev_lbl, 5, 0, 1, 1)
self.lgd_dev_lbl = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lgd_dev_lbl.sizePolicy().hasHeightForWidth())
self.lgd_dev_lbl.setSizePolicy(sizePolicy)
self.lgd_dev_lbl.setObjectName("lgd_dev_lbl")
self.gridLayout.addWidget(self.lgd_dev_lbl, 6, 0, 1, 1)
self.update_lbl = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.update_lbl.sizePolicy().hasHeightForWidth())
self.update_lbl.setSizePolicy(sizePolicy)
self.update_lbl.setObjectName("update_lbl")
self.gridLayout.addWidget(self.update_lbl, 2, 0, 1, 1)
self.lgd_dev = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lgd_dev.sizePolicy().hasHeightForWidth())
self.lgd_dev.setSizePolicy(sizePolicy)
self.lgd_dev.setOpenExternalLinks(True)
self.lgd_dev.setObjectName("lgd_dev")
self.gridLayout.addWidget(self.lgd_dev, 6, 1, 1, 3)
self.dev = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.dev.sizePolicy().hasHeightForWidth())
self.dev.setSizePolicy(sizePolicy)
self.dev.setOpenExternalLinks(True)
self.dev.setObjectName("dev")
self.gridLayout.addWidget(self.dev, 5, 1, 1, 3)
self.update = QtWidgets.QLabel(About)
self.update.setObjectName("update")
self.gridLayout.addWidget(self.update, 2, 1, 1, 3)
self.version = QtWidgets.QLabel(About)
self.version.setObjectName("version")
self.gridLayout.addWidget(self.version, 1, 1, 1, 3)
self.open_browser = QtWidgets.QPushButton(About)
self.open_browser.setObjectName("open_browser")
self.gridLayout.addWidget(self.open_browser, 4, 0, 1, 4)
self.info_text = QtWidgets.QLabel(About)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.info_text.sizePolicy().hasHeightForWidth())
self.info_text.setSizePolicy(sizePolicy)
self.info_text.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
self.info_text.setWordWrap(True)
self.info_text.setOpenExternalLinks(True)
self.info_text.setObjectName("info_text")
self.gridLayout.addWidget(self.info_text, 8, 0, 1, 4)
self.retranslateUi(About)
QtCore.QMetaObject.connectSlotsByName(About)
def retranslateUi(self, About):
_translate = QtCore.QCoreApplication.translate
About.setWindowTitle(_translate("About", "Form"))
self.title.setText(_translate("About", "<h2>About</h2>"))
self.version_lbl.setText(_translate("About", "Version: "))
self.license.setText(_translate("About", "GNU General Public License v3.0"))
self.license_lbl.setText(_translate("About", "License:"))
self.dev_lbl.setText(_translate("About", "Rare Developer:"))
self.lgd_dev_lbl.setText(_translate("About", "Legendary Developer:"))
self.update_lbl.setText(_translate("About", "Update available: "))
self.lgd_dev.setText(_translate("About", "<a href=\'https://github.com/derrod/\'>derrod</a>"))
self.dev.setText(_translate("About", "<a href=\'https://github.com/Dummerle\'>Dummerle</a>"))
self.update.setText(_translate("About", "update"))
self.version.setText(_translate("About", "version"))
self.open_browser.setText(_translate("About", "Download latest release"))
self.info_text.setText(_translate("About", "This is a beta version, so you can get bugs. If you get a bug, please report it by creating an Issue on <a href=\'https://github.com/Dummerle/Rare/issues\'>Github</a>. You can also contact me on Discord (Dummerle#7419). Or you can join the <a href=\'https://discord.gg/YvmABK9YSk\'>Discord server</a>"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
About = QtWidgets.QWidget()
ui = Ui_About()
ui.setupUi(About)
About.show()
sys.exit(app.exec_())