打包器支持import
Some checks are pending
Auto Building Wine Runner(rpm) / Explore-GitHub-Actions (push) Waiting to run
Auto Building Wine Runner(deb) / Explore-GitHub-Actions (push) Waiting to run
Building Wine Runner Off-line Pages(arm64) / Explore-GitHub-Actions (push) Waiting to run
Building Wine Runner Off-line Pages(amd64) / Explore-GitHub-Actions (push) Waiting to run

This commit is contained in:
2024-07-29 09:09:15 +08:00
parent 3bcff8dd87
commit 385348a7b9
3 changed files with 105 additions and 84 deletions

View File

@@ -19,6 +19,8 @@ import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets import PyQt5.QtWidgets as QtWidgets
from DefaultSetting import * from DefaultSetting import *
import globalenv
def ShowText(text: str): def ShowText(text: str):
if text.replace(" ", "").replace("\n", "") == "": if text.replace(" ", "").replace("\n", "") == "":
return return
@@ -669,28 +671,31 @@ def BrowserExe():
exePath.setText(filePath[0]) exePath.setText(filePath[0])
chooseWine = "" chooseWine = ""
if __name__ == "__main__":
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
iconPath = "{}/deepin-wine-runner.svg".format(programPath) iconPath = "{}/deepin-wine-runner.svg".format(programPath)
information = json.loads(ReadTxt(f"{programPath}/information.json")) information = json.loads(ReadTxt(f"{programPath}/information.json"))
iconListUnBuild = json.loads(ReadTxt(f"{programPath}/IconList.json"))[0] iconListUnBuild = json.loads(ReadTxt(f"{programPath}/IconList.json"))[0]
iconList = json.loads(ReadTxt(f"{programPath}/IconList.json"))[1] iconList = json.loads(ReadTxt(f"{programPath}/IconList.json"))[1]
for i in iconListUnBuild: for i in iconListUnBuild:
iconList.append(i) iconList.append(i)
if (__name__ == "__main__"):
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
version = information["Version"] else:
window = QtWidgets.QMainWindow() app = globalenv.get_value("app")
widget = QtWidgets.QWidget() version = information["Version"]
layout = QtWidgets.QGridLayout() window = QtWidgets.QMainWindow()
exePath = QtWidgets.QLineEdit() widget = QtWidgets.QWidget()
wineChooser = QtWidgets.QComboBox() layout = QtWidgets.QGridLayout()
browserExeButton = QtWidgets.QPushButton("浏览……") exePath = QtWidgets.QLineEdit()
logText = QtWidgets.QTextBrowser() wineChooser = QtWidgets.QComboBox()
logText.setStyleSheet(""" browserExeButton = QtWidgets.QPushButton("浏览……")
logText = QtWidgets.QTextBrowser()
logText.setStyleSheet("""
background-color: black; background-color: black;
color: white; color: white;
""") """)
wineChooserList = [ wineChooserList = [
"使用 Deepin Wine8 Stable 打包应用", "使用 Deepin Wine8 Stable 打包应用",
"使用 Spark Wine9 wow 打包应用", "使用 Spark Wine9 wow 打包应用",
"使用 Spark Wine9 打包应用", "使用 Spark Wine9 打包应用",
@@ -701,50 +706,59 @@ if __name__ == "__main__":
"使用 Deepin Wine5 打包应用", "使用 Deepin Wine5 打包应用",
"使用 Deepin Wine2 打包应用", "使用 Deepin Wine2 打包应用",
"使用 Spark Wine 打包应用" "使用 Spark Wine 打包应用"
] ]
wineChooserIndex = 2 wineChooserIndex = 2
wineList = ["deepin-wine8-stable", "spark-wine9-wow", "spark-wine9", "spark-wine8", "spark-wine7-devel", "deepin-wine6-stable", "deepin-wine6-vannila", "spark-wine8-wow", "deepin-wine5-stable", "deepin-wine5", "deepin-wine", "spark-wine"] wineList = ["deepin-wine8-stable", "spark-wine9-wow", "spark-wine9", "spark-wine8", "spark-wine7-devel", "deepin-wine6-stable", "deepin-wine6-vannila", "spark-wine8-wow", "deepin-wine5-stable", "deepin-wine5", "deepin-wine", "spark-wine"]
for i in range(len(wineList)): for i in range(len(wineList)):
if not os.system(f"which '{wineList[i]}'"): if not os.system(f"which '{wineList[i]}'"):
wineChooserIndex = i wineChooserIndex = i
break break
chooseWine = wineList[wineChooserIndex] chooseWine = wineList[wineChooserIndex]
wineChooserList[wineChooserIndex] = f"{wineChooserList[wineChooserIndex]}(推荐,如无特殊需求不建议更换)" wineChooserList[wineChooserIndex] = f"{wineChooserList[wineChooserIndex]}(推荐,如无特殊需求不建议更换)"
wineChooser.addItems(wineChooserList) wineChooser.addItems(wineChooserList)
wineChooser.setCurrentIndex(wineChooserIndex) wineChooser.setCurrentIndex(wineChooserIndex)
controlLayout = QtWidgets.QHBoxLayout() controlLayout = QtWidgets.QHBoxLayout()
buildButton = QtWidgets.QPushButton("现在打包……") buildButton = QtWidgets.QPushButton("现在打包……")
installCmpleteButton = QtWidgets.QPushButton("安装程序执行完成") installCmpleteButton = QtWidgets.QPushButton("安装程序执行完成")
helpButton = QtWidgets.QPushButton("帮助") helpButton = QtWidgets.QPushButton("帮助")
installUosPackingTool = QtWidgets.QPushButton("安装维护工具箱(可以安装测试 deb") installUosPackingTool = QtWidgets.QPushButton("安装维护工具箱(可以安装测试 deb")
browserExeButton.clicked.connect(BrowserExe) browserExeButton.clicked.connect(BrowserExe)
buildButton.clicked.connect(RunBuildThread) buildButton.clicked.connect(RunBuildThread)
installCmpleteButton.clicked.connect(PressCompleteDownload) installCmpleteButton.clicked.connect(PressCompleteDownload)
helpButton.clicked.connect(ReadMe) helpButton.clicked.connect(ReadMe)
def InstallUosPackingTool(): def InstallUosPackingTool():
if os.system("which spark-store"): if os.system("which spark-store"):
QtWidgets.QMessageBox.critical(window, "提示", "未安装星火应用商店,无法继续\n星火应用商店官网https://spark-app.store/") QtWidgets.QMessageBox.critical(window, "提示", "未安装星火应用商店,无法继续\n星火应用商店官网https://spark-app.store/")
return 0 return 0
threading.Thread(target=os.system, args=["spark-store spk://store/tools/uos-packaging-tools"]).start() threading.Thread(target=os.system, args=["spark-store spk://store/tools/uos-packaging-tools"]).start()
installUosPackingTool.clicked.connect(InstallUosPackingTool) installUosPackingTool.clicked.connect(InstallUosPackingTool)
installCmpleteButton.setDisabled(True) installCmpleteButton.setDisabled(True)
controlLayout.addWidget(buildButton) controlLayout.addWidget(buildButton)
controlLayout.addWidget(installCmpleteButton) controlLayout.addWidget(installCmpleteButton)
controlLayout.addWidget(helpButton) controlLayout.addWidget(helpButton)
controlLayout.addWidget(installUosPackingTool) controlLayout.addWidget(installUosPackingTool)
layout.addWidget(QtWidgets.QLabel("选择 EXE"), 0, 0) layout.addWidget(QtWidgets.QLabel("选择 EXE"), 0, 0)
layout.addWidget(exePath, 0, 1) layout.addWidget(exePath, 0, 1)
layout.addWidget(browserExeButton, 0, 2) layout.addWidget(browserExeButton, 0, 2)
layout.addWidget(wineChooser, 1, 1) layout.addWidget(wineChooser, 1, 1)
layout.addLayout(controlLayout, 2, 1) layout.addLayout(controlLayout, 2, 1)
layout.addWidget(logText, 3, 0, 1, 3) layout.addWidget(logText, 3, 0, 1, 3)
widget.setLayout(layout) widget.setLayout(layout)
window.setCentralWidget(widget) window.setCentralWidget(widget)
window.setWindowTitle(f"Wine 运行器 {version}——简易打包器") window.setWindowTitle(f"Wine 运行器 {version}——简易打包器")
try: try:
exePath.setText(sys.argv[1]) exePath.setText(sys.argv[1])
except: except:
pass pass
if (__name__ != "__main__"):
# 设置滚动条
areaScroll = QtWidgets.QScrollArea(window)
areaScroll.setWidgetResizable(True)
areaScroll.setWidget(widget)
areaScroll.setFrameShape(QtWidgets.QFrame.NoFrame)
window.setCentralWidget(areaScroll)
if (__name__ == "__main__"):
window.resize(int(window.frameGeometry().width() * 1.2), int(window.frameGeometry().height() * 1.1)) window.resize(int(window.frameGeometry().width() * 1.2), int(window.frameGeometry().height() * 1.1))
window.show() window.show()
# 设置字体 # 设置字体

