79 lines
3.2 KiB
Python
79 lines
3.2 KiB
Python
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
import json
|
|
|
|
|
|
class Ui_KOTIKOTlauncher(object):
|
|
@staticmethod
|
|
def genSize() -> tuple:
|
|
with open("OfficialProjects/LAUNCHERFILES/apps.json") as appsfile:
|
|
apps = len(list(json.load(appsfile)))
|
|
h = 1
|
|
w = 1
|
|
while h * w < apps:
|
|
h += 1
|
|
if h * w < apps:
|
|
w += 1
|
|
return h * 105 + 5, w * 105 + 25, w
|
|
|
|
def setupUi(self, KOTIKOTlauncher):
|
|
self.genSize()
|
|
KOTIKOTlauncher.setObjectName("KOTIKOTlauncher")
|
|
self.size = self.genSize()
|
|
KOTIKOTlauncher.resize(self.size[0], self.size[1])
|
|
KOTIKOTlauncher.setMinimumSize(QtCore.QSize(self.size[0], self.size[1]))
|
|
KOTIKOTlauncher.setMaximumSize(QtCore.QSize(self.size[0], self.size[1]))
|
|
|
|
self.centralwidget = QtWidgets.QWidget(KOTIKOTlauncher)
|
|
self.centralwidget.setObjectName("centralwidget")
|
|
|
|
self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)
|
|
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 425, 425))
|
|
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
|
|
self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
|
|
self.gridLayout.setContentsMargins(5, 5, 5, 5)
|
|
self.gridLayout.setSpacing(5)
|
|
self.gridLayout.setObjectName("gridLayout")
|
|
|
|
with open("OfficialProjects/LAUNCHERFILES/apps.json") as appsfile:
|
|
apps = list(json.load(appsfile))
|
|
|
|
self.buttons = list()
|
|
for i in range(len(apps)):
|
|
self.buttons.append(QtWidgets.QPushButton(self.gridLayoutWidget))
|
|
self.buttons[i].setMinimumSize(QtCore.QSize(100, 100))
|
|
self.buttons[i].setMaximumSize(QtCore.QSize(100, 100))
|
|
self.buttons[i].setObjectName(apps[i])
|
|
self.buttons[i].setText(apps[i])
|
|
self.gridLayout.addWidget(self.buttons[i], i // self.size[2], i % self.size[2], 1, 1)
|
|
|
|
KOTIKOTlauncher.setCentralWidget(self.centralwidget)
|
|
self.menubar = QtWidgets.QMenuBar(KOTIKOTlauncher)
|
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 434, 21))
|
|
self.menubar.setObjectName("menubar")
|
|
KOTIKOTlauncher.setMenuBar(self.menubar)
|
|
|
|
self.menuSettings = QtWidgets.QMenu(self.menubar)
|
|
self.menubar.addAction(self.menuSettings.menuAction())
|
|
self.actionOpen_settings = QtWidgets.QAction(KOTIKOTlauncher)
|
|
self.actionOpen_settings.setObjectName("actionOpen_settings")
|
|
self.menuSettings.addAction(self.actionOpen_settings)
|
|
|
|
self.retranslateUi(KOTIKOTlauncher)
|
|
QtCore.QMetaObject.connectSlotsByName(KOTIKOTlauncher)
|
|
|
|
def retranslateUi(self, KOTIKOTlauncher):
|
|
_translate = QtCore.QCoreApplication.translate
|
|
KOTIKOTlauncher.setWindowTitle(_translate("KOTIKOTlauncher", "KOTIKOTlauncher"))
|
|
self.menuSettings.setTitle(_translate("KOTIKOTlauncher", "Settings"))
|
|
self.actionOpen_settings.setText(_translate("KOTIKOTlauncher", "Open settings"))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
app = QtWidgets.QApplication(sys.argv)
|
|
KOTIKOTlauncher = QtWidgets.QMainWindow()
|
|
ui = Ui_KOTIKOTlauncher()
|
|
ui.setupUi(KOTIKOTlauncher)
|
|
KOTIKOTlauncher.show()
|
|
sys.exit(app.exec_())
|