Compare commits

..

13 Commits

21 changed files with 453 additions and 156 deletions

68
.github/ISSUE_TEMPLATE/ISSCUE_BUG.md vendored Normal file
View File

@@ -0,0 +1,68 @@
---
name: 程序bug
about: 反馈程序的故障
---
需要把下面的替换成自己的信息,下面为例子
# 故障表现(最好带图、日志)
按右上角叉叉可以关闭运行器
![图片.png](https://storage.deepin.org/thread/202308132203366743_图片.png)
## 日志(终端输入 `deepin-wine-runner` 输出的内容)
```
gfdgd_xi@gfdgdxi-PC:~$ deepin-wine-runner
/usr/bin/deepin-terminal
/usr/bin/deepin-wine6-stable
/usr/bin/deepin-wine
/usr/bin/qemu-i386-static
/usr/bin/qemu-i386
/usr/bin/qemu-x86_64
['', '']
/usr/bin/qemu-i386
/usr/bin/qemu-x86_64
['', '']
{'基于 UOS box86 的 deepin-wine6-stable': "WINEPREDLL='/opt/apps/deepin-wine-runner/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 /opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ", '基于 UOS exagear 的 deepin-wine6-stable': "WINEPREDLL='/opt/apps/deepin-wine-runner/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix /home/gfdgd_xi/.deepinwine/debian-buster --utmp-paths-list /home/gfdgd_xi/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list /home/gfdgd_xi/.deepinwine/debian-buster/.exagear/vpaths-list --opaths-list /home/gfdgd_xi/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- /opt/deepin-wine6-stable/bin/wine ", '使用 Flatpak 安装的 Wine': 'flatpak run org.winehq.Wine', 'deepin-wine6 stable': 'deepin-wine6-stable', 'deepin-wine5 stable': 'deepin-wine5-stable', 'spark-wine': 'spark-wine', 'spark-wine7-devel': 'spark-wine7-devel', 'spark-wine8': 'spark-wine8', 'deepin-wine': 'deepin-wine', 'deepin-wine5': 'deepin-wine5', 'wine': 'wine', 'wine64': 'wine64', 'ukylin-wine': 'ukylin-wine', 'mono这不是 wine但可以实现初步调用运行 .net 应用)': 'mono', '基于 linglong 的 deepin-wine6-stable不推荐': "ll-cli run '' --exec '/bin/deepin-wine6-stable'", '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine-aarch64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-amd64/bin/wine-aarch64', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-i386': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-i386', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-aarch64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-aarch64', '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-x86_64': '/opt/apps/deepin-wine-runner/wine/wine-ce-8.13-riscv64/bin/wine-x86_64', '/home/gfdgd_xi/.deepinwine/wine-ce-8.13-amd64/bin/wine': '/home/gfdgd_xi/.deepinwine/wine-ce-8.13-amd64/bin/wine'}
[['cmd', 'cmd'], ['cmd', 'cmd.exe'], ['cmd', 'wineBottonPath/drive_c/windows/system32/cmd.exe'], ['Internet Explorer', 'iexplore'], ['Internet Explorer', 'iexplore.exe'], ['Internet Explorer', 'wineBottonPath/drive_c/Program Files/Internet Explorer/iexplore.exe'], ['Internet Explorer', 'wineBottonPath/drive_c/Program Files (x86)/Internet Explorer/iexplore.exe'], ['微信', 'wineBottonPath/drive_c/Program Files/Tencent/WeChat/WeChat.exe'], ['微信', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/WeChat/WeChat.exe'], ['UltraISO', 'wineBottonPath/drive_c/Program Files/UltraISO/UltraISO.exe'], ['UltraISO', 'wineBottonPath/drive_c/Program Files (x86)/UltraISO/UltraISO.exe'], ['迅雷', 'wineBottonPath/drive_c/Program Files/Thunder Network/MiniThunder/Bin/ThunderMini.exe'], ['迅雷', 'wineBottonPath/drive_c/Program Files (x86)/Thunder Network/MiniThunder/Bin/ThunderMini.exe'], ['Microsoft Office Word', 'wineBottonPath/drive_c/Program Files/Microsoft Office/Office12/WINWORD.EXE'], ['Microsoft Office Word', 'wineBottonPath/drive_c/Program Files (x86)/Microsoft Office/Office12/WINWORD.EXE'], ['腾讯会议', 'wineBottonPath/drive_c/Program Files/Tencent/WeMeet/wemeetapp.exe'], ['腾讯会议', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/WeMeet/wemeetapp.exe'], ['腾讯课堂', 'wineBottonPath/drive_c/Program Files/Tencent/EDU/bin/TXEDU.exe'], ['腾讯课堂', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/EDU/bin/TXEDU.exe'], ['QQ', 'wineBottonPath/drive_c/Program Files/Tencent/QQ/Bin/QQ.exe'], ['QQ', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/QQ/Bin/QQ.exe'], ['TIM', 'wineBottonPath/drive_c/Program Files/Tencent/TIM/Bin/TIM.exe'], ['TIM', 'wineBottonPath/drive_c/Program Files (x86)/Tencent/TIM/Bin/TIM.exe']]
lock
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
create icon [font] engine failed.[theme:bloom-dark] nonCache[theme].size[0] (No such file or directory)
create icon [floppy_unmount] engine failed.[theme:bloom-dark] nonCache[theme].size[1] (No such file or directory)
create icon [3floppy_unmount] engine failed.[theme:bloom-dark] nonCache[theme].size[2] (No such file or directory)
检测到库 riscv64
检测到库 arm64
检测到库 armhf
检测到库 i386
检测到库 s390x
检测到库 mips64el
检测到库 ppc64el
检测到库 amd64
版本号为3.4.0
普通版本
qt.qpa.xcb: QXcbConnection: XCB error: 5 (BadAtom), sequence: 390, resource id: 0, major code: 20 (GetProperty), minor code: 0
```
# 系统版本
- 系统Deepin 23
- 硬件:
![图片.png](https://storage.deepin.org/thread/202308132200482953_图片.png)
- 其他补充信息
# 之前做过什么操作
在终端里输入了内容
```bash
sudo apt upgrade
```
更新了系统
# 复现步骤
1. 打开运行器,然后点击右上角叉叉可以关闭
# 推测故障原因(可选)
Qt 默认有一套配置好的退出事件

53
DefaultSetting.py Normal file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env python3
# 读取设置单独用一个 py 文件
import os
import json
import PyQt5.QtGui as QtGui
# 获取用户主目录
def get_home():
return os.path.expanduser('~')
# 读取文本文档
def readtxt(path):
f = open(path, "r") # 设置文件对象
str = f.read() # 获取内容
f.close() # 关闭文本对象
return str # 返回结果
defultProgramList = {
"Architecture": "Auto",
"Debug": True,
"DefultWine": "deepin-wine6 stable",
"DefultBotton" : get_home() + "/.wine",
"TerminalOpen": False,
"WineOption": "",
"WineBottonDifferent": False,
"CenterWindow": False,
"Theme": "",
"MonoGeckoInstaller": False,
"AutoWine": True,
"RuntimeCache": True,
"MustRead": False,
"BuildByBottleName": False,
"AutoPath": False,
"QemuUnMountHome": False,
"Chinese": True,
"FontSize": 1
}
def SetFont(app):
defaultFont = app.font()
size = setting["FontSize"]
font = QtGui.QFont(defaultFont)
if size == 1:
app.setFont(defaultFont)
return
font.setPixelSize(int(defaultFont.pixelSize() / size))
font.setPointSize(int(defaultFont.pointSize() / size))
app.setFont(font)
try:
setting = json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineSetting.json"))
except:
setting = defultProgramList

View File

@@ -30,6 +30,7 @@ package:
cp -rv AllInstall.py deb/opt/apps/deepin-wine-runner
cp -rv ShellList deb/opt/apps/deepin-wine-runner
cp -rv QemuDownload.py deb/opt/apps/deepin-wine-runner
cp -rv DefaultSetting.py deb/opt/apps/deepin-wine-runner
cp -rv QemuRun.py deb/opt/apps/deepin-wine-runner
cp -rv kill.sh deb/opt/apps/deepin-wine-runner
cp -rv updatekiller.py deb/opt/apps/deepin-wine-runner

View File

@@ -1,6 +1,8 @@
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
<h1 align="center">Wine 运行器 3.4.0</h1>
<h1 align="center">Wine 运行器 3.4.0.1</h1>
<hr>
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/star.svg?theme=dark' alt='star'></img></a>
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/members'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/fork.svg?theme=dark' alt='fork'></img></a>
## 介绍
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
@@ -136,6 +138,10 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
![image.png](https://storage.deepin.org/thread/202207190822204627_image.png)
## 更新日志
### 3.4.0.12023年08月18日
**※1、修复部分高性能机器打包器提示“无效的压缩参数”https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SMTJ**
**※2、支持设置程序字体大小https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SAYE**
### 3.4.02023年08月11日
**※1、修复简易打包器无法打开的问题以及 Wine 识别错误的问题**
**※2、高级打包器支持多 .desktop 分别设置不同的 MimeType**

View File

@@ -7,7 +7,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -77,7 +77,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -147,7 +147,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -217,7 +217,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -287,7 +287,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -357,7 +357,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -427,7 +427,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -497,7 +497,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -567,7 +567,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -637,7 +637,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -707,7 +707,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -777,7 +777,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -847,7 +847,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -917,7 +917,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -987,7 +987,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -1057,77 +1057,7 @@
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"-nostdinc",
"-nostdinc++",
"-pipe",
"-std=gnu++11",
"-Wall",
"-Wextra",
"-D_REENTRANT",
"-fPIC",
"-fsyntax-only",
"-m64",
"--target=x86_64-linux-gnu",
"-DQ_CREATOR_RUN",
"-DQT_DEPRECATED_WARNINGS",
"-DQT_NO_DEBUG",
"-DQT_WIDGETS_LIB",
"-DQT_GUI_LIB",
"-DQT_NETWORK_LIB",
"-DQT_CORE_LIB",
"-I",
"/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source",
"-I",
"/usr/include/x86_64-linux-gnu/qt5",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtWidgets",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtGui",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtNetwork",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtCore",
"-I",
"/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++",
"-isystem",
"/usr/include/c++/11",
"-isystem",
"/usr/include/x86_64-linux-gnu/c++/11",
"-isystem",
"/usr/include/c++/11/backward",
"-isystem",
"/usr/local/include",
"-isystem",
"/usr/lib/llvm-13/lib/clang/13.0.1/include",
"-isystem",
"/usr/include/x86_64-linux-gnu",
"-isystem",
"/usr/include",
"-fmessage-length=0",
"-fdiagnostics-show-note-include-stack",
"-fretain-comments-from-system-headers",
"-fmacro-backtrace-limit=0",
"-ferror-limit=1000",
"-x",
"c++-header",
"-Wno-unknown-pragmas",
"-Wno-unknown-warning-option",
"-Wno-documentation-unknown-command",
"/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
],
"directory": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.qtc_clangd",
"file": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
},
{
"arguments": [
"clang",
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders",
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-OUNQoP/clang-uiheader-OYkbQU",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
@@ -1188,5 +1118,75 @@
],
"directory": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.qtc_clangd",
"file": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_qemusetting.h"
},
{
"arguments": [
"clang",
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders",
"-I",
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
"-I",
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
"-nostdinc",
"-nostdinc++",
"-pipe",
"-std=gnu++11",
"-Wall",
"-Wextra",
"-D_REENTRANT",
"-fPIC",
"-fsyntax-only",
"-m64",
"--target=x86_64-linux-gnu",
"-DQ_CREATOR_RUN",
"-DQT_DEPRECATED_WARNINGS",
"-DQT_NO_DEBUG",
"-DQT_WIDGETS_LIB",
"-DQT_GUI_LIB",
"-DQT_NETWORK_LIB",
"-DQT_CORE_LIB",
"-I",
"/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source",
"-I",
"/usr/include/x86_64-linux-gnu/qt5",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtWidgets",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtGui",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtNetwork",
"-I",
"/usr/include/x86_64-linux-gnu/qt5/QtCore",
"-I",
"/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++",
"-isystem",
"/usr/include/c++/11",
"-isystem",
"/usr/include/x86_64-linux-gnu/c++/11",
"-isystem",
"/usr/include/c++/11/backward",
"-isystem",
"/usr/local/include",
"-isystem",
"/usr/lib/llvm-13/lib/clang/13.0.1/include",
"-isystem",
"/usr/include/x86_64-linux-gnu",
"-isystem",
"/usr/include",
"-fmessage-length=0",
"-fdiagnostics-show-note-include-stack",
"-fretain-comments-from-system-headers",
"-fmacro-backtrace-limit=0",
"-ferror-limit=1000",
"-x",
"c++-header",
"-Wno-unknown-pragmas",
"-Wno-unknown-warning-option",
"-Wno-documentation-unknown-command",
"/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
],
"directory": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.qtc_clangd",
"file": "/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/ui_mainwindow.h"
}
]