View File

@@ -27,6 +27,7 @@ import PyQt5.QtWidgets as QtWidgets
from trans import * from trans import *
from DefaultSetting import * from DefaultSetting import *
from Model import * from Model import *
import globalenv
TMPDIR = os.getenv("TMPDIR") TMPDIR = os.getenv("TMPDIR")
if (TMPDIR == None): if (TMPDIR == None):
@@ -2366,7 +2367,10 @@ tips = transla.transe("U", """提示:
# 窗口创建 # 窗口创建
############### ###############
app = QtWidgets.QApplication(sys.argv) if (__name__ == "__main__"):
app = QtWidgets.QApplication(sys.argv)
else:
app = globalenv.get_value("app")
window = QtWidgets.QMainWindow() window = QtWidgets.QMainWindow()
widget = QtWidgets.QWidget() widget = QtWidgets.QWidget()
@@ -2703,7 +2707,8 @@ SetFont(app)
window.setCentralWidget(widget) window.setCentralWidget(widget)
# 判断是否为小屏幕,是则设置滚动条并全屏 # 判断是否为小屏幕,是则设置滚动条并全屏
if (window.frameGeometry().width() > app.primaryScreen().availableGeometry().size().width() * 0.8 or if (window.frameGeometry().width() > app.primaryScreen().availableGeometry().size().width() * 0.8 or
window.frameGeometry().height() > app.primaryScreen().availableGeometry().size().height() * 0.9): window.frameGeometry().height() > app.primaryScreen().availableGeometry().size().height() * 0.9 or
__name__ != "__main__"):
# 设置滚动条 # 设置滚动条
areaScroll = QtWidgets.QScrollArea(window) areaScroll = QtWidgets.QScrollArea(window)
areaScroll.setWidgetResizable(True) areaScroll.setWidgetResizable(True)
@@ -2711,8 +2716,8 @@ if (window.frameGeometry().width() > app.primaryScreen().availableGeometry().siz
areaScroll.setFrameShape(QtWidgets.QFrame.NoFrame) areaScroll.setFrameShape(QtWidgets.QFrame.NoFrame)
window.setCentralWidget(areaScroll) window.setCentralWidget(areaScroll)
window.showMaximized() # 设置全屏 window.showMaximized() # 设置全屏
window.show()
window.show() if (__name__ == "__main__"):
sys.exit(app.exec_()) window.show()
# Flag解包只读control和解包全部读取 sys.exit(app.exec_())
# Flag解包只读control和解包全部读取

View File

@@ -5,8 +5,10 @@ app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow() window = QtWidgets.QMainWindow()
globalenv._init() globalenv._init()
globalenv.set_value("app", app) globalenv.set_value("app", app)
#import deepin_wine_packager
import mainwindow #modules = __import__("deepin-wine-packager")
window.setCentralWidget(mainwindow.window) modules = __import__("deepin-wine-easy-packager")
#import mainwindow
window.setCentralWidget(modules.window)
window.show() window.show()
app.exec_() app.exec_()