From eb44817201b3311e7599980bae41d572237051f2 Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Sat, 23 Jul 2022 12:44:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5Qt=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uengine-runner-update-bug | 127 ++++++++++++++++---------------------- uengine-useadb | 35 ++++------- 2 files changed, 65 insertions(+), 97 deletions(-) diff --git a/uengine-runner-update-bug b/uengine-runner-update-bug index e4e742b..a5ac2a9 100755 --- a/uengine-runner-update-bug +++ b/uengine-runner-update-bug @@ -1,15 +1,14 @@ #!/usr/bin/env python3 import os +import sys import json import base64 import requests -import ttkthemes import traceback import webbrowser -import tkinter as tk -import tkinter.ttk as ttk -import tkinter.messagebox as messagebox import urllib.parse as parse +import PyQt5.QtGui as QtGui +import PyQt5.QtWidgets as QtWidgets # 读取文本文档 def readtxt(path: "路径")->"读取文本文档": @@ -28,17 +27,18 @@ def Update(name, stars, contact, things, version): "Version": version } try: - messagebox.showinfo(message=requests.post(parse.unquote(base64.b64decode("aHR0cCUzQS8vMTIwLjI1LjE1My4xNDQvdWVuZ2luZS1ydW5uZXIvYnVnL3VwbG9hZC5waHA=").decode("utf-8")), data=data).text) + QtWidgets.QMessageBox.information(widget, "提示", requests.post(parse.unquote(base64.b64decode("aHR0cCUzQS8vMTIwLjI1LjE1My4xNDQvdWVuZ2luZS1ydW5uZXIvYnVnL3VwbG9hZC5waHA=").decode("utf-8")), data=data).text) + print(data) except: traceback.print_exc() - messagebox.showerror(title="错误", message="服务器疑似出现错误,可以进行以下尝试:①多尝试几次;②使用其他反馈途径\n错误信息:{}".format(traceback.format_exc())) + QtWidgets.QMessageBox.critical(widget, "错误", f"服务器疑似出现错误,可以进行以下尝试:①多尝试几次;②使用其他反馈途径\n错误信息:{traceback.format_exc()}") def UpdateButtonClick(): #判断是否为空 - if nameThings.get() == "" or starValue.get() == "" or contactThings.get() == "" or updateThings.get(1.0, "end").replace(" ", "").replace("\n", "") == "": - messagebox.showerror(title="错误", message="反馈信息未填写完整!") + if nameThings.text() == "" or starMenu.currentText() == "" or contactThings.text() == "" or updateThings.toPlainText().replace(" ", "").replace("\n", "") == "": + QtWidgets.QMessageBox.critical(widget, "错误", "反馈信息未填写完整!") return - Update(name=nameThings.get(), stars=starValue.get(), contact=contactThings.get(), things=updateThings.get(1.0, "end"), version=version) + Update(name=nameThings.text(), stars=starMenu.currentText(), contact=contactThings.text(), things=updateThings.toPlainText(), version=version) def OpenGiteeIssues(): webbrowser.open_new_tab("https://gitee.com/gfdgd-xi/uengine-runner/issues") @@ -46,6 +46,9 @@ def OpenGiteeIssues(): def OpenGithubIssues(): webbrowser.open_new_tab("https://github.com/gfdgd-xi/uengine-runner/issues") +def OpenGitlinkIssues(): + webbrowser.open_new_tab("https://www.gitlink.org.cn/gfdgd_xi/uengine-runner/issues") + # 获取用户主目录 def get_home()->"获取用户主目录": return os.path.expanduser('~') @@ -53,7 +56,7 @@ def get_home()->"获取用户主目录": ########################### # 程序信息 ########################### -iconPath = "{}/runner.png".format(os.path.split(os.path.realpath(__file__))[0]) +iconPath = "{}/runner.svg".format(os.path.split(os.path.realpath(__file__))[0]) programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string information = json.loads(readtxt(programPath + "/information.json")) version = information["Version"] @@ -61,68 +64,42 @@ version = information["Version"] ########################### # 窗口创建 ########################### -# 读取主题 -try: - theme = not ("dark" in readtxt(get_home() + "/.gtkrc-2.0") and "gtk-theme-name=" in readtxt(get_home() + "/.gtkrc-2.0")) -except: - print("主题读取错误,默认使用浅色主题") - theme = True -if theme: - window = tk.Tk() - themes = ttkthemes.ThemedStyle(window) - themes.set_theme("breeze") -else: - import ttkbootstrap - style = ttkbootstrap.Style(theme="darkly") - window = style.master # 创建窗口 -win = ttk.Frame() - -starValue = tk.StringVar() -starValue.set("5分") - -name = ttk.Label(win, text="你的昵称:") -nameThings = ttk.Entry(win, width=25) - -contact = ttk.Label(win, text="联系方式(电子邮箱):") -contactThings = ttk.Entry(win, width=25) - -star = ttk.Label(win, text="评分:") -starMenu = ttk.OptionMenu(win, starValue, "5分", "5分", "4分", "3分", "2分", "1分") - -updateThingsTips = ttk.Label(win, text="反馈内容(支持 Markdown 格式):") -updateThings = tk.Text(win, width=100) - -otherUpload = ttk.Frame(win) -# 所属内容 -tips = ttk.Label(otherUpload, text="如果无法正常反馈,可以用其他方式反馈:") -giteeButton = ttk.Button(otherUpload, text="Gitee Issues", command=OpenGiteeIssues) -githubButton = ttk.Button(otherUpload, text="Github Issues", command=OpenGithubIssues) - -updateButton = ttk.Button(win, text="提交", command=UpdateButtonClick) - -# 设置窗口 -window.title("UEngine 运行器 {} 问题/建议反馈".format(version)) -window.resizable(0, 0) -window.iconphoto(False, tk.PhotoImage(file=iconPath)) - -tips.grid(row=0, column=0) -giteeButton.grid(row=0, column=1) -githubButton.grid(row=0, column=2) - -name.grid(row=0, column=0) -nameThings.grid(row=0, column=1) - -contact.grid(row=0, column=2) -contactThings.grid(row=0, column=3) - -star.grid(row=0, column=4) -starMenu.grid(row=0, column=5) - -updateThingsTips.grid(row=1, column=0, columnspan=2) -updateThings.grid(row=2, column=0, columnspan=6) - -otherUpload.grid(row=3, column=0, columnspan=4, sticky=tk.W) -updateButton.grid(row=3, column=5) - -win.pack(expand="yes", fill="both") -window.mainloop() \ No newline at end of file +app = QtWidgets.QApplication(sys.argv) +window = QtWidgets.QMainWindow() +widget = QtWidgets.QWidget() +widgetLayout = QtWidgets.QGridLayout() +nameThings = QtWidgets.QLineEdit() +contactThings = QtWidgets.QLineEdit() +starMenu = QtWidgets.QComboBox() +updateThings = QtWidgets.QTextEdit() +updateButton = QtWidgets.QPushButton("提交") +otherUpload = QtWidgets.QHBoxLayout() +giteeButton = QtWidgets.QPushButton("Gitee Issues") +githubButton = QtWidgets.QPushButton("Github Issues") +gitlinkButton = QtWidgets.QPushButton("Gitlink Issues") +otherUpload.addWidget(QtWidgets.QLabel("如果无法正常反馈,可以用其他方式反馈:")) +otherUpload.addWidget(giteeButton) +otherUpload.addWidget(githubButton) +otherUpload.addWidget(gitlinkButton) +otherUpload.addSpacerItem(QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)) +starMenu.addItems(["5分", "4分", "3分", "2分", "1分"]) +widgetLayout.addWidget(QtWidgets.QLabel("你的昵称:"), 0, 0, 1, 1) +widgetLayout.addWidget(QtWidgets.QLabel("联系方式(电子邮箱):"), 0, 2, 1, 1) +widgetLayout.addWidget(QtWidgets.QLabel("评分:"), 0, 4, 1, 1) +widgetLayout.addWidget(QtWidgets.QLabel("反馈内容(支持 Markdown 格式):"), 1, 0, 1, 2) +widgetLayout.addWidget(nameThings, 0, 1, 1, 1) +widgetLayout.addWidget(contactThings, 0, 3, 1, 1) +widgetLayout.addWidget(starMenu, 0, 5, 1, 1) +widgetLayout.addWidget(updateThings, 2, 0, 1, 6) +widgetLayout.addLayout(otherUpload, 3, 0, 1, 5) +widgetLayout.addWidget(updateButton, 3, 5, 1, 1) +giteeButton.clicked.connect(OpenGiteeIssues) +githubButton.clicked.connect(OpenGithubIssues) +gitlinkButton.clicked.connect(OpenGitlinkIssues) +updateButton.clicked.connect(UpdateButtonClick) +widget.setLayout(widgetLayout) +window.setCentralWidget(widget) +window.setWindowTitle(f"UEngine 运行器 {version} 问题/建议反馈") +window.setWindowIcon(QtGui.QIcon(iconPath)) +window.show() +sys.exit(app.exec_()) \ No newline at end of file diff --git a/uengine-useadb b/uengine-useadb index 2c36d77..85fe2be 100755 --- a/uengine-useadb +++ b/uengine-useadb @@ -1,15 +1,12 @@ #!/usr/bin/env python3 ######################################### -# 版本:1.6.2 -# 更新时间:2022年06月19日 +# 版本:1.8.0 +# 更新时间:2022年07月23日 ######################################### import os import sys import traceback -import ttkthemes -import tkinter as tk -import tkinter.ttk as ttk -import tkinter.messagebox as messagebox +import PyQt5.QtWidgets as QtWidgets ######################## # ######################## @@ -29,40 +26,34 @@ def readtxt(path: "路径")->"读取文本文档": ################### # 判断是不是 root ################### +app = QtWidgets.QApplication(sys.argv) if os.geteuid() != 0: print("不是以 root 权限运行本程序!") - root = tk.Tk() - root.overrideredirect(1) - root.withdraw() - messagebox.showerror(title="错误", message="不是以 root 权限运行本程序!") + QtWidgets.QMessageBox.critical(None, "错误", "不是以 root 权限运行本程序!") sys.exit(1) ################### # ################### -window = tk.Tk() -style = ttkthemes.ThemedStyle(window) -style.set_theme("breeze") -window.withdraw() try: - if sys.argv[1] == "1" and messagebox.askokcancel(title="提示", message="你确定要删除吗?"): + if sys.argv[1] == "1" and QtWidgets.QMessageBox.question(None, "提示", "你确定要删除吗?", QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.Cancel) == QtWidgets.QMessageBox.Ok: os.remove("/data/uengine/data/data/misc/adb/adb_keys") - messagebox.showinfo(title="提示", message="完成") + QtWidgets.QMessageBox.information(None, "提示", "完成") except: traceback.print_exc() - messagebox.showerror(title="错误", message=traceback.format_exc()) + QtWidgets.QMessageBox.critical(None, "错误", traceback.format_exc()) sys.exit(2) if sys.argv[1] == "1": sys.exit(0) -if not messagebox.askyesno(title="提示", message='''请阅读以下提示然后确定是否继续: +if QtWidgets.QMessageBox.question(None, "提示", '''请阅读以下提示然后确定是否继续: 1、安装后即可使用 adb 连接 UEngine; 2、重置 UEngine 或 adb 就需要重新设置该支持补丁; -3、需要 root 权限;'''): +3、需要 root 权限;''') == QtWidgets.QMessageBox.No: sys.exit(0) # 写入(需要 root) if not os.path.exists("/data/uengine/data/data/misc/adb"): - messagebox.showerror(title="错误", message="无法读取 UEngine 数据!") + QtWidgets.QMessageBox.critical(None, "错误", "无法读取 UEngine 数据!") sys.exit(1) try: things = readtxt(sys.argv[2]) @@ -74,8 +65,8 @@ try: if os.path.exists("/data/uengine/data/data/misc/adb/adb_keys"): old = readtxt("/data/uengine/data/data/misc/adb/adb_keys") + "\n" write_txt("/data/uengine/data/data/misc/adb/adb_keys", old + "\n".join(adbKey)) - messagebox.showinfo(title="提示", message="完成") + QtWidgets.QMessageBox.information(None, "提示", "完成") except: traceback.print_exc() - messagebox.showerror(title="错误", message=traceback.format_exc()) + QtWidgets.QMessageBox.information(None, "错误", traceback.format_exc()) sys.exit(2) \ No newline at end of file