View File

@@ -106,34 +106,65 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
//vbox *box = new vbox("Window");
//vbox vm("Windows");
qemu vm("Windows");
bool setISOAlready = 0;
switch (id) {
case 0:
vm.Create("Windows7");
vm.SetDisplayMemory(32);
break;
case 1:
vm.Create("Windows7_64");
vm.SetDisplayMemory(32);
break;
case 2:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
break;
case 3:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.EnabledUEFI(true);
break;
case 4:
vm.Create("Windows11_64");
vm.SetDisplayMemory(128);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
case 5:
vm.Create("WindowsXP_32");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 6:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 7:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
}
vm.CreateDiskControl();
//vm.CreateDiskControl("storage_controller_2");
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072);
vm.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
case 0:
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
break;
case 1:
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
break;
if(!setISOAlready){
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
case 0:
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
break;
case 1:
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
break;
}
}
else{
vm.AutoInstall(isoPath);
}
/*vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
@@ -158,7 +189,6 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
//memoryRate(memory, memoryAll, swap, swapAll);
vm.SetMemory(memoryAll / 3 / 1024);
vm.SetDisplayMemory(32);
vm.SetNetBridge(net);
vm.EnabledAudio();
vm.EnabledClipboardMode();
@@ -176,36 +206,67 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
//vbox *box = new vbox("Window");
vbox vm("Windows");
//qemu vm("Windows");
bool setISOAlready = 1;
switch (id) {
case 0:
vm.Create("Windows7");
vm.SetDisplayMemory(32);
break;
case 1:
vm.Create("Windows7_64");
vm.SetDisplayMemory(32);
break;
case 2:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
break;
case 3:
vm.Create("WindowsNT_64");
vm.EnabledUEFI(true);
vm.SetDisplayMemory(32);
break;
}
case 4:
vm.Create("Windows11_64");
vm.SetDisplayMemory(128);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
case 5:
vm.Create("WindowsXP_32");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 6:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 7:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
}
QDir dir("/home/gfdgd_xi/Qemu/Windows/");
dir.mkpath("/home/gfdgd_xi/Qemu/Windows/");
vm.CreateDiskControl();
//vm.CreateDiskControl("storage_controller_2");
vm.CreateDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi", 131072);
vm.MountDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi");
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
case 0:
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
break;
case 1:
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
break;
if(!setISOAlready){
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
case 0:
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
break;
case 1:
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
break;
}
}
else{
vm.AutoInstall(isoPath);
}
// 判断 VirtualBox Guest ISO 是否存在
@@ -213,8 +274,8 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
if(QFile::exists("/usr/share/virtualbox/VBoxGuestAdditions.iso")){
vm.MountISO("/usr/share/virtualbox/VBoxGuestAdditions.iso", "storage_controller_1", 1, 1);
}
vm.SetCPU(get_nprocs(), GetCPUSocket(), GetCPUCore());
// VirtualBox 的 CPU 数量设置方法和 Qemu 不一样
vm.SetCPU(GetCPUCore(), GetCPUSocket(), GetCPUCore());
long memory = 0;
long memoryAll = 0;
long swap = 0;
@@ -222,7 +283,6 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
//memoryRate(memory, memoryAll, swap, swapAll);
vm.SetMemory(memoryAll / 3 / 1024);
vm.SetDisplayMemory(32);
vm.SetNetBridge(net);
vm.EnabledAudio();
vm.EnabledClipboardMode();

View File

@@ -196,6 +196,15 @@ void MainWindow::on_install_clicked()
file.close();
}
break;
case 4:
case 5:
case 6:
case 7:
if(ui->vmChooser->currentIndex() == 0){
QMessageBox::warning(this, "提示", "Qemu 不支持该选项!");
return;
}
break;
default:
if(ui->vmChooser->currentIndex() == 0 && QFile::exists(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-EFI")){
QFile::remove(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-EFI");

View File

@@ -94,6 +94,26 @@
<string>其他 Windows 系统不支持自动安装UEFI 启动,推荐 Windows 8 及以上)</string>
</property>
</item>
<item>
<property name="text">
<string>安装 WIndows 11不支持自动安装</string>
</property>
</item>
<item>
<property name="text">
<string>安装其他 Windows XP支持自动安装只支持 VirtualBox</string>
</property>
</item>
<item>
<property name="text">
<string>安装其他 Windows (支持自动安装,传统启动,只支持 VirtualBox</string>
</property>
</item>
<item>
<property name="text">
<string>安装其他 Windows支持自动安装UEFI 启动,只支持 VirtualBox</string>
</property>
</item>
</widget>
</item>
</layout>

View File

@@ -133,3 +133,6 @@ int qemu::EnabledUEFI(bool status){
}
return 1;
}
int qemu::AutoInstall(QString iso){
return 0;
}

View File

@@ -39,6 +39,7 @@ public:
int SetKeyboardPS2();
int OpenUSB();
int EnabledUEFI(bool status);
int AutoInstall(QString iso);
private:
QString commandOption = "";

View File

@@ -108,3 +108,6 @@ int vbox::EnabledUEFI(bool status){
}
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --firmware=bios").toLatin1());
}
int vbox::AutoInstall(QString iso){
return system(("vboxmanage unattended install '" + name + "' '--iso=" + iso + "'").toLatin1());
}

View File

@@ -39,7 +39,7 @@ public:
int SetKeyboardPS2();
int OpenUSB();
int EnabledUEFI(bool status);
int AutoInstall(QString iso);
private:
};

View File

@@ -1,5 +1,5 @@
Package: spark-deepin-wine-runner
Version: 3.4.0
Version: 3.4.0.1
Maintainer: gfdgd xi <3025613752@qq.com>
Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner
Architecture: all
@@ -9,11 +9,11 @@ Check: binaries
Type: binary, udeb
Priority: optional
Depends: python3, python3-pil, libc6, python3-pil.imagetk, python3-pyquery, aria2, curl, unrar | unrar-free , unzip, python3-requests, python3-pyqt5, python3-psutil, deepin-terminal | mate-terminal | gnome-terminal | xfce4-terminal, python3-dbus, python3-pip, p7zip-full, sudo, python3-pyperclip, bubblewrap, zenity
Recommends: winbind, wimtools, python3-pyqt5.qtwebengine, binfmt-support, libc6:i386, libc6:armhf
Recommends: winbind, wimtools, python3-pyqt5.qtwebengine, binfmt-support, libc6:i386, libc6:armhf, libwine
Section: utils
Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
Provides: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer, spark-deepin-wine-runner-52
Installed-Size: 76512
Installed-Size: 83156
Description: Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具可以做到只需下载系统镜像并点击安装即可无需考虑虚拟机的安装、创建、分区等操作也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低)。

View File

@@ -11,6 +11,7 @@ import subprocess
import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
from DefaultSetting import *
def ShowText(text: str):
if text.replace(" ", "").replace("\n", "") == "":
@@ -572,7 +573,7 @@ class RunThread(QtCore.QThread):
self.RunCommand(f"chmod -Rv 755 '{debBuildPath}/opt/apps/{debPackageName}/entries/applications/'*.desktop")
########### 打包 deb
print(debPackageVersion)
self.RunCommand(f"dpkg-deb -Z xz -z $(($(grep -c processor < /proc/cpuinfo)*2)) -b '{debBuildPath}' '{desktopPath}/{debPackageName}_{debPackageVersion}_all.deb'")
self.RunCommand(f"dpkg-deb -Z xz -b '{debBuildPath}' '{desktopPath}/{debPackageName}_{debPackageVersion}_all.deb'")
self.info.emit("打包完成!")
self.disbledAll.emit(False)
########### 移除临时文件
@@ -682,4 +683,6 @@ if __name__ == "__main__":
pass
window.resize(int(window.frameGeometry().width() * 1.2), int(window.frameGeometry().height() * 1.1))
window.show()
# 设置字体
SetFont(app)
sys.exit(app.exec_())

View File

@@ -25,6 +25,7 @@ import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
from trans import *
from DefaultSetting import *
#################
# 程序所需事件
@@ -1589,7 +1590,7 @@ StartupNotify=false
################
if not self.build:
self.label.emit("正在构建 deb 包……")
self.run_command("bash -c 'dpkg-deb -Z xz -z $(($(grep -c processor < /proc/cpuinfo)*2)) -b \"{}\" \"{}\"'".format(debPackagePath, e12_text.text()))
self.run_command("bash -c 'dpkg-deb -Z xz -b \"{}\" \"{}\"'".format(debPackagePath, e12_text.text()))
################
# 删除临时文件
################
@@ -2160,16 +2161,6 @@ def LockBottleName():
def get_now_lang()->"获取当前语言":
return os.getenv('LANG')
def SetFont(size):
font = QtGui.QFont(defaultFont)
if size == 1:
window.setFont(defaultFont)
return
font.setPixelSize(int(defaultFont.pixelSize() / size))
font.setPointSize(int(defaultFont.pointSize() / size))
window.setFont(font)
bottleNameLock = False
###############
# 程序信息
@@ -2429,16 +2420,14 @@ videoHelpAction.triggered.connect(lambda: webbrowser.open_new_tab("https://space
videoHelp.addAction(videoHelpAction)
openFile.triggered.connect(OpenConfigFile)
saveFile.triggered.connect(SaveConfigList)
setMiniFont.triggered.connect(lambda: SetFont(1.2))
setDefaultFont.triggered.connect(lambda: SetFont(1))
hideShowText.triggered.connect(lambda: textbox1.setHidden(hideShowText.isChecked()))
exit.triggered.connect(window.close)
tip.triggered.connect(helps)
programmenu.addAction(openFile)
programmenu.addAction(saveFile)
programmenu.addSeparator()
programmenu.addAction(setMiniFont)
programmenu.addAction(setDefaultFont)
#programmenu.addSeparator()
#programmenu.addAction(setMiniFont)
#programmenu.addAction(setDefaultFont)
programmenu.addAction(hideShowText)
programmenu.addSeparator()
programmenu.addAction(exit)
@@ -2535,6 +2524,8 @@ allInfoList = {
"DebArch": ["Co", debArch],
"SparkHelperConfigPath": ["Str-SparkHelperConfigPath", helperConfigPath]
}
# 设置字体
SetFont(app)
#window.setWindowFlag(QtGui.Qt)
window.show()
sys.exit(app.exec_())

View File

@@ -9,6 +9,7 @@ import webbrowser
import urllib.parse as parse
import PyQt5.QtGui as QtGui
import PyQt5.QtWidgets as QtWidgets
from DefaultSetting import *
# 读取文本文档
def readtxt(path: "路径")->"读取文本文档":
@@ -90,9 +91,18 @@ widgetLayout.addWidget(updateButton, 3, 5, 1, 1)
giteeButton.clicked.connect(OpenGiteeIssues)
githubButton.clicked.connect(OpenGithubIssues)
updateButton.clicked.connect(UpdateButtonClick)
# 禁用 bug 提交,引导到 Gitee 提交 bug
nameThings.setDisabled(True)
contactThings.setDisabled(True)
starMenu.setDisabled(True)
updateThings.setDisabled(True)
updateButton.setDisabled(True)
updateThings.setText("请移步到 Gitee 或 Github 提交 Bug推荐使用 Gitee")
widget.setLayout(widgetLayout)
window.setCentralWidget(widget)
window.setWindowTitle(f"Wine 运行器 {version} 问题/建议反馈")
window.setWindowIcon(QtGui.QIcon(iconPath))
window.show()
# 设置字体
SetFont(app)
sys.exit(app.exec_())

View File

@@ -1,5 +1,5 @@
{
"Version": "3.4.0",
"Version": "3.4.0.1",
"Time": "未知",
"Thank": [
"感谢 RacoonGX 的付出与贡献",

View File

@@ -37,6 +37,7 @@ except:
bad = True
from trans import *
from Model import *
from DefaultSetting import *
def PythonLower():
app = QtWidgets.QApplication(sys.argv)
@@ -606,6 +607,14 @@ def CleanProgramCache():
traceback.print_exc()
QtWidgets.QMessageBox.critical(widget, "错误", traceback.format_exc())
def SetFont(size):
font = QtGui.QFont(defaultFont)
if size == 1:
app.setFont(defaultFont)
return
font.setPixelSize(int(defaultFont.pixelSize() / size))
font.setPointSize(int(defaultFont.pointSize() / size))
app.setFont(font)
# 重启本应用程序
def ReStartProgram():
@@ -1738,6 +1747,7 @@ class ProgramSetting():
autoPath = None
qemuUnmountHome = None
chineseLanguage = None
fontSize = None
def ShowWindow():
ProgramSetting.message = QtWidgets.QMainWindow()
widget = QtWidgets.QWidget()
@@ -1756,6 +1766,7 @@ class ProgramSetting():
widgetLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "自动根据EXE名称生成路径")), 11, 0, 1, 1)
widgetLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "Qemu + Chroot 挂载用户目录:")), 12, 0, 1, 1)
widgetLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "程序翻译:")), 13, 0, 1, 1)
widgetLayout.addWidget(QtWidgets.QLabel(transla.transe("U", "字体缩小比例(数值越大字体越小,默认为 1")), 14, 0, 1, 1)
ProgramSetting.wineBottonA = QtWidgets.QComboBox()
ProgramSetting.wineDebug = QtWidgets.QCheckBox(transla.transe("U", "开启 DEBUG 输出"))
ProgramSetting.defultWine = QtWidgets.QComboBox()
@@ -1778,6 +1789,7 @@ class ProgramSetting():
ProgramSetting.autoPath = QtWidgets.QCheckBox(transla.transe("U", "自动根据文件名生成容器路径开启后必须通过修改默认wine容器路径才可指定其它路径重启程序后生效"))
ProgramSetting.qemuUnmountHome = QtWidgets.QCheckBox(transla.transe("U", "使用 Qemu + Chroot 时不挂载用户目录并与系统隔离(修改后重启操作系统生效)"))
ProgramSetting.chineseLanguage = QtWidgets.QCheckBox(transla.transe("U", "禁用程序界面翻译"))
ProgramSetting.fontSize = QtWidgets.QDoubleSpinBox()
ProgramSetting.wineBottonA.addItems(["Auto", "win32", "win64"])
ProgramSetting.wineBottonA.setCurrentText(setting["Architecture"])
ProgramSetting.wineDebug.setChecked(setting["Debug"])
@@ -1793,6 +1805,7 @@ class ProgramSetting():
ProgramSetting.autoPath.setChecked(setting["AutoPath"])
ProgramSetting.qemuUnmountHome.setChecked(setting["QemuUnMountHome"])
ProgramSetting.chineseLanguage.setChecked(setting["Chinese"])
ProgramSetting.fontSize.setValue(setting["FontSize"])
# QemuUnMountHome
widgetLayout.addWidget(ProgramSetting.wineBottonA, 0, 1, 1, 1)
widgetLayout.addWidget(ProgramSetting.wineDebug, 1, 1, 1, 1)
@@ -1810,7 +1823,8 @@ class ProgramSetting():
widgetLayout.addWidget(ProgramSetting.autoPath, 11, 1, 1, 2)
widgetLayout.addWidget(ProgramSetting.qemuUnmountHome, 12, 1, 1, 2)
widgetLayout.addWidget(ProgramSetting.chineseLanguage, 13, 1, 1, 2)
widgetLayout.addWidget(save, 14, 2, 1, 1)
widgetLayout.addWidget(ProgramSetting.fontSize, 14, 1, 1, 2)
widgetLayout.addWidget(save, 15, 2, 1, 1)
widget.setLayout(widgetLayout)
ProgramSetting.message.setCentralWidget(widget)
ProgramSetting.message.setWindowIcon(QtGui.QIcon(iconPath))
@@ -1842,6 +1856,7 @@ class ProgramSetting():
setting["AutoPath"] = ProgramSetting.autoPath.isChecked()
setting["QemuUnMountHome"] = ProgramSetting.qemuUnmountHome.isChecked()
setting["Chinese"] = ProgramSetting.chineseLanguage.isChecked()
setting["FontSize"] = ProgramSetting.fontSize.value()
try:
write_txt(get_home() + "/.config/deepin-wine-runner/WineSetting.json", json.dumps(setting))
except:
@@ -2221,25 +2236,7 @@ def TransLog():
###########################
# 加载配置
###########################
defultProgramList = {
"Architecture": "Auto",
"Debug": True,
"DefultWine": "deepin-wine6 stable",
"DefultBotton" : get_home() + "/.wine",
"TerminalOpen": False,
"WineOption": "",
"WineBottonDifferent": False,
"CenterWindow": False,
"Theme": "",
"MonoGeckoInstaller": False,
"AutoWine": True,
"RuntimeCache": True,
"MustRead": False,
"BuildByBottleName": False,
"AutoPath": False,
"QemuUnMountHome": False,
"Chinese": True
}
if not os.path.exists(get_home() + "/.config/"): # 如果没有配置文件夹
os.mkdir(get_home() + "/.config/") # 创建配置文件夹
if not os.path.exists(get_home() + "/.config/deepin-wine-runner"): # 如果没有配置文件夹
@@ -2542,7 +2539,12 @@ exe路径\' 参数 \'
5、wine 容器如果没有指定,则会默认为 ~/.wine
6、如果可执行文件比较大的话会出现点击“获取该程序运行情况”出现假死的情况因为正在后台读取 SHA1只需要等一下即可读取速度依照您电脑处理速度、读写速度、可执行文件大小等有关
7、如果非 X86 的用户的 UOS 专业版用户想要使用的话,只需要在应用商店安装一个 Wine 版本微信即可在本程序选择正确的 Wine 运行程序;''')
updateThingsString = transla.transe("U", '''※1、修复简易打包器无法打开的问题以及 Wine 识别错误的问题
updateThingsString = transla.transe("U", '''<b>3.4.0.1 更新内容:</b>
※1、修复部分高性能机器打包器提示“无效的压缩参数”https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SMTJ
※2、支持设置程序字体大小https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SAYE
<b>3.4.0 更新内容:</b>
※1、修复简易打包器无法打开的问题以及 Wine 识别错误的问题
※2、高级打包器支持多 .desktop 分别设置不同的 MimeType
※3、修复运行器在 Ubuntu 23 的安装问题
※4、高级打包器支持导出/导入填写信息
@@ -2563,7 +2565,7 @@ updateThingsString = transla.transe("U", '''※1、修复简易打包器无法
19、修复安装 Box64 时源里没有 libc6:armhf 导致无法安装的问题''')
for i in information["Thank"]:
thankText += f"{i}\n"
updateTime = "2023年08月11"
updateTime = "2023年08月18"
aboutProgram = transla.transe("U", """<p>Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。</p>
<p>它同时还内置了基于VirtualBox/Qemu制作的、专供小白使用的Windows虚拟机安装工具可以做到只需下载系统镜像并点击安装即可无需考虑虚拟机的安装、创建、分区等操作。</p>
<pre>
@@ -2639,6 +2641,7 @@ except:
# Qt 窗口
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow()
defaultFont = app.font()
window.setWindowTitle(title)
widget = QtWidgets.QWidget()
window.setCentralWidget(widget)
@@ -2808,6 +2811,9 @@ installBox86 = QtWidgets.QAction(QtGui.QIcon.fromTheme("box"), transla.transe("U
addWineDebMirrorForDeepin20 = QtWidgets.QAction(QtGui.QIcon(f"{programPath}/Icon/Function/wine.png"), transla.transe("U", "添加 Wine 运行器源以安装较新版本的 WineHQ支持 Deepin20/Debian10"))
p2 = QtWidgets.QAction(QtGui.QIcon.fromTheme("settings"), transla.transe("U", "设置程序(&S)"))
enabledAll = QtWidgets.QAction(transla.transe("U", "强制启用所有被禁用的组件(不推荐)"))
setMiniFont = QtWidgets.QAction(transla.transe("U", "临时设置小字体"))
setTinyFont = QtWidgets.QAction(transla.transe("U", "临时设置很小的字体"))
setDefaultFont = QtWidgets.QAction(transla.transe("U", "临时设置默认字体"))
p3 = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(47), transla.transe("U", "清空软件历史记录(&C)"))
cleanCache = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(47), transla.transe("U", "清空软件缓存"))
cleanProgramUnuse = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(47), transla.transe("U", "删除程序组件"))
@@ -2822,6 +2828,10 @@ programmenu.addAction(installMoreWine)
programmenu.addAction(downloadChrootBottle)
programmenu.addAction(installBox86CN)
programmenu.addAction(installBox86)
#programmenu.addSeparator()
#programmenu.addAction(setMiniFont)
#programmenu.addAction(setTinyFont)
#programmenu.addAction(setDefaultFont)
programmenu.addSeparator()
programmenu.addAction(p2)
programmenu.addAction(enabledAll)
@@ -2831,6 +2841,9 @@ programmenu.addAction(cleanCache)
programmenu.addAction(cleanProgramUnuse)
programmenu.addSeparator()
programmenu.addAction(p4)
setDefaultFont.triggered.connect(lambda: SetFont(1))
setMiniFont.triggered.connect(lambda: SetFont(1.2))
setTinyFont.triggered.connect(lambda: SetFont(1.6))
p1.triggered.connect(InstallWine)
installWineOnDeepin23.triggered.connect(InstallWineOnDeepin23)
installWineOnDeepin23Alpha.triggered.connect(InstallWineOnDeepin23Alpha)
@@ -3327,7 +3340,7 @@ if o1.currentText() == "":
wine["没有识别到任何Wine请在菜单栏“程序”安装Wine或安装任意Wine应用"] = "没有识别到任何Wine请在菜单栏“程序”安装Wine或安装任意Wine应用"
canUseWine.append("没有识别到任何Wine请在菜单栏“程序”安装Wine或安装任意Wine应用")
o1.addItem("没有识别到任何Wine请在菜单栏“程序”安装Wine或安装任意Wine应用")
SetFont(setting["FontSize"])
# Mini 模式
# MiniMode(True)
sys.exit(app.exec_())

View File

@@ -0,0 +1,53 @@
#!/usr/bin/env python3
# 读取设置单独用一个 py 文件
import os
import json
import PyQt5.QtGui as QtGui
# 获取用户主目录
def get_home():
return os.path.expanduser('~')
# 读取文本文档
def readtxt(path):
f = open(path, "r") # 设置文件对象
str = f.read() # 获取内容
f.close() # 关闭文本对象
return str # 返回结果
defultProgramList = {
"Architecture": "Auto",
"Debug": True,
"DefultWine": "deepin-wine6 stable",
"DefultBotton" : get_home() + "/.wine",
"TerminalOpen": False,
"WineOption": "",
"WineBottonDifferent": False,
"CenterWindow": False,
"Theme": "",
"MonoGeckoInstaller": False,
"AutoWine": True,
"RuntimeCache": True,
"MustRead": False,
"BuildByBottleName": False,
"AutoPath": False,
"QemuUnMountHome": False,
"Chinese": True,
"FontSize": 1
}
def SetFont(app):
defaultFont = app.font()
size = setting["FontSize"]
font = QtGui.QFont(defaultFont)
if size == 1:
app.setFont(defaultFont)
return
font.setPixelSize(int(defaultFont.pixelSize() / size))
font.setPointSize(int(defaultFont.pointSize() / size))
app.setFont(font)
try:
setting = json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineSetting.json"))
except:
setting = defultProgramList

View File

@@ -1,5 +1,5 @@
{
"Version": "3.4.0",
"Version": "3.4.0.1",
"Time": "未知",
"Thank": [
"感谢 RacoonGX 的付出与贡献",

View File

@@ -20,6 +20,7 @@ import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore
import PyQt5.QtWidgets as QtWidgets
from trans import *
from DefaultSetting import *
###################
# 程序所需事件
@@ -286,4 +287,6 @@ windowFrameInputValueList = [
packageName,
versionName
]
# 设置字体
SetFont(app)
sys.exit(app.exec_())