parch-welcome/src/Welcome.py
2023-08-03 23:05:45 +04:30

128 lines
No EOL
3.8 KiB
Python

# Import I/O
import subprocess
import sys
# Import PyQt6 Framework libraries
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtQml import *
# Import Resources of Qt
import Res
# Simple Qt Quick class for loading QML files
class Quick(QQmlApplicationEngine):
# DO: Set property of object
def setProperty(self, name, value):
self.rootObjects()[0].setProperty(name, value)
# DO: Get property of object
def property(self, name):
return self.rootObjects()[0].property(name)
# DO: find a object
def findChild(self, name, **kwargs):
return self.rootObjects()[0].findChild(QObject, name)
# DO: Close the loader
def close(self):
self.rootObjects()[0].close()
def __init__(self):
super(Quick, self).__init__()
# Main Class of Parch Welcome Project
class Main(Quick):
# DO: Button 1 loading link: https://github.com/parchlinux
def b1_(self):
self.link("https://github.com/parchlinux")
# DO: Button 2 loading link: https://twitter.com/bssfoss
def b2_(self):
self.link("https://twitter.com/bssfoss")
# DO: Button 3 loading link: https://t.me/parchlinux
def b3_(self):
self.link("https://t.me/parchlinux")
# DO: Button 4 loading link: https://discord.gg/9RW5cRByAM
def b4_(self):
self.link("https://discord.gg/9RW5cRByAM")
# DO: Button 5 loading link: https://mas.to/@bssfoss
def b5_(self):
self.link("https://mas.to/@bssfoss")
# DO: Button 6 loading link: https://coffeete.ir/parchlinux
def b6_(self):
self.link("https://coffeete.ir/parchlinux")
# DO: Button 7 loading link: https://parchlinux.ir
def b7_(self):
self.link("https://parchlinux.ir")
# DO: Button 8 loading link: https://parchlinux.ir/parchwiki/
def b8_(self):
self.link("https://parchlinux.ir/parchwiki/")
# DO: Run Calamares Installer
def install_(self):
self.close()
subprocess.run('sudo sh /etc/calamares/launch.sh',shell=True)
# DO: Loading link in `xdg-open` function
def link(self,url):
self.close()
subprocess.run(f'xdg-open {url}',shell=True)
# DO: Init Function
def __init__(self):
super(Main, self).__init__()
# Load Main QML file
self.load(":/ParchLinux.qml")
self.b1 = self.findChild("b1") # Find Button 1
self.b1.clicked.connect(self.b1_) # Action: Connect Button 1 action to b1_
self.b2 = self.findChild("b2") # Find Button 2
self.b2.clicked.connect(self.b2_) # Action: Connect Button 2 action to b2_
self.b3 = self.findChild("b3") # Find Button 3
self.b3.clicked.connect(self.b3_) # Action: Connect Button 3 action to b3_
self.b4 = self.findChild("b4") # Find Button 4
self.b4.clicked.connect(self.b4_) # Action: Connect Button 4 action to b4_
self.b5 = self.findChild("b5") # Find Button 5
self.b5.clicked.connect(self.b5_) # Action: Connect Button 5 action to b5_
self.b6 = self.findChild("b6") # Find Button 6
self.b6.clicked.connect(self.b6_) # Action: Connect Button 6 action to b6_
self.b7 = self.findChild("b7") # Find Button 7
self.b7.clicked.connect(self.b7_) # Action: Connect Button 7 action to b7_
self.b8 = self.findChild("b8") # Find Button 8
self.b8.clicked.connect(self.b8_) # Action: Connect Button 8 action to b8_
self.install = self.findChild('install') # Find Install Button
self.install.clicked.connect(self.install_) # Action: Connect to install_ function
# Start Qt Qui Application loop
app = QGuiApplication([])
# Set Qt Window Icon
app.setWindowIcon(QIcon(":/ParchLogo.svg"))
# Loading Main Class
m = Main()
# Set loop exec
app.exec()