mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-12-15 11:32:03 +08:00
Compare commits
94 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e12ca11b08 | |||
| 506c33085f | |||
| f7a683ebf0 | |||
| 6d6aa30557 | |||
| c0aaf54ea4 | |||
| 4a47d95cd6 | |||
| 6be5b433ca | |||
| 08e7d2997d | |||
| a991d7de04 | |||
| d0dc90b95d | |||
| 10b2d8c72b | |||
| 5d819b3c8e | |||
| c7166d9330 | |||
| 053f32e5f2 | |||
| 07db3bf724 | |||
| 949fd1a07f | |||
| 1f5cc8f6c6 | |||
| 4fc20d94aa | |||
| eb049f8560 | |||
| 0173dae3e2 | |||
| e60b7fbbd0 | |||
| bdcae751c7 | |||
| c7eb70780e | |||
| b30be9ff48 | |||
| 6ee9e2a85f | |||
| 02c882c33c | |||
| e811970e08 | |||
| 7436ae72a5 | |||
| f1498a376b | |||
| 516a854f84 | |||
| d019d0d223 | |||
| be57235f02 | |||
| fd9d08b328 | |||
| a8c5acfae2 | |||
| 81ac91b180 | |||
| e477b94cda | |||
| 57db5a2630 | |||
| 4812a9a872 | |||
| ff15b60e4c | |||
| 9b82a3818b | |||
| 275379e4ba | |||
| 9e7ad17ea2 | |||
| 03942892fd | |||
| 370bde5e63 | |||
| c6e722de60 | |||
| de76733f3f | |||
| 37ad313a66 | |||
| d62ec78926 | |||
| 7d1d121c01 | |||
| f20565af53 | |||
| 8b0d0f1018 | |||
| e7cbbc62b9 | |||
| 844f709480 | |||
| 7571a6aafc | |||
| 47bdde1eb3 | |||
| f5b2a3fd93 | |||
| bc0c9039fd | |||
| 3f6c4a47ff | |||
| bab6115348 | |||
| 5f8387e14e | |||
| 1a786145fb | |||
| 0c2f37c187 | |||
| 134fff9f17 | |||
| 4853cafb67 | |||
| 0300f8e599 | |||
| 97b761067b | |||
| d93e7475ff | |||
| b031667887 | |||
| 3fde8e01bc | |||
| 09a95ebac4 | |||
| 2dc251fcb5 | |||
| b873d3e8ab | |||
| 61ea114669 | |||
| 96f02440ca | |||
| 6a2bb2e9ca | |||
| e617c24bd1 | |||
| 858617a3ae | |||
| 30e4c9d8bb | |||
| 361f3cf859 | |||
| 368a9d218a | |||
| dc7cb37d7f | |||
| 036639d830 | |||
| 07f56b820d | |||
| 0bef686aa6 | |||
| 982521b0c3 | |||
| 87a54b8d72 | |||
| ac12c24afd | |||
| 0f96e1d91a | |||
| 6689a5edb1 | |||
| b4ef46ee38 | |||
| a83e0bb2b6 | |||
| 9fdc39446e | |||
| 9892ff71a2 | |||
| 2bfa809caf |
69
.github/ISSUE_TEMPLATE.md
vendored
Normal file
69
.github/ISSUE_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
name: 程序bug
|
||||
about: 反馈程序的故障
|
||||
---
|
||||
需要把下面的替换成自己的信息,下面为例子
|
||||
|
||||
# 故障表现(最好带图、日志)
|
||||
按右上角叉叉可以关闭运行器
|
||||

|
||||
## 日志(终端输入 `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
|
||||
- 硬件:
|
||||

|
||||
- 其他补充信息
|
||||
|
||||
# 之前做过什么操作
|
||||
在终端里输入了内容
|
||||
```bash
|
||||
sudo apt upgrade
|
||||
```
|
||||
更新了系统
|
||||
|
||||
# 复现步骤
|
||||
1. 打开运行器,然后点击右上角叉叉可以关闭
|
||||
|
||||
# 推测故障原因(可选)
|
||||
Qt 默认有一套配置好的退出事件
|
||||
|
||||
# 联系方式(可选)
|
||||
7
.github/workflows/auto-building.yml
vendored
7
.github/workflows/auto-building.yml
vendored
@@ -20,11 +20,16 @@ jobs:
|
||||
cd deep-wine-runner
|
||||
make build
|
||||
mv spark-deepin-wine-runner.deb ~
|
||||
mv spark-deepin-wine-runner-ace.deb ~
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner.deb
|
||||
path: /home/runner/spark-deepin-wine-runner.deb
|
||||
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner-ace.deb
|
||||
path: /home/runner/spark-deepin-wine-runner-ace.deb
|
||||
|
||||
|
||||
78
.github/workflows/building-off-line-package.yml
vendored
Normal file
78
.github/workflows/building-off-line-package.yml
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
name: Building Wine Runner Off-line Pages(amd64)
|
||||
run-name: ${{ github.actor }} Building Wine Runner Off-line Pages(amd64) 🚀
|
||||
on:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
Explore-GitHub-Actions:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Building DEB
|
||||
env:
|
||||
GUSER: ${{ secrets.GUSER }}
|
||||
PASSWORD: ${{ secrets.PASSWORD }}
|
||||
UPLOADURL: ${{ secrets.UPLOADURL }}
|
||||
run: |
|
||||
# 获取所需数据
|
||||
cpu=$(cat /proc/cpuinfo | grep processor | wc -l)
|
||||
# 配置环境
|
||||
sudo apt update
|
||||
sudo apt install python3-requests debootstrap xz-utils -y
|
||||
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools psmisc -y
|
||||
cd ~
|
||||
mkdir package
|
||||
# 部署 chroot 环境
|
||||
sudo debootstrap bookworm debian
|
||||
wget https://github.com/gfdgd-xi/deep-wine-runner/raw/main/pardus-chroot
|
||||
sudo cp pardus-chroot /usr/bin
|
||||
sudo chmod 777 /usr/bin/pardus-chroot
|
||||
sudo pardus-chroot debian
|
||||
### 配置容器
|
||||
## 加入 wine 源
|
||||
sudo chroot debian dpkg --add-architecture i386
|
||||
sudo chroot debian apt update
|
||||
sudo chroot debian apt install wget -y
|
||||
sudo chroot debian wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
|
||||
sudo chroot debian wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources
|
||||
sudo chroot debian apt update
|
||||
## 获取 Wine 运行器安装包
|
||||
git clone https://github.com/gfdgd-xi/deep-wine-runner --depth=1
|
||||
cd deep-wine-runner
|
||||
make build
|
||||
cd ..
|
||||
url=`python3 deep-wine-runner/off-line-shell/GetNewestDebUrl.py`
|
||||
#wget $url
|
||||
mv deep-wine-runner/spark-deepin-wine-runner.deb debian/tmp/wine-runner.deb
|
||||
## 安装
|
||||
sudo chroot debian apt install locales /tmp/wine-runner.deb winehq-devel xfce4-terminal -y
|
||||
# 构建软件包
|
||||
mkdir package/opt -p
|
||||
mkdir package/runner -p
|
||||
sudo cp debian/opt/wine-devel package/opt -rv
|
||||
sudo cp debian/usr/bin package -rv
|
||||
sudo cp debian/usr/lib package -rv
|
||||
sudo cp debian/usr/lib32 package -rv
|
||||
sudo cp debian/usr/lib64 package -rv
|
||||
sudo cp debian/opt/apps/deepin-wine-runner/* package/runner -rv
|
||||
cp deep-wine-runner/off-line-shell/run.sh package -rv
|
||||
cp deep-wine-runner/off-line-shell/bwrap_amd64 package/bwrap -rv
|
||||
sudo chmod 777 -Rv package ; true
|
||||
cd package
|
||||
# 添加 Wine 运行器离线模式标识
|
||||
touch runner/off-line.lock
|
||||
tar -cvf ../spark-deepin-wine-runner-off-line.tar *
|
||||
cd ..
|
||||
xz -T $cpu spark-deepin-wine-runner-off-line.tar
|
||||
cp deep-wine-runner/off-line-shell/compression-packager.sh spark-deepin-wine-runner-off-line.sh
|
||||
cat spark-deepin-wine-runner-off-line.tar.xz >> spark-deepin-wine-runner-off-line.sh
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner-off-line.tar.xz
|
||||
path: /home/runner/spark-deepin-wine-runner-off-line.tar.xz
|
||||
- name: upload result
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: spark-deepin-wine-runner-off-line.sh
|
||||
path: /home/runner/spark-deepin-wine-runner-off-line.sh
|
||||
|
||||
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.user*
|
||||
@@ -81,6 +81,11 @@ if os.system("which deepin-wine6-stable > /dev/null"):
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine6-stable -y")
|
||||
if os.system("which deepin-wine8-stable > /dev/null"):
|
||||
print("请问是否要安装 deepin-wine8-stable?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
if not choose == "N":
|
||||
os.system("sudo apt install deepin-wine6-stable -y")
|
||||
if os.system("which spark-wine7-devel > /dev/null"):
|
||||
print("请问是否要安装 spark-wine7-devel(需要安装最新版星火应用商店)?[Y/N]", end=' ')
|
||||
choose = input().upper()
|
||||
|
||||
@@ -1,8 +1,18 @@
|
||||
#!/usr/bin/env python3
|
||||
# 读取设置单独用一个 py 文件
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import base64
|
||||
import shutil
|
||||
import getpass
|
||||
import datetime
|
||||
import traceback
|
||||
import subprocess
|
||||
import configparser
|
||||
import PyQt5.QtGui as QtGui
|
||||
import PyQt5.QtCore as QtCore
|
||||
import PyQt5.QtWidgets as QtWidgets
|
||||
|
||||
# 获取用户主目录
|
||||
def get_home():
|
||||
@@ -18,7 +28,7 @@ def readtxt(path):
|
||||
defultProgramList = {
|
||||
"Architecture": "Auto",
|
||||
"Debug": True,
|
||||
"DefultWine": "deepin-wine6 stable",
|
||||
"DefultWine": "deepin-wine8-stable",
|
||||
"DefultBotton" : get_home() + "/.wine",
|
||||
"TerminalOpen": False,
|
||||
"WineOption": "",
|
||||
@@ -36,6 +46,14 @@ defultProgramList = {
|
||||
"FontSize": 1
|
||||
}
|
||||
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
iconPath = "{}/deepin-wine-runner.svg".format(programPath)
|
||||
try:
|
||||
setting = json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineSetting.json"))
|
||||
information = json.loads(readtxt(f"{programPath}/information.json"))
|
||||
except:
|
||||
setting = defultProgramList
|
||||
|
||||
def SetFont(app):
|
||||
defaultFont = app.font()
|
||||
size = setting["FontSize"]
|
||||
@@ -47,7 +65,286 @@ def SetFont(app):
|
||||
font.setPointSize(int(defaultFont.pointSize() / size))
|
||||
app.setFont(font)
|
||||
|
||||
def getFileFolderSize(fileOrFolderPath):
|
||||
"""get size for file or folder"""
|
||||
totalSize = 0
|
||||
try:
|
||||
setting = json.loads(readtxt(get_home() + "/.config/deepin-wine-runner/WineSetting.json"))
|
||||
if not os.path.exists(fileOrFolderPath):
|
||||
return totalSize
|
||||
if os.path.isfile(fileOrFolderPath):
|
||||
totalSize = os.path.getsize(fileOrFolderPath) # 5041481
|
||||
return totalSize
|
||||
if os.path.islink(fileOrFolderPath):
|
||||
return 0
|
||||
if os.path.isdir(fileOrFolderPath):
|
||||
with os.scandir(fileOrFolderPath) as dirEntryList:
|
||||
for curSubEntry in dirEntryList:
|
||||
curSubEntryFullPath = os.path.join(fileOrFolderPath, curSubEntry.name)
|
||||
if curSubEntry.is_dir():
|
||||
curSubFolderSize = getFileFolderSize(curSubEntryFullPath) # 5800007
|
||||
totalSize += curSubFolderSize
|
||||
elif curSubEntry.is_file():
|
||||
curSubFileSize = os.path.getsize(curSubEntryFullPath) # 1891
|
||||
totalSize += curSubFileSize
|
||||
return totalSize
|
||||
except:
|
||||
setting = defultProgramList
|
||||
return totalSize
|
||||
|
||||
def FileToBase64(filePath):
|
||||
src = ""
|
||||
with open(filePath, "rb") as f:
|
||||
base64Byte = base64.b64encode(f.read())
|
||||
src += base64Byte.decode("utf-8")
|
||||
return src
|
||||
|
||||
def SaveLogWindow():
|
||||
pass
|
||||
|
||||
class SaveLogReport():
|
||||
userName = getpass.getuser()
|
||||
time = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
|
||||
kernelVersion = subprocess.getoutput("uname -a")
|
||||
wineRunnerVersion = information["Version"]
|
||||
architecture = subprocess.getoutput("arch")
|
||||
cpuInfo = subprocess.getoutput("lscpu")
|
||||
lsmod = subprocess.getoutput("lsmod")
|
||||
lshw = subprocess.getoutput("lshw")
|
||||
cpu = subprocess.getoutput("cat /proc/cpuinfo | grep 'model name' | head -n 1 | awk -F: '{print $2}'")
|
||||
gpu = subprocess.getoutput("lspci | grep -i 'VGA\|3D\|2D'")
|
||||
|
||||
def __init__(self, chooseWineName, chooseWineCommand, runCommand, binPath, logOut, description="无", imgPath=[]) -> None:
|
||||
self.chooseWineName = chooseWineName
|
||||
self.chooseWineCommand = chooseWineCommand
|
||||
self.runCommand = runCommand
|
||||
self.binPath = binPath
|
||||
self.logOut = logOut
|
||||
self.description = description
|
||||
self.imgPath = imgPath
|
||||
# 读取可执行文件信息
|
||||
if os.path.exists(binPath):
|
||||
try:
|
||||
self.binSize = f"{str(int(getFileFolderSize(binPath) / 1024 / 1024))}MB"
|
||||
except:
|
||||
self.binSize = "Error"
|
||||
traceback.print_exc()
|
||||
os.system(f"'{programPath}/wrestool' '{binPath}' -x -t 14 > '/tmp/wine-runner-log-icon.png'")
|
||||
# 如果提取成功
|
||||
if os.path.exists("/tmp/wine-runner-log-icon.png"):
|
||||
# 转换成 base64 编码
|
||||
self.binIcon = "data:image/jpg;base64," + FileToBase64("/tmp/wine-runner-log-icon.png")
|
||||
self.binIconPath = "/tmp/wine-runner-log-icon.png"
|
||||
else:
|
||||
self.binIcon = "Not Found"
|
||||
self.binIconPath = "Not Found"
|
||||
else:
|
||||
self.binSize = "Not Found"
|
||||
self.binIcon = "Not Found"
|
||||
self.binIconPath = "Not Found"
|
||||
try:
|
||||
self.memoryInfo = readtxt("/proc/meminfo")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.memoryInfo = traceback.format_exc()
|
||||
# 读取系统信息
|
||||
try:
|
||||
with open("/etc/os-release", "r") as file:
|
||||
text = "[Default]\n" + file.read()
|
||||
conf = configparser.ConfigParser()
|
||||
conf.read_string(text)
|
||||
self.systemVersion = conf.get("Default", "PRETTY_NAME")
|
||||
except:
|
||||
traceback.print_exc()
|
||||
self.systemVersion = subprocess.getoutput("lsb_release -a")
|
||||
|
||||
def SetWindow(self):
|
||||
def AddImageToListClicked():
|
||||
choose = QtWidgets.QFileDialog.getOpenFileNames(messagebox, "选择图像", get_home(), "图片文件(*.png *.jpg *.bmp *.gif *.svg);;所有文件(*.*)")
|
||||
print(choose)
|
||||
for i in choose[0]:
|
||||
if i in imageList:
|
||||
continue
|
||||
imageList.append(i)
|
||||
nmodel = QtGui.QStandardItemModel(messagebox)
|
||||
for i in imageList:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
imageListView.setModel(nmodel)
|
||||
|
||||
def DeleteImageToListClicked():
|
||||
index = imageListView.currentIndex().row()
|
||||
if index < 0:
|
||||
QtWidgets.QMessageBox.information(messagebox, "提示", "您未选择任何项")
|
||||
return
|
||||
del imageList[index]
|
||||
nmodel = QtGui.QStandardItemModel(messagebox)
|
||||
for i in imageList:
|
||||
item = QtGui.QStandardItem(i)
|
||||
nmodel.appendRow(item)
|
||||
imageListView.setModel(nmodel)
|
||||
# 选择第一项
|
||||
imageListView.setCurrentIndex(nmodel.index(0, 0))
|
||||
|
||||
def OkClicked():
|
||||
self.description = description.toPlainText()
|
||||
self.imgPath = imageList
|
||||
path = QtWidgets.QFileDialog.getSaveFileName(messagebox, "保存日志报告", get_home(), "7z 文件(*.7z);;所有文件(*.*)")
|
||||
print(path)
|
||||
if path[0] != "":
|
||||
try:
|
||||
self.To7z(path[0])
|
||||
except:
|
||||
traceback.print_exc()
|
||||
QtWidgets.QMessageBox.critical(messagebox, "错误", traceback.format_exc())
|
||||
return
|
||||
messagebox.close()
|
||||
QtWidgets.QMessageBox.information(messagebox, "提示", "生成完成!\n建议将报告与可执行文件一并提交以便排除错误")
|
||||
|
||||
def CancelClicked():
|
||||
messagebox.close()
|
||||
|
||||
# 权重
|
||||
size = QtWidgets.QSizePolicy()
|
||||
size.setHorizontalPolicy(0)
|
||||
imageList = []
|
||||
messagebox = QtWidgets.QDialog()
|
||||
layout = QtWidgets.QGridLayout()
|
||||
description = QtWidgets.QTextEdit()
|
||||
imageListView = QtWidgets.QListView()
|
||||
addImageToList = QtWidgets.QPushButton("+")
|
||||
deleteImageToList = QtWidgets.QPushButton("-")
|
||||
controlLayout = QtWidgets.QHBoxLayout()
|
||||
ok = QtWidgets.QPushButton("保存")
|
||||
cancel = QtWidgets.QPushButton("取消")
|
||||
description.setPlaceholderText("可以填写故障的现象、复现步骤以及其他有关的信息,同时也可以填写联系方式")
|
||||
addImageToList.clicked.connect(AddImageToListClicked)
|
||||
deleteImageToList.clicked.connect(DeleteImageToListClicked)
|
||||
ok.clicked.connect(OkClicked)
|
||||
cancel.clicked.connect(CancelClicked)
|
||||
addImageToList.setSizePolicy(size)
|
||||
deleteImageToList.setSizePolicy(size)
|
||||
ok.setSizePolicy(size)
|
||||
cancel.setSizePolicy(size)
|
||||
layout.addWidget(QtWidgets.QLabel("<h2>描述(建议填写)</h2>"), 0, 0)
|
||||
layout.addWidget(description, 1, 0, 1, 3)
|
||||
layout.addWidget(QtWidgets.QLabel("<hr>"), 2, 0, 1, 4)
|
||||
layout.addWidget(QtWidgets.QLabel("<h2>截图(建议选择)</h2>"), 3, 0)
|
||||
layout.addWidget(imageListView, 4, 0, 4, 3)
|
||||
layout.addWidget(addImageToList, 5, 3)
|
||||
layout.addWidget(deleteImageToList, 6, 3)
|
||||
layout.addLayout(controlLayout, 8, 2, 1, 2)
|
||||
controlLayout.addWidget(cancel)
|
||||
controlLayout.addWidget(ok)
|
||||
messagebox.setLayout(layout)
|
||||
messagebox.exec_()
|
||||
|
||||
def To7z(self, savePath):
|
||||
os.system("rm -rfv /tmp/wine-runner-log")
|
||||
os.system("mkdir -v /tmp/wine-runner-log")
|
||||
self.ToHtml("/tmp/wine-runner-log/index.html", toZip=True)
|
||||
if os.path.exists(self.binIconPath):
|
||||
shutil.copy(self.binIconPath, f"/tmp/wine-runner-log/{os.path.basename(self.binIconPath)}")
|
||||
lists = ["wine-runner-log-icon.png", "index.html"]
|
||||
for i in self.imgPath:
|
||||
name = os.path.basename(i)
|
||||
if os.path.basename(i) in lists:
|
||||
while name in lists:
|
||||
name = os.path.splitext(name)[0] + "-copy" + os.path.splitext(name)[1]
|
||||
lists.append(name)
|
||||
else:
|
||||
lists.append(name)
|
||||
shutil.copy(i, f"/tmp/wine-runner-log/{name}")
|
||||
os.system(f"7z a '{savePath}' /tmp/wine-runner-log")
|
||||
|
||||
|
||||
def ToHtml(self, savePath, toZip=False):
|
||||
print(self.userName, self.time)
|
||||
# 对文本进行处理
|
||||
description = ""
|
||||
logOut = ""
|
||||
cpuInfo = ""
|
||||
memoryInfo = ""
|
||||
imgPath = ""
|
||||
lsmod = ""
|
||||
lshw = ""
|
||||
charReplaceMap = {
|
||||
"<": "<",
|
||||
">": ">",
|
||||
"&": "&",
|
||||
'"': """
|
||||
}
|
||||
for i in self.description.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
description += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.logOut.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
logOut += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.cpuInfo.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
cpuInfo += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.memoryInfo.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
memoryInfo += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.lsmod.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
lsmod += f'<span class="line code">{i}</span>\n'
|
||||
for i in self.lshw.splitlines():
|
||||
for k in charReplaceMap:
|
||||
i = i.replace(k, charReplaceMap[k])
|
||||
lshw += f'<span class="line code">{i}</span>\n'
|
||||
text = readtxt(f"{programPath}/Resources/LogTemplate/template.html")
|
||||
if toZip:
|
||||
binIcon = os.path.basename(self.binIconPath)
|
||||
# 重名排除
|
||||
lists = ["wine-runner-log-icon.png", "index.html"]
|
||||
for i in self.imgPath:
|
||||
name = os.path.basename(i)
|
||||
if os.path.basename(i) in lists:
|
||||
while name in lists:
|
||||
name = os.path.splitext(name)[0] + "-copy" + os.path.splitext(name)[1]
|
||||
lists.append(name)
|
||||
else:
|
||||
lists.append(name)
|
||||
imgPath += f'<p align="center"><img src="{name}" class="imgShow"></p>\n'
|
||||
else:
|
||||
binIcon = self.binIcon
|
||||
for i in self.imgPath:
|
||||
try:
|
||||
path = "data:image/jpg;base64," + FileToBase64(i)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
path = "Error"
|
||||
imgPath += f' <p align="center"><img src="{path}" class="imgShow"></p>\n'
|
||||
|
||||
replaceMap = {
|
||||
"%UserName%": self.userName,
|
||||
"%Time%": self.time,
|
||||
"%KernelVersion": self.kernelVersion,
|
||||
"%ChooseWineName%": self.chooseWineName,
|
||||
"%ChooseWineCommand%": self.chooseWineCommand,
|
||||
"%RunCommand%": self.runCommand,
|
||||
"%BinPath%": self.binPath,
|
||||
"%WineRunnerVersion%": self.wineRunnerVersion,
|
||||
"%BinSize%": self.binSize,
|
||||
"%BinIcon%": binIcon,
|
||||
"%CPUInfo%": cpuInfo,
|
||||
"%Architecture%": self.architecture,
|
||||
"%MemoryInfo%": memoryInfo,
|
||||
"%LogOut%": logOut,
|
||||
"%Description%": description,
|
||||
"%ImgPath%": imgPath,
|
||||
"%Lsmod%": lsmod,
|
||||
"%Lshw%": lshw,
|
||||
"%CPU%": self.cpu,
|
||||
"%GPU%": self.gpu,
|
||||
"%SystemVersion%": self.systemVersion
|
||||
}
|
||||
for i in replaceMap.keys():
|
||||
text = text.replace(i, replaceMap[i])
|
||||
with open(savePath, "w") as file:
|
||||
file.write(text)
|
||||
|
||||
|
||||
12
DesktopIcon/spark-deepin-wine-package-builder.desktop
Normal file
12
DesktopIcon/spark-deepin-wine-package-builder.desktop
Normal file
@@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=/usr/bin/deepin-wine-package-builder "~/.wine" %F
|
||||
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
|
||||
Name=Wine Package Builder
|
||||
Name[zh]=Wine 打包器
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
NoDisplay=true
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
12
DesktopIcon/spark-deepin-wine-packager-easy-builder.desktop
Normal file
12
DesktopIcon/spark-deepin-wine-packager-easy-builder.desktop
Normal file
@@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=/usr/bin/deepin-wine-packager-easy-builder %F
|
||||
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
|
||||
Name=Wine Package Builder
|
||||
Name[zh]=Wine 简易打包器
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
NoDisplay=true
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
10
DesktopIcon/spark-deepin-wine-packager-with-script.desktop
Normal file
10
DesktopIcon/spark-deepin-wine-packager-with-script.desktop
Normal file
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=/usr/bin/deepin-wine-packager-with-script
|
||||
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
|
||||
Name=Wine Package Builder For UOS
|
||||
NoDisplay=true
|
||||
Name[zh]=Wine 打包器(基于活动脚本)
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
10
DesktopIcon/spark-deepin-wine-runner-control-vm.desktop
Normal file
10
DesktopIcon/spark-deepin-wine-runner-control-vm.desktop
Normal file
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=/opt/apps/deepin-wine-runner/RunVM.sh %F
|
||||
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
|
||||
Name=Setting VirtualMachine
|
||||
Name[zh]=设置 Windows 虚拟机
|
||||
NoDisplay=true
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
9
DesktopIcon/spark-deepin-wine-runner-start-vm.desktop
Normal file
9
DesktopIcon/spark-deepin-wine-runner-start-vm.desktop
Normal file
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;
|
||||
Exec=/opt/apps/deepin-wine-runner/StartVM.sh %F
|
||||
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
|
||||
Name=Start Windows VirtualMachine
|
||||
Name[zh]=开启 Windows 虚拟机
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
11
DesktopIcon/spark-deepin-wine-runner.desktop
Normal file
11
DesktopIcon/spark-deepin-wine-runner.desktop
Normal file
@@ -0,0 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=/usr/bin/deepin-wine-runner %F
|
||||
Icon=/opt/apps/deepin-wine-runner/deepin-wine-runner.svg
|
||||
Name=Wine Runner
|
||||
Name[zh]=Wine 运行器
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
@@ -1,5 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import base64
|
||||
import requests
|
||||
print(requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9JbnN0YWxsLnBocD9WZXJzaW9uPQ==").decode("utf-8") + sys.argv[1]).text)
|
||||
# 读取版本号
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
with open(f"{programPath}/information.json") as file:
|
||||
version = json.loads(file.read())["Version"]
|
||||
print(requests.get(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9JbnN0YWxsLnBocD9WZXJzaW9uPQ==").decode("utf-8") + version).text)
|
||||
10
GetProgramVersion.py
Executable file
10
GetProgramVersion.py
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# 读取程序版本号
|
||||
import os
|
||||
import json
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
try:
|
||||
with open(f"{programPath}/information.json") as file:
|
||||
print(json.loads(file.read())["Version"])
|
||||
except:
|
||||
print("1.0.0")
|
||||
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
BIN
Icon/Program/AboutIcon1.png
Executable file
BIN
Icon/Program/AboutIcon1.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
31
InstallBox86-own.sh
Executable file
31
InstallBox86-own.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
if [[ `whoami` != root ]]; then
|
||||
echo 请以 root 权限运行
|
||||
echo 按任意键退出
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
PCArch=`dpkg --print-architecture`
|
||||
echo 使用国内源
|
||||
#sudo wget https://ryanfortner.github.io/box86-debs/box86.list -O /etc/apt/sources.list.d/box86.list
|
||||
#sudo bash -c "echo deb http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs/debian ./ > /etc/apt/sources.list.d/box86.list"
|
||||
#wget -qO- http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box86-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box86-debs-archive-keyring.gpg
|
||||
#echo "adding key..."
|
||||
#installBox=box86-generic-arm
|
||||
#if [[ $PCArch == "arm64" ]]; then
|
||||
# sudo bash -c "echo deb http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box64-debs/debian ./ > /etc/apt/sources.list.d/box64.list"
|
||||
# wget -qO- http://seafile.jyx2048.com:2345/spark-deepin-wine-runner/data/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg
|
||||
# installBox="box86-generic-arm box64-generic-arm"
|
||||
# sudo dpkg --add-architecture armhf
|
||||
#fi
|
||||
wget http://deb.box86.wine-runner.gfdgdxi.top/sources/github.sh
|
||||
bash github.sh
|
||||
rm github.sh
|
||||
echo " + sudo apt update"
|
||||
sudo apt update
|
||||
sudo apt install binfmt-support -y
|
||||
sudo apt install libc6:armhf -y
|
||||
sudo apt install -y box86
|
||||
sudo apt install -y box64
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
6
InstallLat.sh
Executable file
6
InstallLat.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
echo lat只能在loongarch架构安装
|
||||
sudo apt update
|
||||
sudo apt install lat
|
||||
echo 按回车键退出
|
||||
read
|
||||
@@ -69,7 +69,8 @@ m m "
|
||||
for i in [
|
||||
["原版 Wine(Wine64)", "wine"],
|
||||
["deepin-wine5-stable", "deepin-wine5-stable"],
|
||||
["deepin-wine6-stable", "deepin-wine6-stable"]
|
||||
["deepin-wine6-stable", "deepin-wine6-stable"],
|
||||
["deepin-wine8-stable", "deepin-wine8-stable"]
|
||||
]:
|
||||
if not os.system(f"which {i[1]} > /dev/null"):
|
||||
continue
|
||||
|
||||
5
LANG/Makefile
Normal file
5
LANG/Makefile
Normal file
@@ -0,0 +1,5 @@
|
||||
build:
|
||||
lrelease deepin-wine-packager-en_US.ts -qm deepin-wine-packager-en_US.qm
|
||||
lrelease deepin-wine-runner-en_US.ts -qm deepin-wine-runner-en_US.qm
|
||||
lrelease installwine-en_US.ts -qm installwine-en_US.qm
|
||||
lrelease virtualmachine-en_US.ts -qm virtualmachine-en_US.qm
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
15
Makefile
15
Makefile
@@ -3,6 +3,7 @@ build:
|
||||
|
||||
clean:
|
||||
python3 RemovePycacheFile.py
|
||||
rm *.deb -fv
|
||||
cd VM-source ; make clean
|
||||
rm VM-source/VirtualMachine -rfv
|
||||
rm -rfv VM-source/.qmake.stash
|
||||
@@ -19,6 +20,8 @@ package:
|
||||
cp -rv VM-source/deepin-wine-runner.svg VM
|
||||
cp -rv VM-source/Windows7X64Auto.iso VM
|
||||
cp -rv VM-source/Windows7X86Auto.iso VM
|
||||
cp -rv VM-source/test.qcow2 VM
|
||||
cp -rv VM-source/*.fd VM
|
||||
cp -rv wine/ deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv Test/ deb/opt/apps/deepin-wine-runner/
|
||||
cp -rv information.json package-script
|
||||
@@ -60,6 +63,7 @@ package:
|
||||
cp -rv RegShot deb/opt/apps/deepin-wine-runner
|
||||
cp -rv BeCyIconGrabber.exe deb/opt/apps/deepin-wine-runner
|
||||
cp -rv AutoShell deb/opt/apps/deepin-wine-runner
|
||||
cp -rv Resources deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-packager-with-script.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-packager.py deb/opt/apps/deepin-wine-runner
|
||||
cp -rv deepin-wine-runner-update-bug deb/opt/apps/deepin-wine-runner
|
||||
@@ -147,10 +151,17 @@ package:
|
||||
ln -s /opt/apps/deepin-wine-runner/InstallNetFramework.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-runner-wine-netframework-installer
|
||||
ln -s /opt/apps/deepin-wine-runner/InstallVisualCPlusPlus.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-runner-wine-vscppruntime-installer
|
||||
ln -s /opt/apps/deepin-wine-runner/deepin-wine-venturi-setter.py /tmp/spark-deepin-wine-runner-builder/usr/bin/deepin-wine-venturi-setter
|
||||
|
||||
bash builddeb/ChangeDebVersion.sh
|
||||
sudo chown -R root:root /tmp/spark-deepin-wine-runner-builder
|
||||
|
||||
dpkg-deb -Z xz -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb
|
||||
dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner.deb
|
||||
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder
|
||||
# 构建 ace 包
|
||||
cp -rv deb-ace /tmp/spark-deepin-wine-runner-builder
|
||||
cp -rv spark-deepin-wine-runner.deb /tmp/spark-deepin-wine-runner-builder/opt/apps/spark-deepin-wine-runner-ace
|
||||
bash builddeb/ChangeDebVersion.sh
|
||||
sudo chown -R root:root /tmp/spark-deepin-wine-runner-builder
|
||||
dpkg-deb -Z xz -z 9 -b /tmp/spark-deepin-wine-runner-builder spark-deepin-wine-runner-ace.deb
|
||||
sudo rm -rfv /tmp/spark-deepin-wine-runner-builder
|
||||
|
||||
install:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
sudo apt update
|
||||
sudo apt install qemu-system qemu-user qemu-efi -y
|
||||
sudo apt install qemu-system qemu-user qemu-efi qemu-efi-aarch64 qemu-efi-arm -y
|
||||
sudo apt install qemu-user-static binfmt-support qemu-system-gui -y
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
|
||||
97
README.md
97
README.md
@@ -1,50 +1,32 @@
|
||||
<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.1</h1>
|
||||
<h1 align="center">Wine 运行器 3.6.0</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程序打包器和运行库安装工具等。
|
||||
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低)。
|
||||
此外,它还简化了如下命令,让你可以更简便地使用Wine:
|
||||
```bash
|
||||
env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径
|
||||
```
|
||||
让你可以简易方便的使用 wine
|
||||
是使用 Python3 的 PyQt5 构建的
|
||||
(测试平台:deepin 20.8;UOS 家庭版 22;Ubuntu 22.04;Ubuntu 20.04;Ubuntu 23.04;UOS 专业版 1050;openkylin;cuteos;yoyo os)
|
||||

|
||||
而打包器可以方便的把您的 wine 容器打包成 deb 包供他人使用,程序创建的 deb 构建临时文件夹目录树如下:
|
||||
```bash
|
||||
/XXX
|
||||
├── DEBIAN
|
||||
│ └── control
|
||||
│ └── postrm(可选)
|
||||
└── opt
|
||||
└── apps
|
||||
└── XXX
|
||||
├── entries
|
||||
│ ├── applications
|
||||
│ │ └── XXX.desktop
|
||||
│ └── icons
|
||||
│ └── hicolor
|
||||
│ └── scalable
|
||||
│ └── apps
|
||||
│ └── XXX.png(XXX.svg)
|
||||
├── files
|
||||
│ ├── files.7z
|
||||
│ └── run.sh
|
||||
└── info
|
||||
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。
|
||||
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。
|
||||
而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。
|
||||
且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式
|
||||
|
||||
|
||||

|
||||
|
||||
11 directories, 6 files
|
||||
```
|
||||
[](https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers)
|
||||
最后感谢 [@鹤舞白沙](https://bbs.deepin.org/user/227203) 编写的《Wine运行器和Wine打包器傻瓜式使用教程(小白专用)》,链接:https://bbs.deepin.org/post/246837
|
||||
|
||||
打包器视频教程:https://www.bilibili.com/video/BV1Bh4y1Q7nT/
|
||||
Wine 运行器 QQ 交流群:762985460
|
||||
Wine运行器 QQ 频道:https://pd.qq.com/s/edqkgeydx
|
||||
Wine 运行器离线包下载地址:https://www.123pan.com/s/pDSKVv-pAJWv.html
|
||||
|
||||
### 注
|
||||
spark-deepin-wine-runner 是普通包,spark-deepin-wine-runner-ace 是使用 ace 兼容环境运行的运行器
|
||||
|
||||
## 软件架构
|
||||
理论上支持全架构,如果 Python 能运行的话
|
||||
非 X86 架构会利用到 `box86`、`exagear`、`qemu` 等技术
|
||||
非 X86 架构会利用到 `box86`/`box64`、`exagear`、`qemu` 等技术
|
||||
|
||||
## Wine 运行器自动构建(Newest)
|
||||
此只供尝鲜,不保证能用:https://github.com/gfdgd-xi/deep-wine-runner/actions/workflows/auto-building.yml
|
||||
@@ -138,6 +120,51 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
||||

|
||||
|
||||
## 更新日志
|
||||
### 3.6.0(2023年12月24日)
|
||||
**※1、修复高级打包器选择软件适配脚本后无法打包的问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I8I110**
|
||||
**※2、支持调用 Deepin Wine8 Stable**
|
||||
**※3、移除过时的 Wine 安装程序入口**
|
||||
**※4、Wine 安装器支持根据地区自动选择国内源以及国际源**
|
||||
**※5、Wine 安装器新增 Sourceforge 源**
|
||||
**※6、新增 Wine 运行报告生成功能**
|
||||
**※7、初步英语翻译**
|
||||
**※8、新增离线安装包(只支持 amd64)**
|
||||
**※9、支持识别 /opt 文件夹下的 Wine**
|
||||
10、新增 Wine 运行器视频教程的 Youtube 入口
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.5.0(2023年11月17日)
|
||||
**※1、虚拟机工具支持 kvm 检测**
|
||||
**※2、修改虚拟机工具提示文本,新增对 UOS 3a4000 用户无法正常使用 Qemu 的解决方案**
|
||||
**※3、在主界面点击“安装”按钮后自动切换至帮助页面**
|
||||
**※4、新增虚拟机日志输出和读取功能**
|
||||
**※5、新增Qemu测试测试功能**
|
||||
**※6、虚拟机工具支持安装/运行 arm32、arm64 架构的系统**
|
||||
**※7、修复虚拟机工具在系统版本选择第 5 项及以后出现不会挂载 ISO 的问题(使用 Qemu 的情况下)**
|
||||
**※8、修复简易打包器无法打开的问题 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I85F9M**
|
||||
**※9、生态适配脚本打包器支持正确根据打包结果显示打包成功/失败 https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7D83Z**
|
||||
10、生态适配脚本打包器设置使用 xz 格式打包 deb
|
||||
11、新增 ace 包
|
||||
12、虚拟机工具支持强制关闭 VirtualBox/Qemu,并增加了对 Windows 7 安装脚本的检测
|
||||
13、新增 lat 翻译器安装选项
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.4.1(2023年09月30日)
|
||||
**※1、支持识别 spark-wine8-wow 且打包时可以使用该 wine**
|
||||
**※2、替换安装 Box86 的 pkexec 为 sudo**
|
||||
**※3、Wine 下载工具新增更多 Wine**
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 3.4.0.1(2023年08月18日)
|
||||
**※1、修复部分高性能机器打包器提示“无效的压缩参数”:https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SMTJ**
|
||||
**※2、支持设置程序字体大小:https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SAYE**
|
||||
|
||||
65
README_en.md
Normal file
65
README_en.md
Normal file
@@ -0,0 +1,65 @@
|
||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||
<h1 align="center">Wine Runner 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>
|
||||
|
||||
## Introduce
|
||||
Wine Runner is a program that help Linux user to run Windows program. However,
|
||||
|
||||

|
||||
|
||||
[](https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers)
|
||||
最后感谢 [@鹤舞白沙](https://bbs.deepin.org/user/227203) 编写的《Wine运行器和Wine打包器傻瓜式使用教程(小白专用)》,链接:https://bbs.deepin.org/post/246837
|
||||
|
||||
Wine Runner Packager Video tutorial: https://www.bilibili.com/video/BV1Bh4y1Q7nT/
|
||||
Wine Runner QQ communication group:762985460
|
||||
|
||||
## Program Support Architecture
|
||||
Runner is able to run for common architecture if these system can run Python.
|
||||
Non-x86 system will use `box86/box64`, `exagear`, `qemu` and so on.
|
||||
|
||||
## Wine Runner Auto Builder(Newest Version)
|
||||
This version can't sure what bug will happen when you are using.
|
||||
Download Website: https://github.com/gfdgd-xi/deep-wine-runner/actions/workflows/auto-building.yml
|
||||
|
||||
## Which App Store You Can Download Wine Runner
|
||||
### Deepin/UOS App Store
|
||||

|
||||
|
||||
### Spark Store
|
||||

|
||||
### Loongson App Store
|
||||

|
||||
|
||||
## Git Branch Introduce
|
||||
### main
|
||||
The main branch
|
||||
|
||||
## Different Of Version(It No longer Distinguishing From 3.1.0)
|
||||
### Normal
|
||||
Normal Version(It usually from Gitee, Github, Gitlink, etc)
|
||||
### `-spark` In Version
|
||||
Install runner from Spark Store
|
||||
### `-uos` In Version
|
||||
Install runner from Deepin/UOS App Store, and you can install without open the develop mode.
|
||||
### `-52` In Version
|
||||
It only release for 52pojie, and some function was removed such as updater, bug uploader and so on.
|
||||

|
||||
Nobody want to see this error when you are using.
|
||||
|
||||
## Program Tips
|
||||
I don't want to write, it's too long and too old.
|
||||
|
||||
## Update Log
|
||||
### 3.4.0.1(August 18th, 2023)
|
||||
1. **Repair some machine tips `无效的压缩参数` when you are packing program in Wine Runner Packager, you also can see this isscue: https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SMTJ**
|
||||
2. **Runner support to set program font size, you also can see this isscue: https://gitee.com/gfdgd-xi/deep-wine-runner/issues/I7SAYE**
|
||||
### 3.4.0(August 11th, 2023)
|
||||
1. **Repair Easy Packager can't open and check wine error problem.**
|
||||
2. **Professional Packager support to set different mimetype value for different .desktop file**
|
||||
3. **Repair install runner problem in Ubuntu 23.04**
|
||||
4. **Professional Packager support to save pack info what you are inputing**
|
||||
5. **Deepin23 support run Winetricks with runner**
|
||||
6. **Add video help website**
|
||||
7. and so on
|
||||
169
Resources/LogTemplate/icon.svg
Normal file
169
Resources/LogTemplate/icon.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 14 KiB |
155
Resources/LogTemplate/template.html
Normal file
155
Resources/LogTemplate/template.html
Normal file
File diff suppressed because one or more lines are too long
80
StartVM.sh
80
StartVM.sh
@@ -7,10 +7,11 @@
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 tkinter 构建
|
||||
###########################################################################################
|
||||
cd `dirname $0`
|
||||
VBoxManage showvminfo Windows
|
||||
if [[ 0 == $? ]]; then
|
||||
# 检测到虚拟机存在,启动虚拟机
|
||||
VBoxManage startvm Windows
|
||||
VBoxManage startvm Windows > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
# 检查是否有 QEMU
|
||||
@@ -22,6 +23,20 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
||||
python3 ./VM/StartQemu.py
|
||||
exit
|
||||
fi
|
||||
# 查看CPU个数
|
||||
CpuSocketNum=`cat /proc/cpuinfo | grep "cpu cores" | uniq | wc -l`
|
||||
# 查看CPU核心数
|
||||
CpuCoreNum=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
|
||||
# 查看逻辑CPU的个数
|
||||
CpuCount=`cat /proc/cpuinfo| grep "processor"| wc -l`
|
||||
|
||||
# 总内存大小GB
|
||||
MemTotal=`awk '($1 == "MemTotal:"){printf "%.2f\n",$2/1024/1024}' /proc/meminfo`
|
||||
use=$(echo "scale=4; $MemTotal / 3" | bc)
|
||||
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep amd64
|
||||
if [[ $? == 0 ]] || [[ ! -e ~/.config/deepin-wine-runner/QEMU-ARCH ]]; then
|
||||
# amd64 架构
|
||||
if [[ -f $HOME/.config/deepin-wine-runner/QEMU-EFI ]]; then
|
||||
echo 使用 UEFI 启动
|
||||
if [[ -f /usr/share/qemu/OVMF.fd ]]; then
|
||||
@@ -33,29 +48,62 @@ if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
fi
|
||||
# 查看CPU个数
|
||||
CpuSocketNum=`cat /proc/cpuinfo | grep "cpu cores" | uniq | wc -l`
|
||||
# 查看CPU核心数
|
||||
CpuCoreNum=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
|
||||
# 查看逻辑CPU的个数
|
||||
CpuCount=`cat /proc/cpuinfo| grep "processor"| wc -l`
|
||||
|
||||
# 总内存大小GB
|
||||
MemTotal=`awk '($1 == "MemTotal:"){printf "%.2f\n",$2/1024/1024}' /proc/meminfo`
|
||||
use=$(echo "scale=4; $MemTotal / 3" | bc)
|
||||
if [[ `arch` == "x86_64" ]]; then
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
|
||||
echo X86 架构,使用 kvm 加速
|
||||
kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI
|
||||
qemu-system-x86_64 --enable-kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
echo 非 X86 架构,不使用 kvm 加速
|
||||
qemu-system-x86_64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI
|
||||
echo 不使用 kvm 加速
|
||||
qemu-system-x86_64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep armhf
|
||||
if [[ $? == 0 ]]; then
|
||||
# armhf 架构
|
||||
# 寻找 UEFI 固件
|
||||
if [[ -f /usr/share/AAVMF/AAVMF32_CODE.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/AAVMF/AAVMF32_CODE.fd"
|
||||
else
|
||||
if [[ -f ./VM/AAVMF32_CODE.fd ]]; then
|
||||
qemuUEFI="--bios ./VM/AAVMF32_CODE.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||
qemu-system-arm --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
qemu-system-arm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep aarch64
|
||||
if [[ $? == 0 ]]; then
|
||||
# aarch64 架构
|
||||
# 寻找 UEFI 固件
|
||||
if [[ -f /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd"
|
||||
else
|
||||
if [[ -f ./VM/QEMU_AARCH64_EFI.fd ]]; then
|
||||
qemuUEFI="--bios ./VM/QEMU_AARCH64_EFI.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||
qemu-system-aarch64 --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
qemu-system-aarch64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
|
||||
fi
|
||||
zenity --question --no-wrap --text="检查到您未创建所指定的虚拟机,是否创建虚拟机并继续?\n如果不创建将无法使用"
|
||||
if [[ 1 == $? ]]; then
|
||||
# 用户不想创建虚拟机,结束
|
||||
exit
|
||||
fi
|
||||
cd `dirname $0`
|
||||
|
||||
./VM/VirtualMachine
|
||||
|
||||
1
VM-source/.gitignore
vendored
Normal file
1
VM-source/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.user*
|
||||
@@ -7,7 +7,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -77,7 +77,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -147,7 +147,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -217,7 +217,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -287,7 +287,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -357,7 +357,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -427,7 +427,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -497,7 +497,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -567,7 +567,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -637,7 +637,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -707,7 +707,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -777,7 +777,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -847,7 +847,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -917,7 +917,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -987,7 +987,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -1057,7 +1057,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
@@ -1127,7 +1127,7 @@
|
||||
"-I",
|
||||
"/usr/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore",
|
||||
"-I",
|
||||
"/tmp/QtCreator-GlmWVk/clang-uiheader-woUjcu",
|
||||
"/tmp/QtCreator-KABQCK/clang-uiheader-FKIDml",
|
||||
"-nostdinc",
|
||||
"-nostdinc++",
|
||||
"-pipe",
|
||||
|
||||
BIN
VM-source/AAVMF32_CODE.fd
Normal file
BIN
VM-source/AAVMF32_CODE.fd
Normal file
Binary file not shown.
@@ -59,7 +59,8 @@ SOURCES = main.cpp \
|
||||
command.cpp \
|
||||
infoutils.cpp \
|
||||
qemu.cpp \
|
||||
qemusetting.cpp qrc_图标.cpp \
|
||||
qemusetting.cpp qrc_trans.cpp \
|
||||
qrc_图标.cpp \
|
||||
moc_mainwindow.cpp \
|
||||
moc_infoutils.cpp \
|
||||
moc_qemusetting.cpp
|
||||
@@ -71,11 +72,14 @@ OBJECTS = main.o \
|
||||
infoutils.o \
|
||||
qemu.o \
|
||||
qemusetting.o \
|
||||
qrc_trans.o \
|
||||
qrc_图标.o \
|
||||
moc_mainwindow.o \
|
||||
moc_infoutils.o \
|
||||
moc_qemusetting.o
|
||||
DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
||||
DIST = en_US.qm \
|
||||
en_US.ts \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
|
||||
@@ -84,6 +88,34 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Attica.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
|
||||
@@ -92,7 +124,11 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_designer.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkcore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkgui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_DtkWidget.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
|
||||
@@ -103,6 +139,7 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_help.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
|
||||
@@ -113,21 +150,43 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Solid.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetUi.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
|
||||
@@ -185,6 +244,34 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Attica.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
|
||||
@@ -193,7 +280,11 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_designer.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkcore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkgui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_DtkWidget.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
|
||||
@@ -204,6 +295,7 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_help.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
|
||||
@@ -214,21 +306,43 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Solid.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetCore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetUi.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf \
|
||||
@@ -253,6 +367,7 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
|
||||
VirtualMachine.pro \
|
||||
trans.qrc \
|
||||
图标.qrc
|
||||
$(QMAKE) -o Makefile VirtualMachine.pro
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf:
|
||||
@@ -264,6 +379,34 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.conf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-unix.conf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/qconfig.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Attica.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri:
|
||||
@@ -272,7 +415,11 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dbus_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_designer.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkcore.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkgui.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_DtkWidget.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_edid_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_egl_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri:
|
||||
@@ -283,6 +430,7 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_glx_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_gui_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_help.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:
|
||||
@@ -293,21 +441,43 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioning.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_positioningquick.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_printsupport_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qml.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlmodels.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmltest.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_qmlworkerscript.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quick.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quickwidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_Solid.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetCore.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_SonnetUi.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_functions.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt_config.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf:
|
||||
@@ -332,6 +502,7 @@ Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qma
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf:
|
||||
VirtualMachine.pro:
|
||||
trans.qrc:
|
||||
图标.qrc:
|
||||
qmake: FORCE
|
||||
@$(QMAKE) -o Makefile VirtualMachine.pro
|
||||
@@ -347,7 +518,7 @@ dist: distdir FORCE
|
||||
distdir: FORCE
|
||||
@test -d $(DISTDIR) || mkdir -p $(DISTDIR)
|
||||
$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
|
||||
$(COPY_FILE) --parents 图标.qrc $(DISTDIR)/
|
||||
$(COPY_FILE) --parents trans.qrc 图标.qrc $(DISTDIR)/
|
||||
$(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/
|
||||
$(COPY_FILE) --parents mainwindow.h buildvbox.h vbox.h command.h infoutils.h qemu.h qemusetting.h $(DISTDIR)/
|
||||
$(COPY_FILE) --parents main.cpp mainwindow.cpp buildvbox.cpp vbox.cpp command.cpp infoutils.cpp qemu.cpp qemusetting.cpp $(DISTDIR)/
|
||||
@@ -376,13 +547,22 @@ check: first
|
||||
|
||||
benchmark: first
|
||||
|
||||
compiler_rcc_make_all: qrc_图标.cpp
|
||||
compiler_rcc_make_all: qrc_trans.cpp qrc_图标.cpp
|
||||
compiler_rcc_clean:
|
||||
-$(DEL_FILE) qrc_图标.cpp
|
||||
-$(DEL_FILE) qrc_trans.cpp qrc_图标.cpp
|
||||
qrc_trans.cpp: trans.qrc \
|
||||
/usr/lib/qt5/bin/rcc \
|
||||
en_US.ts \
|
||||
en_US.qm \
|
||||
zh_CN.ts \
|
||||
zh_CN.qm
|
||||
/usr/lib/qt5/bin/rcc -name trans trans.qrc -o qrc_trans.cpp
|
||||
|
||||
qrc_图标.cpp: 图标.qrc \
|
||||
/usr/lib/qt5/bin/rcc \
|
||||
deepin-wine-runner.png \
|
||||
deepin-wine-runner.svg \
|
||||
application-vnd.oasis.opendocument.text.svg \
|
||||
截图_VirtualBox\ Machine_20220712142929.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143018.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712192850.png \
|
||||
@@ -396,6 +576,7 @@ qrc_图标.cpp: 图标.qrc \
|
||||
截图/截图_VirtualBox_20220712223705.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143006.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712191756.png \
|
||||
test.qcow2 \
|
||||
LANG/virtualmachine-en_US.ts \
|
||||
LANG/virtualmachine-en_US.qm
|
||||
/usr/lib/qt5/bin/rcc -name 图标 图标.qrc -o qrc_图标.cpp
|
||||
@@ -456,7 +637,9 @@ mainwindow.o: mainwindow.cpp mainwindow.h \
|
||||
ui_mainwindow.h \
|
||||
buildvbox.h \
|
||||
infoutils.h \
|
||||
qemusetting.h
|
||||
qemusetting.h \
|
||||
vbox.h \
|
||||
qemu.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp
|
||||
|
||||
buildvbox.o: buildvbox.cpp buildvbox.h \
|
||||
@@ -484,6 +667,9 @@ qemusetting.o: qemusetting.cpp qemusetting.h \
|
||||
infoutils.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qemusetting.o qemusetting.cpp
|
||||
|
||||
qrc_trans.o: qrc_trans.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_trans.o qrc_trans.cpp
|
||||
|
||||
qrc_图标.o: qrc_图标.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_图标.o qrc_图标.cpp
|
||||
|
||||
|
||||
BIN
VM-source/QEMU_AARCH64_EFI.fd
Normal file
BIN
VM-source/QEMU_AARCH64_EFI.fd
Normal file
Binary file not shown.
BIN
VM-source/QEMU_EFI_LOONG64_7.1.fd
Normal file
BIN
VM-source/QEMU_EFI_LOONG64_7.1.fd
Normal file
Binary file not shown.
6
VM-source/QemuSystemInstall.sh
Executable file
6
VM-source/QemuSystemInstall.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
sudo apt update
|
||||
sudo apt install qemu-system qemu-user qemu-efi qemu-efi-aarch64 qemu-efi-arm -y
|
||||
sudo apt install qemu-user-static binfmt-support qemu-system-gui -y
|
||||
echo 安装完成!按回车键退出
|
||||
read
|
||||
109
VM-source/StartVM.sh
Executable file
109
VM-source/StartVM.sh
Executable file
@@ -0,0 +1,109 @@
|
||||
#!/bin/bash
|
||||
# 使用系统默认的 bash 运行
|
||||
###########################################################################################
|
||||
# 作者:gfdgd xi
|
||||
# 版本:1.7.0
|
||||
# 更新时间:2022年07月15日
|
||||
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
|
||||
# 基于 Python3 的 tkinter 构建
|
||||
###########################################################################################
|
||||
cd `dirname $0`
|
||||
VBoxManage showvminfo Windows
|
||||
if [[ 0 == $? ]]; then
|
||||
# 检测到虚拟机存在,启动虚拟机
|
||||
VBoxManage startvm Windows > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
# 检查是否有 QEMU
|
||||
which qemu-system-x86_64
|
||||
if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
|
||||
if [[ -f "$HOME/.config/deepin-wine-runner/QemuSetting.json" ]]; then
|
||||
echo 有设置文件,读设置文件
|
||||
cd `dirname $0`
|
||||
python3 ./VM/StartQemu.py
|
||||
exit
|
||||
fi
|
||||
# 查看CPU个数
|
||||
CpuSocketNum=`cat /proc/cpuinfo | grep "cpu cores" | uniq | wc -l`
|
||||
# 查看CPU核心数
|
||||
CpuCoreNum=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
|
||||
# 查看逻辑CPU的个数
|
||||
CpuCount=`cat /proc/cpuinfo| grep "processor"| wc -l`
|
||||
|
||||
# 总内存大小GB
|
||||
MemTotal=`awk '($1 == "MemTotal:"){printf "%.2f\n",$2/1024/1024}' /proc/meminfo`
|
||||
use=$(echo "scale=4; $MemTotal / 3" | bc)
|
||||
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep amd64
|
||||
if [[ $? == 0 ]] || [[ ! -e ~/.config/deepin-wine-runner/QEMU-ARCH ]]; then
|
||||
# amd64 架构
|
||||
if [[ -f $HOME/.config/deepin-wine-runner/QEMU-EFI ]]; then
|
||||
echo 使用 UEFI 启动
|
||||
if [[ -f /usr/share/qemu/OVMF.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/qemu/OVMF.fd"
|
||||
else
|
||||
if [[ -f `dirname $0`/VM/OVMF.fd ]]; then
|
||||
qemuUEFI="--bios `dirname $0`/VM/OVMF.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
fi
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
|
||||
echo X86 架构,使用 kvm 加速
|
||||
qemu-system-x86_64 --enable-kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
echo 不使用 kvm 加速
|
||||
qemu-system-x86_64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
|
||||
exit
|
||||
fi
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep armhf
|
||||
if [[ $? == 0 ]]; then
|
||||
# armhf 架构
|
||||
# 寻找 UEFI 固件
|
||||
if [[ -f /usr/share/AAVMF/AAVMF32_CODE.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/AAVMF/AAVMF32_CODE.fd"
|
||||
else
|
||||
if [[ -f ./VM/AAVMF32_CODE.fd ]]; then
|
||||
qemuUEFI="--bios ./VM/AAVMF32_CODE.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||
qemu-system-arm --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
qemu-system-arm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep aarch64
|
||||
if [[ $? == 0 ]]; then
|
||||
# aarch64 架构
|
||||
# 寻找 UEFI 固件
|
||||
if [[ -f /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ]]; then
|
||||
qemuUEFI="--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd"
|
||||
else
|
||||
if [[ -f ./VM/QEMU_AARCH64_EFI.fd ]]; then
|
||||
qemuUEFI="--bios ./VM/QEMU_AARCH64_EFI.fd"
|
||||
fi
|
||||
fi
|
||||
echo $qemuUEFI
|
||||
./VM/kvm-ok
|
||||
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
|
||||
qemu-system-aarch64 --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
qemu-system-aarch64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
|
||||
exit
|
||||
fi
|
||||
|
||||
fi
|
||||
zenity --question --no-wrap --text="检查到您未创建所指定的虚拟机,是否创建虚拟机并继续?\n如果不创建将无法使用"
|
||||
if [[ 1 == $? ]]; then
|
||||
# 用户不想创建虚拟机,结束
|
||||
exit
|
||||
fi
|
||||
|
||||
./VM/VirtualMachine
|
||||
@@ -56,4 +56,9 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
!isEmpty(target.path): INSTALLS += target
|
||||
|
||||
RESOURCES += \
|
||||
trans.qrc \
|
||||
图标.qrc
|
||||
|
||||
DISTFILES += \
|
||||
en_US.qm \
|
||||
en_US.ts
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 7.0.1, 2023-08-09T22:56:49. -->
|
||||
<!-- Written by QtCreator 7.0.1, 2023-11-25T17:10:08. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
@@ -87,6 +87,171 @@
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">桌面</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">桌面</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b17c65ba-6912-41bf-b5c1-4c7446f6c967}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.1</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.6 in PATH (qt5)</value>
|
||||
@@ -96,7 +261,8 @@
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
@@ -161,14 +327,13 @@
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
|
||||
347
VM-source/VirtualMachine.pro.user.4ffd6df
Normal file
347
VM-source/VirtualMachine.pro.user.4ffd6df
Normal file
@@ -0,0 +1,347 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 7.0.1, 2023-11-07T19:30:53. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{4ffd6df9-1365-4837-81b1-582e0e2d1f21}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
|
||||
<value type="bool" key="AutoTest.Framework.Boost">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.CTest">false</value>
|
||||
<value type="bool" key="AutoTest.Framework.Catch">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.GTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
|
||||
<value type="int" key="AutoTest.RunAfterBuild">0</value>
|
||||
<value type="bool" key="AutoTest.UseGlobal">true</value>
|
||||
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
|
||||
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
|
||||
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.BuildSystem</value>
|
||||
<valuemap type="QVariantMap" key="ClangTools">
|
||||
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
|
||||
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||
<value type="int" key="ClangTools.ParallelJobs">2</value>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.6 in PATH (qt5)</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.6 in PATH (qt5)</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{ab20853c-9d79-473a-820e-8e95c145170e}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.1</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">桌面</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">桌面</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b17c65ba-6912-41bf-b5c1-4c7446f6c967}</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">2</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
34
VM-source/application-vnd.oasis.opendocument.text.svg
Normal file
34
VM-source/application-vnd.oasis.opendocument.text.svg
Normal file
@@ -0,0 +1,34 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" viewBox="0 0 128 128">
|
||||
<defs>
|
||||
<linearGradient id="x-office-document-c" x1="50%" x2="50%" y1="0%" y2="100%">
|
||||
<stop offset="0%" stop-color="#005CC2"/>
|
||||
<stop offset="100%" stop-color="#004DA3"/>
|
||||
</linearGradient>
|
||||
<path id="x-office-document-b" d="M84,95 C84,99.9705627 79.9705627,104 75,104 L9,104 C4.02943725,104 6.08718376e-16,99.9705627 0,95 L0,9 C-6.08718376e-16,4.02943725 4.02943725,9.13077564e-16 9,0 L58,0 L84,26 L84,95 Z"/>
|
||||
<filter id="x-office-document-a" width="127.4%" height="122.1%" x="-13.7%" y="-9.1%" filterUnits="objectBoundingBox">
|
||||
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"/>
|
||||
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="3.5"/>
|
||||
<feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0.22745098 0 0 0 0 0.494117647 0 0 0 0 0.960784314 0 0 0 0.2 0"/>
|
||||
</filter>
|
||||
<linearGradient id="x-office-document-f" x1="50%" x2="10.489%" y1="50%" y2="91.194%">
|
||||
<stop offset="0%" stop-color="#FFF" stop-opacity=".1"/>
|
||||
<stop offset="100%" stop-color="#FFF" stop-opacity=".3"/>
|
||||
</linearGradient>
|
||||
<path id="x-office-document-e" d="M58,0 L84,26 L67,26 C62.0294373,26 58,21.9705627 58,17 L58,0 L58,0 Z"/>
|
||||
<filter id="x-office-document-d" width="188.5%" height="188.5%" x="-44.2%" y="-36.5%" filterUnits="objectBoundingBox">
|
||||
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"/>
|
||||
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="3.5"/>
|
||||
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"/>
|
||||
<feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0"/>
|
||||
</filter>
|
||||
</defs>
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<g transform="translate(22 14)">
|
||||
<use fill="#000" filter="url(#x-office-document-a)" xlink:href="#x-office-document-b"/>
|
||||
<use fill="url(#x-office-document-c)" xlink:href="#x-office-document-b"/>
|
||||
<use fill="#000" filter="url(#x-office-document-d)" xlink:href="#x-office-document-e"/>
|
||||
<use fill="url(#x-office-document-f)" xlink:href="#x-office-document-e"/>
|
||||
</g>
|
||||
<path fill="#FFF" fill-opacity=".6" d="M92,50 L92,52 L36,52 L36,50 L92,50 Z M92,60 L92,62 L36,62 L36,60 L92,60 Z M92,70 L92,72 L36,72 L36,70 L92,70 Z M92,80 L92,82 L36,82 L36,80 L92,80 Z M92,90 L92,92 L36,92 L36,90 L92,90 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
12
VM-source/build.sh
Executable file
12
VM-source/build.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
#cd `dirname $0`
|
||||
bin=$1
|
||||
nasm -f bin $1 -o `basename $1`.bin
|
||||
if [[ $? != 0 ]];then
|
||||
exit
|
||||
fi
|
||||
sudo modprobe nbd 8
|
||||
sudo qemu-nbd `dirname $0`/test.qcow2 --connect /dev/nbd0
|
||||
sudo dd if=`basename $1`.bin of=/dev/nbd0
|
||||
sudo qemu-nbd -d /dev/nbd0
|
||||
kvm --hda `dirname $0`/test.qcow2 -rtc base=localtime
|
||||
@@ -81,30 +81,12 @@ int buildvbox::Download(QString url, QString path, QString fileName){
|
||||
}
|
||||
|
||||
buildvbox::buildvbox(QString isoPath, int id, int vm){
|
||||
/*if(vm == 1){
|
||||
QDir vboxPath(QDir::homePath() + "/VirtualBox VMs/Windows");
|
||||
if(vboxPath.exists()){
|
||||
qDebug("虚拟机存在,直接启动!");
|
||||
vbox vm("Windows");
|
||||
vm.Start();
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
QString programPath = QCoreApplication::applicationDirPath();
|
||||
|
||||
/*if(!QFile::exists(programPath + "/a.iso")){
|
||||
std::thread([=](){
|
||||
while(1){
|
||||
qDebug() << "a";
|
||||
}
|
||||
}).detach();
|
||||
}*/
|
||||
|
||||
QString net = GetNet();
|
||||
qDebug() << "使用网卡:" << net << endl;
|
||||
if(vm == 0){
|
||||
//vbox *box = new vbox("Window");
|
||||
//vbox vm("Windows");
|
||||
// Qemu
|
||||
qemu vm("Windows");
|
||||
bool setISOAlready = 0;
|
||||
switch (id) {
|
||||
@@ -147,11 +129,25 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
|
||||
vm.EnabledUEFI(true);
|
||||
setISOAlready = 1;
|
||||
break;
|
||||
case 8:
|
||||
vm.Create("WindowsNT_64");
|
||||
vm.SetDisplayMemory(32);
|
||||
vm.UseArmhfEFI();
|
||||
setISOAlready = 1;
|
||||
break;
|
||||
case 9:
|
||||
vm.Create("WindowsNT_64");
|
||||
vm.SetDisplayMemory(32);
|
||||
vm.UseAarch64EFI();
|
||||
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.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
|
||||
vm.MountMainDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
|
||||
if(!setISOAlready){
|
||||
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
|
||||
switch (id) {
|
||||
@@ -164,22 +160,12 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
|
||||
}
|
||||
}
|
||||
else{
|
||||
vm.AutoInstall(isoPath);
|
||||
//vm.AutoInstall(isoPath);
|
||||
if(isoPath != ""){
|
||||
vm.MountMainISO(isoPath);
|
||||
}
|
||||
|
||||
}
|
||||
/*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;
|
||||
}*/
|
||||
// 判断 VirtualBox Guest ISO 是否存在
|
||||
// 在的话直接挂载
|
||||
/*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());
|
||||
long memory = 0;
|
||||
@@ -187,7 +173,6 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
|
||||
long swap = 0;
|
||||
long swapAll = 0;
|
||||
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
|
||||
//memoryRate(memory, memoryAll, swap, swapAll);
|
||||
vm.SetMemory(memoryAll / 3 / 1024);
|
||||
vm.SetNetBridge(net);
|
||||
vm.EnabledAudio();
|
||||
@@ -199,13 +184,23 @@ buildvbox::buildvbox(QString isoPath, int id, int vm){
|
||||
vm.OpenUSB();
|
||||
vm.ShareFile("ROOT", "/");
|
||||
vm.ShareFile("HOME", QDir::homePath());
|
||||
switch(id){
|
||||
case 8:
|
||||
vm.StartArmhf();
|
||||
break;
|
||||
case 9:
|
||||
vm.StartAarch64();
|
||||
break;
|
||||
default:
|
||||
vm.Start();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else if(vm == 1){
|
||||
// ?
|
||||
//vbox *box = new vbox("Window");
|
||||
// VirtualBox
|
||||
vbox vm("Windows");
|
||||
//qemu vm("Windows");
|
||||
bool setISOAlready = 1;
|
||||
switch (id) {
|
||||
case 0:
|
||||
|
||||
BIN
VM-source/en_US.qm
Normal file
BIN
VM-source/en_US.qm
Normal file
Binary file not shown.
602
VM-source/en_US.ts
Normal file
602
VM-source/en_US.ts
Normal file
@@ -0,0 +1,602 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en" sourcelanguage="zh_CN">
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="14"/>
|
||||
<source>Wine 运行器虚拟机安装工具</source>
|
||||
<translation>Wine Runner Virtual Machine Install Tools</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="32"/>
|
||||
<location filename="mainwindow.ui" line="35"/>
|
||||
<source>设置</source>
|
||||
<translation>Setting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="43"/>
|
||||
<source>镜像路径:</source>
|
||||
<translation>ISO FilePath:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="50"/>
|
||||
<source>请选择系统镜像</source>
|
||||
<translation>Please choose or input system image</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="57"/>
|
||||
<source>浏览……</source>
|
||||
<translation>browser...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="68"/>
|
||||
<source>系统版本:</source>
|
||||
<translation>System Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="75"/>
|
||||
<location filename="mainwindow.ui" line="79"/>
|
||||
<source>Windows 7 32 位(支持自动安装)</source>
|
||||
<translation>Windows 7 32bit (support auto installing)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="84"/>
|
||||
<source>Windows 7 64 位(支持自动安装)</source>
|
||||
<translation>Windows 7 64bit (support auto installing)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="89"/>
|
||||
<source>其它 Windows 系统(不支持自动安装,传统启动,推荐 Windows 7 及以下)</source>
|
||||
<translation>Other system (unsupport auto installing and using legacy boot)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="94"/>
|
||||
<source>其他 Windows 系统(不支持自动安装,UEFI 启动,推荐 Windows 8 及以上)</source>
|
||||
<translation>Other system (unsupport auto installing and using UEFI boot)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="99"/>
|
||||
<source>安装 WIndows 11(不支持自动安装)</source>
|
||||
<translation>Install windows (unsupport auto installing)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="104"/>
|
||||
<source>安装其他 Windows XP(支持自动安装,只支持 VirtualBox)</source>
|
||||
<translation>Install other Windows XP (support auto installing but only support VirtualBox)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="109"/>
|
||||
<source>安装其他 Windows (支持自动安装,传统启动,只支持 VirtualBox)</source>
|
||||
<translation>Install Other Windows (support auto installing and using legacy boot but only support VirtualBox)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="114"/>
|
||||
<source>安装其他 Windows(支持自动安装,UEFI 启动,只支持 VirtualBox)</source>
|
||||
<translation>Install Other Windows (support auto installing and using UEFI boot but only support VirtualBox)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="119"/>
|
||||
<source>安装 arm32 系统(只支持 Qemu)</source>
|
||||
<translation>Install arm32 system (only support Qemu/KVM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="124"/>
|
||||
<source>安装 arm64 系统(只支持 Qemu)</source>
|
||||
<translation>Install arm64 system (only support Qemu/KVM)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="136"/>
|
||||
<source>虚拟机(建议默认):</source>
|
||||
<translation>Virtual Machine:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="143"/>
|
||||
<location filename="mainwindow.ui" line="153"/>
|
||||
<source>qemu/kvm</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="158"/>
|
||||
<source>VirtualBox</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="183"/>
|
||||
<source>安装 Qemu</source>
|
||||
<translation>Install Qemu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="190"/>
|
||||
<source>kvm 测试</source>
|
||||
<translation>kvm test</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="197"/>
|
||||
<source>Qemu虚拟机设置</source>
|
||||
<translation>Qemu Setting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="204"/>
|
||||
<source>添加/覆盖Qemu磁盘</source>
|
||||
<translation>Add/Replace Qemu Disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="211"/>
|
||||
<source>导出Qemu磁盘</source>
|
||||
<translation>Export Qemu Disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="218"/>
|
||||
<source>移除Qemu磁盘</source>
|
||||
<translation>Delete Qemu Disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="225"/>
|
||||
<source>获取VirtualBox</source>
|
||||
<translation>Get VirtualBox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="232"/>
|
||||
<source>安装</source>
|
||||
<translation>Install</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="241"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,需要安装/降级到以下链接的版本:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">蓝奏云:</span><a href="https://gfdgdxi.lanzoue.com/b01rk9wza"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gfdgdxi.lanzoue.com/b01rk9wza</span></a><span style=" font-size:11pt;"> 密码:6wvf</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu</span></p>
|
||||
<hr />
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">123 网盘链接:</span><a href="https://www.123pan.com/s/pDSKVv-oypWv"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-oypWv</span></a></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">迅雷网盘:</span><a href="https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5</span></a><span style=" font-size:10pt;"> 提取码:35e5</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">百度网盘:</span><a href="https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y</span></a><span style=" font-size:10pt;"> 提取码: me4y</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061</span></a><span style=" font-size:10pt;"> (访问密码: 2061)</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第一项,一般推荐这个)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></a></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第二项)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></a></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt; font-weight:600;">常用 Windows 软件:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">百度网盘:链接: </span><a href="https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p</span></a><span style=" font-size:11pt;"> 提取码: 7s2p </span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">123网盘:</span><a href="https://www.123pan.com/s/pDSKVv-uCBWv.html"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-uCBWv.html</span></a></p>
|
||||
<hr /></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="274"/>
|
||||
<source>安装/使用帮助</source>
|
||||
<translation>Document</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="283"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">给小白的一段话</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">只限使用 VirtualBox</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; font-style:italic; text-decoration: underline;">如果你是用非 X86 PC,那暂时只能使用 qemu(没 kvm),且跨架构的性能损失很大,推荐使用 Windows XP 而非 Windows 7</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">qemu则是 Ctrl+Alt+G</span> )</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qemu 可以安装 Virtio 以优化体验,下载链接:<a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/</span></a></p>
|
||||
<hr />
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装是否需要人工进行操作?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果您下载的镜像本程序支持,则大部分不用,已经尽量省去了让新手头疼的虚拟机程序安装,创建、设置虚拟机,虚拟磁盘分区,寻找原版镜像文件等内容</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712191756.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">但有些设置依旧需要人工自行设置,例如安装界面密钥的输入、系统的激活(涉及版权问题,不会考虑省略)、增强功能的安装、需要使用的软件等等</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712192850.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712193527.png" /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">什么样的镜像本程序(可能)不支持自动安装?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">非 Windows 7 镜像可能不支持自动安装(纯的 Windows 7 企业版镜像可能不支持自动安装),不保证系统能自动安装成功,例如 Windows XP、Windows 10、Deepin、Ubuntu 等等</p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">默认的虚拟机设置不习惯怎么改?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">1、打开启动器,打开 Oracle VM VirtualBox 程序</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">2、选择名字为“Windows”的虚拟机,然后在右边点击设置</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Manager_20220712223602.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">3、在这里修改即可</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox_20220712223705.png" /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装加强功能有什么好处?(只限使用 VirtualBox)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1、支持鼠标自由从虚拟机和实体机切换</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2、支持虚拟机根据窗口大小自动设置分辨率</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3、支持文件共享、剪切板共享、文件拖放</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4、支持无缝模式</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_选择区域_20220712224639.png" /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">如何安装加强功能?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1、点击“设备”=》“加强功能”</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图_VirtualBox Machine_20220712142929.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2、打开“计算机”,找到名为“VirtualBox Guest Additions”的光盘,双击进入,然后双击打开名为“VBoxWindowsAdditions”的程序</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143006.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3、在弹出的界面点击“是”</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143018.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">4、一直点“Next”</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143029.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143037.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">5、全部选择,然后点击“Install”进行安装</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143044.png" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">6、等待安装完毕后,选择“Reboot now”然后点击“Finish”重启此虚拟机即可安装成功(选择“Reboot now”并点“Finish”会自动重新启动)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox Machine_20220712143103.png" /></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="364"/>
|
||||
<location filename="mainwindow.ui" line="482"/>
|
||||
<source>关于</source>
|
||||
<translation>About</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="421"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此为 wine 运行器附属组件(虽然违背了“Wine Is Not An Emulator”&lt;Wine 不是一个模拟器&gt;的原意),旨在能更加完美、简单的运行 Windows 应用</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">本程序基于 C++ Qt、Python 和 Virtualbox 制作,通过运行安装 Windows 操作系统的虚拟机实现在 Linux 运行 Windows exe 程序的功能。</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">基于 GPL V3 协议开源</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">项目地址:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitee:<a href="https://gitee.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Github:<a href="https://github.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">该组件制作者:gfdgd xi</p>
|
||||
<hr />
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="463"/>
|
||||
<source>虚拟机</source>
|
||||
<translation>Virtual Machine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="477"/>
|
||||
<source>退出</source>
|
||||
<translation>Exit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="487"/>
|
||||
<source>导入/覆盖</source>
|
||||
<translation>Add/Replace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="492"/>
|
||||
<source>导出</source>
|
||||
<translation>Export</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="497"/>
|
||||
<location filename="mainwindow.cpp" line="442"/>
|
||||
<source>虚拟机安装日志</source>
|
||||
<translation>Virtual Machine log (Installing)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="502"/>
|
||||
<location filename="mainwindow.cpp" line="408"/>
|
||||
<source>虚拟机运行日志</source>
|
||||
<translation>Virtual Machine log (Running)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="507"/>
|
||||
<source>虚拟机测试(X86、Qemu)</source>
|
||||
<translation>Qemu Test (x86, qemu)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="512"/>
|
||||
<source>强制停止 VirtualBox</source>
|
||||
<translation>Stop VirtualBox with forced</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="517"/>
|
||||
<source>强制停止 Qemu</source>
|
||||
<translation>Stop Qemu with forced</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="88"/>
|
||||
<source>Wine 运行器虚拟机安装工具 </source>
|
||||
<translation>Wine Runner Virtual Machine Install Tools </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="90"/>
|
||||
<source><p>程序版本号:</source>
|
||||
<translation><p>Program Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="90"/>
|
||||
<source></p><p>安装包构建时间:</source>
|
||||
<translation></p><p>Package build time:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="90"/>
|
||||
<source></p><p>该组件构建时间:</source>
|
||||
<translation></p><p>Tools builded time:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="92"/>
|
||||
<source><hr/><h1>谢明列表</h1></source>
|
||||
<translation><hr/><h1>Thank</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="179"/>
|
||||
<location filename="mainwindow.cpp" line="186"/>
|
||||
<location filename="mainwindow.cpp" line="193"/>
|
||||
<location filename="mainwindow.cpp" line="200"/>
|
||||
<location filename="mainwindow.cpp" line="215"/>
|
||||
<location filename="mainwindow.cpp" line="222"/>
|
||||
<location filename="mainwindow.cpp" line="229"/>
|
||||
<location filename="mainwindow.cpp" line="248"/>
|
||||
<location filename="mainwindow.cpp" line="254"/>
|
||||
<location filename="mainwindow.cpp" line="263"/>
|
||||
<location filename="mainwindow.cpp" line="307"/>
|
||||
<location filename="mainwindow.cpp" line="322"/>
|
||||
<location filename="mainwindow.cpp" line="328"/>
|
||||
<location filename="mainwindow.cpp" line="332"/>
|
||||
<location filename="mainwindow.cpp" line="338"/>
|
||||
<location filename="mainwindow.cpp" line="357"/>
|
||||
<location filename="mainwindow.cpp" line="360"/>
|
||||
<location filename="mainwindow.cpp" line="364"/>
|
||||
<location filename="mainwindow.cpp" line="367"/>
|
||||
<location filename="mainwindow.cpp" line="392"/>
|
||||
<location filename="mainwindow.cpp" line="404"/>
|
||||
<location filename="mainwindow.cpp" line="438"/>
|
||||
<source>提示</source>
|
||||
<translation>Tips</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="179"/>
|
||||
<source>您似乎没有安装 Qemu,是否继续创建虚拟机?</source>
|
||||
<translation>Can't find qemu, do you want to countinue to create the virtual machine?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="186"/>
|
||||
<source>您似乎没有安装 VBox,是否继续创建虚拟机?</source>
|
||||
<translation>Can't find VirtualBox, do you want to countinue to create the virtual machine?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="193"/>
|
||||
<source>无法检测到 qemu-system-arm,是否继续创建虚拟机?</source>
|
||||
<translation>Can't find the qemu-system-arm, do you want to countinue to create the virtual machine?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="200"/>
|
||||
<source>无法检测到 qemu-system-aarch64,是否继续创建虚拟机?</source>
|
||||
<translation>Can't find the qemu-system-aarch64, do you want to countinue to create the virtual machine?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="215"/>
|
||||
<source>似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机?
|
||||
缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source>
|
||||
<translation>Can't find the Windows7X86Auto.iso, do you want to countinue to create the virtual machine?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="222"/>
|
||||
<source>似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机?
|
||||
缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source>
|
||||
<translation>Can't find the Windows7X64Auto.iso, do you want to countinue to create the virtual machine?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="229"/>
|
||||
<source>似乎无法找到 UEFI 固件,是否继续创建虚拟机?
|
||||
Qemu 固件可以在“安装 Qemu”处安装</source>
|
||||
<translation>Can't find the UEFI boot, do you want to countinue to create the virtual machine?
|
||||
You can get qemu efi from "Install Qemu" button</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="248"/>
|
||||
<source>Qemu 不支持该选项!</source>
|
||||
<translation>Qemu unsupport it</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="254"/>
|
||||
<location filename="mainwindow.cpp" line="263"/>
|
||||
<source>VirtualBox 不支持该选项!</source>
|
||||
<translation>VirtualBox unsupport it</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="278"/>
|
||||
<source>提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志</source>
|
||||
<translation>Tips: It trying to start virtualbox now, you should view the log in the tools menu if you can't see the virtual machine window a few time late</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="307"/>
|
||||
<source>磁盘文件已存在,是否覆盖?
|
||||
覆盖后将无法恢复!</source>
|
||||
<translation>Qemu Disk is exist. Do you want to replace?
|
||||
You will not recovery after you replacing!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="311"/>
|
||||
<source>选择 Qemu 镜像</source>
|
||||
<translation>Choose Qemu Disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="311"/>
|
||||
<source>Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)</source>
|
||||
<translation>Qemu Disk(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;All files(*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="322"/>
|
||||
<location filename="mainwindow.cpp" line="328"/>
|
||||
<source>添加错误!</source>
|
||||
<translation>Add error!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="332"/>
|
||||
<source>添加完成!</source>
|
||||
<translation>Add finishing!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="338"/>
|
||||
<source>不存在磁盘文件,无法导出</source>
|
||||
<translation>Can't export because can't find the qemu disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="357"/>
|
||||
<source>不存在磁盘文件,无法移除</source>
|
||||
<translation>Can't delete because can't find the qemu disk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="360"/>
|
||||
<source>是否删除?
|
||||
删除后将无法恢复!</source>
|
||||
<translation>Do you want to delete?
|
||||
It can't recovery after you deleting!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="364"/>
|
||||
<source>移除失败</source>
|
||||
<translation>Delete error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="367"/>
|
||||
<source>移除成功</source>
|
||||
<translation>Delete successfully</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="373"/>
|
||||
<location filename="mainwindow.cpp" line="389"/>
|
||||
<source>错误</source>
|
||||
<translation>Error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="373"/>
|
||||
<source>未识别到命令 kvm-ok
|
||||
可以使用命令 sudo apt install cpu-checker 安装</source>
|
||||
<translation>Can't find the command "kvm-ok" and you can use command "sudo apt install cpu-checker" to install</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="383"/>
|
||||
<source>使用</source>
|
||||
<translation>Use</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="389"/>
|
||||
<source>您的系统不支持使用 kvm:
|
||||
</source>
|
||||
<translation>Your system can't use kvm:
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="392"/>
|
||||
<source>您的系统支持使用 kvm:
|
||||
</source>
|
||||
<translation>Your system can use kvm:
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="404"/>
|
||||
<location filename="mainwindow.cpp" line="438"/>
|
||||
<source>没有日志文件</source>
|
||||
<translation>Can't find the log file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="408"/>
|
||||
<source>运行日志</source>
|
||||
<translation>Running file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="442"/>
|
||||
<source>安装日志</source>
|
||||
<translation>Installed log</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QemuSetting</name>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="14"/>
|
||||
<source>设置</source>
|
||||
<translation>Setting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="35"/>
|
||||
<source><h3>远程服务</h3></source>
|
||||
<translation><h3>Remote Service</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="42"/>
|
||||
<source>VNC服务端口:</source>
|
||||
<translation>VNC service port:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="49"/>
|
||||
<source>开启 rdp 服务映射</source>
|
||||
<translation>Enable rdp port</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="56"/>
|
||||
<source>内存大小(MB):</source>
|
||||
<translation>Memory size (MB):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="90"/>
|
||||
<source><h3>基础设置</h3></source>
|
||||
<translation><h3>Base setting</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="97"/>
|
||||
<source>开启VNC服务</source>
|
||||
<translation>Enable VNC service</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="104"/>
|
||||
<source>开启 kvm 加速</source>
|
||||
<translation>Enable kvm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="111"/>
|
||||
<source>CPU核心数:</source>
|
||||
<translation>CPU cores:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="125"/>
|
||||
<source>开启声音</source>
|
||||
<translation>Enable sound</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="145"/>
|
||||
<source>保存</source>
|
||||
<translation>Save</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="158"/>
|
||||
<source>取消</source>
|
||||
<translation>Cancel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="171"/>
|
||||
<source>重置
|
||||
默认</source>
|
||||
<translation>Resetting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="185"/>
|
||||
<source>获取
|
||||
Wine
|
||||
运行器</source>
|
||||
<translation>Get Wine
|
||||
Runner</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
132
VM-source/kvm-ok
Executable file
132
VM-source/kvm-ok
Executable file
@@ -0,0 +1,132 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# kvm-ok - check whether the CPU we're running on supports KVM acceleration
|
||||
# Copyright (C) 2008-2010 Canonical Ltd.
|
||||
#
|
||||
# Authors:
|
||||
# Dustin Kirkland <kirkland@canonical.com>
|
||||
# Kees Cook <kees.cook@canonical.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License version 3,
|
||||
# as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
set -e
|
||||
|
||||
assert_root() {
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "INFO: For more detailed results, you should run this as root"
|
||||
echo "HINT: sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
verdict() {
|
||||
# Print verdict
|
||||
if [ "$1" = "0" ]; then
|
||||
echo "KVM acceleration can be used"
|
||||
exit 0
|
||||
else
|
||||
echo "KVM acceleration can NOT be used"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
ARM_CPU_PART_CORTEX_A15="0xc0f" # <asm/cputype.h>
|
||||
|
||||
# check cpu flags for capability
|
||||
case "$(uname -m)" in
|
||||
armv7l)
|
||||
if egrep -m1 -w '^CPU part[[:blank:]]*:' /proc/cpuinfo | \
|
||||
egrep -wq "$ARM_CPU_PART_CORTEX_A15"; then
|
||||
virt="ARM"
|
||||
kvm_mod="kvm"
|
||||
fi
|
||||
;;
|
||||
aarch64)
|
||||
virt="ARM"
|
||||
kvm_mod="kvm"
|
||||
;;
|
||||
ppc64le|ppc64|s390x)
|
||||
# FIXME: Assume that all POWER and z/Systems are KVM capable
|
||||
virt="generic"
|
||||
kvm_mod="kvm"
|
||||
;;
|
||||
*)
|
||||
virt=$(egrep -m1 -w '^flags[[:blank:]]*:' /proc/cpuinfo | egrep -wo '(vmx|svm)') || true
|
||||
[ "$virt" = "vmx" ] && kvm_mod="kvm_intel"
|
||||
[ "$virt" = "svm" ] && kvm_mod="kvm_amd"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$virt" ]; then
|
||||
echo "INFO: Your CPU does not support KVM extensions"
|
||||
assert_root
|
||||
verdict 1
|
||||
fi
|
||||
|
||||
# Now, check that the device exists
|
||||
if [ -e /dev/kvm ]; then
|
||||
echo "INFO: /dev/kvm exists"
|
||||
verdict 0
|
||||
else
|
||||
echo "INFO: /dev/kvm does not exist"
|
||||
echo "HINT: sudo modprobe $kvm_mod"
|
||||
fi
|
||||
|
||||
assert_root
|
||||
|
||||
# Prepare MSR access
|
||||
msr="/dev/cpu/0/msr"
|
||||
if [ ! -r "$msr" ]; then
|
||||
modprobe msr
|
||||
fi
|
||||
if [ -e "$msr" -a ! -r "$msr" ]; then
|
||||
echo "You must be root to run this check." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "INFO: Your CPU supports KVM extensions"
|
||||
|
||||
disabled=0
|
||||
# check brand-specific registers
|
||||
if [ "$virt" = "vmx" ]; then
|
||||
BIT=$(rdmsr --bitfield 0:0 0x3a 2>/dev/null || true)
|
||||
if [ "$BIT" = "1" ]; then
|
||||
# and FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX clear (no tboot)
|
||||
BIT=$(rdmsr --bitfield 2:2 0x3a 2>/dev/null || true)
|
||||
if [ "$BIT" = "0" ]; then
|
||||
disabled=1
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [ "$virt" = "svm" ]; then
|
||||
BIT=$(rdmsr --bitfield 4:4 0xc0010114 2>/dev/null || true)
|
||||
if [ "$BIT" = "1" ]; then
|
||||
disabled=1
|
||||
fi
|
||||
elif [ "$virt" = "ARM" ]; then
|
||||
# Should also test that we booted in HYP mode, if detectable
|
||||
:
|
||||
elif [ "$virt" = "generic" ]; then
|
||||
:
|
||||
else
|
||||
echo "FAIL: Unknown virtualization extension: $virt"
|
||||
verdict 1
|
||||
fi
|
||||
|
||||
if [ "$disabled" -eq 1 ]; then
|
||||
echo "INFO: KVM ($virt) is disabled by your BIOS"
|
||||
echo "HINT: Enter your BIOS setup and enable Virtualization Technology (VT),"
|
||||
echo " and then hard poweroff/poweron your system"
|
||||
verdict 1
|
||||
fi
|
||||
|
||||
verdict 0
|
||||
@@ -24,9 +24,13 @@ int main(int argc, char *argv[])
|
||||
QApplication a(argc, argv);
|
||||
// 语言
|
||||
QTranslator *trans = new QTranslator(&a);
|
||||
trans->load("virtualmachine-en_US.qm");
|
||||
if(!QProcessEnvironment::systemEnvironment().value("LANG").contains("zh_CN")){
|
||||
trans->load(":/en_US.qm");
|
||||
}
|
||||
|
||||
a.installTranslator(trans);
|
||||
|
||||
|
||||
// 判断是否为 !amd64(无需判断了)
|
||||
/*if(GetRunCommand("arch").replace(" ", "").replace("\n", "") != QString("x86_64")){
|
||||
QMessageBox::critical(NULL, "错误", "此程序不支持非 X86 架构,立即退出");
|
||||
|
||||
@@ -21,13 +21,18 @@
|
||||
#include <QDesktopServices>
|
||||
#include <QMessageBox>
|
||||
#include <iostream>
|
||||
#include <QIODevice>
|
||||
#include <QInputDialog>
|
||||
#include "qemusetting.h"
|
||||
#include "vbox.h"
|
||||
#include "qemu.h"
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
//QApplication a(argc, argv);
|
||||
ui->tabWidget->setTabPosition(QTabWidget::West); // 标签靠左
|
||||
// 选择最优虚拟机
|
||||
if(!system("which qemu-system-x86_64")){
|
||||
@@ -43,7 +48,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
QLoggingCategory::defaultCategory()->setEnabled(QtDebugMsg, true);
|
||||
// 判断是否安装 vbox(无需判断)
|
||||
/*if(system("which VBoxManage")){
|
||||
if(QMessageBox::question(this, "提示", "检测到您似乎没有安装 VirtualBox,立即安装?") == QMessageBox::Yes){
|
||||
if(QMessageBox::question(this, tr("提示"), "检测到您似乎没有安装 VirtualBox,立即安装?") == QMessageBox::Yes){
|
||||
system("xdg-open https://www.virtualbox.org/wiki/Linux_Downloads");
|
||||
}
|
||||
}*/
|
||||
@@ -80,11 +85,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
|
||||
}
|
||||
// 设置程序标题
|
||||
this->setWindowTitle("Windows 应用适配工具 " + versionValue.toString());
|
||||
this->setWindowTitle(tr("Wine 运行器虚拟机安装工具 ") + versionValue.toString());
|
||||
// 读取谢明列表
|
||||
ui->textBrowser_2->setHtml("<p>程序版本号:" + versionValue.toString() + ", " + GetRunCommand("arch") + "</p><p>安装包构建时间:" + buildTime.toString() + "</p><p>该组件构建时间:"
|
||||
ui->textBrowser_2->setHtml(tr("<p>程序版本号:") + versionValue.toString() + ", " + GetRunCommand("arch") + tr("</p><p>安装包构建时间:") + buildTime.toString() + tr("</p><p>该组件构建时间:")
|
||||
+ __DATE__ + " " + __TIME__ + "</p>" + ui->textBrowser_2->toHtml() +
|
||||
"<hr/><h1>谢明列表</h1>" + thankText);
|
||||
tr("<hr/><h1>谢明列表</h1>") + thankText);
|
||||
connect(ui->textBrowser_2, &QTextBrowser::anchorClicked, this, [=](const QUrl &link){
|
||||
QDesktopServices::openUrl(link);
|
||||
});
|
||||
@@ -94,6 +99,10 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
connect(ui->textBrowser_3, &QTextBrowser::anchorClicked, this, [=](const QUrl &link){
|
||||
QDesktopServices::openUrl(link);
|
||||
});
|
||||
// 设置标签栏图标
|
||||
ui->tabWidget->setTabIcon(1, QIcon::fromTheme(":/application-vnd.oasis.opendocument.text.svg"));
|
||||
// 设置窗口图标
|
||||
this->setWindowIcon(QIcon(":/deepin-wine-runner.svg"));
|
||||
|
||||
}
|
||||
|
||||
@@ -129,9 +138,12 @@ void MainWindow::ShowCPUMessage(){
|
||||
QString::number(memory * 100 / memoryAll) + "% " + QString::number(memory / 1024) + "MB/" + QString::number(memoryAll / 1024) + "MB" +
|
||||
" 开机时间: " + QString::number(dd) + "天 " + QString::number(hh) + ":" + QString::number(MM) + ":" + QString::number(ss);
|
||||
//qDebug() << cpuAll << " " << cpuFree;
|
||||
if(!stopShowTime){
|
||||
ui->CPUValue->showMessage(info, 5000);
|
||||
}
|
||||
m_cpuAll = cpuAll;
|
||||
m_cpuFree = cpuFree;
|
||||
ui->retranslateUi(this);
|
||||
}
|
||||
|
||||
QString MainWindow::GetRunCommand(QString command){
|
||||
@@ -164,25 +176,57 @@ void MainWindow::on_install_clicked()
|
||||
switch (ui->vmChooser->currentIndex()) {
|
||||
case 0:
|
||||
if(system("which qemu-system-x86_64")){
|
||||
if(QMessageBox::question(this, "提示", "您似乎没有安装 Qemu,是否继续创建虚拟机?") == QMessageBox::No){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("您似乎没有安装 Qemu,是否继续创建虚拟机?")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if(system("which vboxmanage")){
|
||||
if(QMessageBox::question(this, "提示", "您似乎没有安装 VBox,是否继续创建虚拟机?") == QMessageBox::No){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("您似乎没有安装 VBox,是否继续创建虚拟机?")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if(system("which qemu-system-arm")){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("无法检测到 qemu-system-arm,是否继续创建虚拟机?")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if(system("which qemu-system-aarch64")){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("无法检测到 qemu-system-aarch64,是否继续创建虚拟机?")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
QFile file(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-EFI");
|
||||
QFile archFile(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-ARCH");
|
||||
QDir dir(QDir::homePath() + "/.config/deepin-wine-runner");
|
||||
archFile.open(QIODevice::WriteOnly);
|
||||
archFile.write("amd64");
|
||||
archFile.close();
|
||||
switch (ui->systemVersion->currentIndex()) {
|
||||
case 0:
|
||||
if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X86Auto.iso")){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X64Auto.iso")){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if(!QFile::exists("/usr/share/qemu/OVMF.fd") && !QFile::exists(QCoreApplication::applicationDirPath() + "/OVMF.fd") && ui->vmChooser->currentIndex() == 0){
|
||||
if(QMessageBox::question(this, "提示", "似乎无法找到 UEFI 固件,是否继续创建虚拟机?\nQemu 固件可以在“安装 Qemu”处安装") == QMessageBox::No){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 UEFI 固件,是否继续创建虚拟机?\nQemu 固件可以在“安装 Qemu”处安装")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -201,16 +245,37 @@ void MainWindow::on_install_clicked()
|
||||
case 6:
|
||||
case 7:
|
||||
if(ui->vmChooser->currentIndex() == 0){
|
||||
QMessageBox::warning(this, "提示", "Qemu 不支持该选项!");
|
||||
QMessageBox::warning(this, tr("提示"), tr("Qemu 不支持该选项!"));
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if(ui->vmChooser->currentIndex() == 1){
|
||||
QMessageBox::warning(this, tr("提示"), tr("VirtualBox 不支持该选项!"));
|
||||
return;
|
||||
}
|
||||
archFile.open(QIODevice::WriteOnly);
|
||||
archFile.write("armhf");
|
||||
archFile.close();
|
||||
break;
|
||||
case 9:
|
||||
if(ui->vmChooser->currentIndex() == 1){
|
||||
QMessageBox::warning(this, tr("提示"), tr("VirtualBox 不支持该选项!"));
|
||||
return;
|
||||
}
|
||||
archFile.open(QIODevice::WriteOnly);
|
||||
archFile.write("aarch64");
|
||||
archFile.close();
|
||||
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");
|
||||
}
|
||||
}
|
||||
buildvbox(ui->isoPath->text(), ui->systemVersion->currentIndex(), ui->vmChooser->currentIndex());
|
||||
ui->tabWidget->setCurrentIndex(1);
|
||||
stopShowTime = 1;
|
||||
ui->CPUValue->showMessage(tr("提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志"), 10000);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -239,11 +304,11 @@ void MainWindow::on_qemuSetting_clicked()
|
||||
void MainWindow::on_addQemuDisk_triggered()
|
||||
{
|
||||
if(QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
|
||||
if(QMessageBox::question(this, "提示", "磁盘文件已存在,是否覆盖?\n覆盖后将无法恢复!") == QMessageBox::No){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("磁盘文件已存在,是否覆盖?\n覆盖后将无法恢复!")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
}
|
||||
QString path = QFileDialog::getOpenFileName(this, "选择 Qemu 镜像", QDir::homePath(), "Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)");
|
||||
QString path = QFileDialog::getOpenFileName(this, tr("选择 Qemu 镜像"), QDir::homePath(), tr("Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)"));
|
||||
qDebug() << path;
|
||||
if(path == ""){
|
||||
return;
|
||||
@@ -254,23 +319,23 @@ void MainWindow::on_addQemuDisk_triggered()
|
||||
}
|
||||
if(QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
|
||||
if(!QFile::remove(QDir::homePath() + "/Qemu/Windows/Windows.qcow2") | !QFile::copy(path, QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
|
||||
QMessageBox::critical(this, "提示", "添加错误!");
|
||||
QMessageBox::critical(this, tr("提示"), tr("添加错误!"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(!QFile::copy(path, QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
|
||||
QMessageBox::critical(this, "提示", "添加错误!");
|
||||
QMessageBox::critical(this, tr("提示"), tr("添加错误!"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
QMessageBox::information(this, "提示", "添加完成!");
|
||||
QMessageBox::information(this, tr("提示"), tr("添加完成!"));
|
||||
}
|
||||
|
||||
void MainWindow::on_delQemuDisk_triggered()
|
||||
{
|
||||
if(!QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
|
||||
QMessageBox::information(this, "提示", "不存在磁盘文件,无法导出");
|
||||
QMessageBox::information(this, tr("提示"), tr("不存在磁盘文件,无法导出"));
|
||||
return;
|
||||
}
|
||||
std::system(("xdg-open \"" + QDir::homePath() + "/Qemu/Windows/\"").toUtf8());
|
||||
@@ -289,15 +354,106 @@ void MainWindow::on_saveQemuDiskButton_clicked()
|
||||
void MainWindow::on_delQemuDiskButton_clicked()
|
||||
{
|
||||
if(!QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
|
||||
QMessageBox::information(this, "提示", "不存在磁盘文件,无法移除");
|
||||
QMessageBox::information(this, tr("提示"), tr("不存在磁盘文件,无法移除"));
|
||||
return;
|
||||
}
|
||||
if(QMessageBox::question(this, "提示", "是否删除?\n删除后将无法恢复!") == QMessageBox::No){
|
||||
if(QMessageBox::question(this, tr("提示"), tr("是否删除?\n删除后将无法恢复!")) == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
if(!QFile::remove(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
|
||||
QMessageBox::critical(this, "提示", "移除失败");
|
||||
QMessageBox::critical(this, tr("提示"), tr("移除失败"));
|
||||
return;
|
||||
}
|
||||
QMessageBox::information(this, "提示", "移除成功");
|
||||
QMessageBox::information(this, tr("提示"), tr("移除成功"));
|
||||
}
|
||||
|
||||
void MainWindow::on_kvmTest_clicked()
|
||||
{
|
||||
if(system("which kvm-ok")&& !QFile::exists(QCoreApplication::applicationDirPath() + "/kvm-ok")){
|
||||
QMessageBox::critical(this, tr("错误"), tr("未识别到命令 kvm-ok\n可以使用命令 sudo apt install cpu-checker 安装"));
|
||||
return;
|
||||
}
|
||||
QString kvm_ok_path = "kvm-ok";
|
||||
if(!system("which kvm-ok")){
|
||||
kvm_ok_path = "kvm-ok";
|
||||
}
|
||||
else if(QFile::exists(QCoreApplication::applicationDirPath() + "/kvm-ok")){
|
||||
kvm_ok_path = QCoreApplication::applicationDirPath() + "/kvm-ok";
|
||||
}
|
||||
qDebug() << tr("使用") << kvm_ok_path;
|
||||
QProcess process;
|
||||
process.start(kvm_ok_path);
|
||||
process.waitForStarted();
|
||||
process.waitForFinished();
|
||||
if(process.exitCode()){
|
||||
QMessageBox::critical(this, tr("错误"), tr("您的系统不支持使用 kvm:\n") + process.readAll());
|
||||
return;
|
||||
}
|
||||
QMessageBox::information(this, tr("提示"), tr("您的系统支持使用 kvm:\n") + process.readAll());
|
||||
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_actionVMLog_triggered(){}
|
||||
|
||||
|
||||
void MainWindow::on_actionVMRunlLog_triggered()
|
||||
{
|
||||
QFile file("/tmp/windows-virtual-machine-installer-for-wine-runner-run.log");
|
||||
if(!file.exists()){
|
||||
QMessageBox::information(this, tr("提示"), tr("没有日志文件"));
|
||||
return;
|
||||
}
|
||||
file.open(QIODevice::ReadOnly);
|
||||
QInputDialog::getMultiLineText(this, tr("运行日志"), tr("虚拟机运行日志"), file.readAll());
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_actionVMTest_triggered()
|
||||
{
|
||||
// 运行 Demo
|
||||
if(QFile::exists(QCoreApplication::applicationDirPath() + "/test.qcow2")){
|
||||
// 优先使用本地的磁盘
|
||||
system(("qemu-system-i386 --hda '" + QCoreApplication::applicationDirPath() + "/test.qcow2' -rtc base=localtime > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1").toUtf8());
|
||||
return;
|
||||
}
|
||||
// 写入 disk 文件
|
||||
QFile file(":/TestDisk/test.qcow2");
|
||||
// 计算随机数
|
||||
QFile writeFile("/tmp/indows-virtual-machine-installer-for-wine-runner-test-disk.qcow2");
|
||||
file.open(QIODevice::ReadOnly);
|
||||
writeFile.open(QIODevice::WriteOnly);
|
||||
writeFile.write(file.readAll());
|
||||
file.close();
|
||||
writeFile.close();
|
||||
system("qemu-system-i386 --hda /tmp/indows-virtual-machine-installer-for-wine-runner-test-disk.qcow2 -rtc base=localtime > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1");
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_actionVMInstallLog_triggered()
|
||||
{
|
||||
QFile file("/tmp/windows-virtual-machine-installer-for-wine-runner-install.log");
|
||||
if(!file.exists()){
|
||||
QMessageBox::information(this, tr("提示"), tr("没有日志文件"));
|
||||
return;
|
||||
}
|
||||
file.open(QIODevice::ReadOnly);
|
||||
QInputDialog::getMultiLineText(this, tr("安装日志"), tr("虚拟机安装日志"),file.readAll());
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_action_StopVirtualBox_triggered()
|
||||
{
|
||||
vbox vmControl("");
|
||||
vmControl.Stop();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_action_StopQemu_triggered()
|
||||
{
|
||||
qemu vmControl("");
|
||||
vmControl.Stop();
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,22 @@ private slots:
|
||||
|
||||
void on_delQemuDiskButton_clicked();
|
||||
|
||||
void on_kvmTest_clicked();
|
||||
|
||||
void on_actionVMLog_triggered();
|
||||
|
||||
void on_actionVMRunlLog_triggered();
|
||||
|
||||
void on_actionVMTest_triggered();
|
||||
|
||||
void on_actionVMInstallLog_triggered();
|
||||
|
||||
void on_action_StopVirtualBox_triggered();
|
||||
|
||||
void on_action_StopQemu_triggered();
|
||||
|
||||
private:
|
||||
bool stopShowTime = 0;
|
||||
Ui::MainWindow *ui;
|
||||
long m_cpuAll;
|
||||
long m_cpuFree;
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Windows 应用适配工具</string>
|
||||
<string>Wine 运行器虚拟机安装工具</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset>
|
||||
@@ -114,6 +114,16 @@
|
||||
<string>安装其他 Windows(支持自动安装,UEFI 启动,只支持 VirtualBox)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>安装 arm32 系统(只支持 Qemu)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>安装 arm64 系统(只支持 Qemu)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -174,6 +184,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="kvmTest">
|
||||
<property name="text">
|
||||
<string>kvm 测试</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="qemuSetting">
|
||||
<property name="text">
|
||||
@@ -225,12 +242,24 @@
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">使用迅雷或者网盘下载以下任意一个链接然后在上面选择即可:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,需要安装/降级到以下链接的版本:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">蓝奏云:</span><a href="https://gfdgdxi.lanzoue.com/b01rk9wza"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gfdgdxi.lanzoue.com/b01rk9wza</span></a><span style=" font-size:11pt;"> 密码:6wvf</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu</span></p>
|
||||
<hr />
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">123 网盘链接:</span><a href="https://www.123pan.com/s/pDSKVv-oypWv"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-oypWv</span></a></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">迅雷网盘:</span><a href="https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5</span></a><span style=" font-size:10pt;"> 提取码:35e5</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">百度网盘:</span><a href="https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y</span></a><span style=" font-size:10pt;"> 提取码: me4y</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061</span></a><span style=" font-size:10pt;"> (访问密码: 2061)</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第一项,一般推荐这个)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></a></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第二项)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></a></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt; font-weight:600;">常用 Windows 软件:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">百度网盘:链接: </span><a href="https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p</span></a><span style=" font-size:11pt;"> 提取码: 7s2p </span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">123网盘:</span><a href="https://www.123pan.com/s/pDSKVv-uCBWv.html"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-uCBWv.html</span></a></p>
|
||||
<hr /></body></html></string>
|
||||
</property>
|
||||
<property name="openLinks">
|
||||
@@ -261,6 +290,8 @@ p, li { white-space: pre-wrap; }
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">qemu则是 Ctrl+Alt+G</span> )</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qemu 可以安装 Virtio 以优化体验,下载链接:<a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/</span></a></p>
|
||||
<hr />
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
@@ -397,12 +428,10 @@ p, li { white-space: pre-wrap; }
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">项目地址:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitee:<a href="https://gitee.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Github:<a href="https://github.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitlink:<a href="https://gitlink.org.cn/gfdgd_xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitlink.org.cn/gfdgd_xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">该组件制作者:gfdgd xi</p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">参考文献:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Droid Sans Mono','monospace','monospace'; font-size:11pt; color:#6a9955;">https://juejin.cn/post/7080484519328874510</span></p></body></html></string>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
||||
</property>
|
||||
<property name="openLinks">
|
||||
<bool>false</bool>
|
||||
@@ -420,6 +449,29 @@ p, li { white-space: pre-wrap; }
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menuBar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1058</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuVM">
|
||||
<property name="title">
|
||||
<string>虚拟机</string>
|
||||
</property>
|
||||
<addaction name="actionVMInstallLog"/>
|
||||
<addaction name="actionVMRunlLog"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionVMTest"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_StopVirtualBox"/>
|
||||
<addaction name="action_StopQemu"/>
|
||||
</widget>
|
||||
<addaction name="menuVM"/>
|
||||
</widget>
|
||||
<action name="action">
|
||||
<property name="text">
|
||||
<string>退出</string>
|
||||
@@ -440,6 +492,31 @@ p, li { white-space: pre-wrap; }
|
||||
<string>导出</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionVMInstallLog">
|
||||
<property name="text">
|
||||
<string>虚拟机安装日志</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionVMRunlLog">
|
||||
<property name="text">
|
||||
<string>虚拟机运行日志</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionVMTest">
|
||||
<property name="text">
|
||||
<string>虚拟机测试(X86、Qemu)</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_StopVirtualBox">
|
||||
<property name="text">
|
||||
<string>强制停止 VirtualBox</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_StopQemu">
|
||||
<property name="text">
|
||||
<string>强制停止 Qemu</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources/>
|
||||
|
||||
350
VM-source/mainwindow_ui.py
Normal file
350
VM-source/mainwindow_ui.py
Normal file
@@ -0,0 +1,350 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Form implementation generated from reading ui file '/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/mainwindow.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.15.6
|
||||
#
|
||||
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
||||
# run again. Do not edit this file unless you know what you are doing.
|
||||
|
||||
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(1058, 512)
|
||||
icon = QtGui.QIcon()
|
||||
icon.addPixmap(QtGui.QPixmap(":/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
MainWindow.setWindowIcon(icon)
|
||||
self.centralWidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralWidget.setObjectName("centralWidget")
|
||||
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget)
|
||||
self.horizontalLayout.setContentsMargins(11, 11, 11, 11)
|
||||
self.horizontalLayout.setSpacing(6)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.tabWidget = QtWidgets.QTabWidget(self.centralWidget)
|
||||
self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded)
|
||||
self.tabWidget.setObjectName("tabWidget")
|
||||
self.tab = QtWidgets.QWidget()
|
||||
self.tab.setObjectName("tab")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.tab)
|
||||
self.verticalLayout.setContentsMargins(11, 11, 11, 11)
|
||||
self.verticalLayout.setSpacing(6)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_2.setSpacing(6)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.label = QtWidgets.QLabel(self.tab)
|
||||
self.label.setObjectName("label")
|
||||
self.horizontalLayout_2.addWidget(self.label)
|
||||
self.isoPath = QtWidgets.QLineEdit(self.tab)
|
||||
self.isoPath.setObjectName("isoPath")
|
||||
self.horizontalLayout_2.addWidget(self.isoPath)
|
||||
self.browser = QtWidgets.QPushButton(self.tab)
|
||||
self.browser.setObjectName("browser")
|
||||
self.horizontalLayout_2.addWidget(self.browser)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_2)
|
||||
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_3.setSpacing(6)
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.label_2 = QtWidgets.QLabel(self.tab)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.horizontalLayout_3.addWidget(self.label_2)
|
||||
self.systemVersion = QtWidgets.QComboBox(self.tab)
|
||||
self.systemVersion.setObjectName("systemVersion")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.systemVersion.addItem("")
|
||||
self.horizontalLayout_3.addWidget(self.systemVersion)
|
||||
self.horizontalLayout_3.setStretch(1, 1)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_3)
|
||||
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_7.setSpacing(6)
|
||||
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
|
||||
self.label_4 = QtWidgets.QLabel(self.tab)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.horizontalLayout_7.addWidget(self.label_4)
|
||||
self.vmChooser = QtWidgets.QComboBox(self.tab)
|
||||
self.vmChooser.setDuplicatesEnabled(False)
|
||||
self.vmChooser.setObjectName("vmChooser")
|
||||
self.vmChooser.addItem("")
|
||||
self.vmChooser.addItem("")
|
||||
self.horizontalLayout_7.addWidget(self.vmChooser)
|
||||
self.horizontalLayout_7.setStretch(1, 1)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_7)
|
||||
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_4.setSpacing(6)
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout_4.addItem(spacerItem)
|
||||
self.getQemu = QtWidgets.QPushButton(self.tab)
|
||||
self.getQemu.setObjectName("getQemu")
|
||||
self.horizontalLayout_4.addWidget(self.getQemu)
|
||||
self.kvmTest = QtWidgets.QPushButton(self.tab)
|
||||
self.kvmTest.setObjectName("kvmTest")
|
||||
self.horizontalLayout_4.addWidget(self.kvmTest)
|
||||
self.qemuSetting = QtWidgets.QPushButton(self.tab)
|
||||
self.qemuSetting.setObjectName("qemuSetting")
|
||||
self.horizontalLayout_4.addWidget(self.qemuSetting)
|
||||
self.addQemuDiskButton = QtWidgets.QPushButton(self.tab)
|
||||
self.addQemuDiskButton.setObjectName("addQemuDiskButton")
|
||||
self.horizontalLayout_4.addWidget(self.addQemuDiskButton)
|
||||
self.saveQemuDiskButton = QtWidgets.QPushButton(self.tab)
|
||||
self.saveQemuDiskButton.setObjectName("saveQemuDiskButton")
|
||||
self.horizontalLayout_4.addWidget(self.saveQemuDiskButton)
|
||||
self.delQemuDiskButton = QtWidgets.QPushButton(self.tab)
|
||||
self.delQemuDiskButton.setObjectName("delQemuDiskButton")
|
||||
self.horizontalLayout_4.addWidget(self.delQemuDiskButton)
|
||||
self.getvbox = QtWidgets.QPushButton(self.tab)
|
||||
self.getvbox.setObjectName("getvbox")
|
||||
self.horizontalLayout_4.addWidget(self.getvbox)
|
||||
self.install = QtWidgets.QPushButton(self.tab)
|
||||
self.install.setObjectName("install")
|
||||
self.horizontalLayout_4.addWidget(self.install)
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_4)
|
||||
self.textBrowser_3 = QtWidgets.QTextBrowser(self.tab)
|
||||
self.textBrowser_3.setOpenLinks(False)
|
||||
self.textBrowser_3.setObjectName("textBrowser_3")
|
||||
self.verticalLayout.addWidget(self.textBrowser_3)
|
||||
self.tabWidget.addTab(self.tab, "")
|
||||
self.tab_3 = QtWidgets.QWidget()
|
||||
self.tab_3.setObjectName("tab_3")
|
||||
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.tab_3)
|
||||
self.horizontalLayout_5.setContentsMargins(11, 11, 11, 11)
|
||||
self.horizontalLayout_5.setSpacing(6)
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.textBrowser = QtWidgets.QTextBrowser(self.tab_3)
|
||||
self.textBrowser.setUndoRedoEnabled(False)
|
||||
self.textBrowser.setOpenLinks(False)
|
||||
self.textBrowser.setObjectName("textBrowser")
|
||||
self.horizontalLayout_5.addWidget(self.textBrowser)
|
||||
self.tabWidget.addTab(self.tab_3, "")
|
||||
self.tab_2 = QtWidgets.QWidget()
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.tab_2.sizePolicy().hasHeightForWidth())
|
||||
self.tab_2.setSizePolicy(sizePolicy)
|
||||
self.tab_2.setObjectName("tab_2")
|
||||
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.tab_2)
|
||||
self.horizontalLayout_6.setContentsMargins(11, 11, 11, 11)
|
||||
self.horizontalLayout_6.setSpacing(6)
|
||||
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
||||
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
|
||||
self.verticalLayout_3.setSpacing(6)
|
||||
self.verticalLayout_3.setObjectName("verticalLayout_3")
|
||||
self.label_3 = QtWidgets.QLabel(self.tab_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
|
||||
self.label_3.setSizePolicy(sizePolicy)
|
||||
self.label_3.setMinimumSize(QtCore.QSize(200, 200))
|
||||
self.label_3.setMaximumSize(QtCore.QSize(200, 200))
|
||||
self.label_3.setStyleSheet("border-image: url(:/deepin-wine-runner.png);")
|
||||
self.label_3.setText("")
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.verticalLayout_3.addWidget(self.label_3)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_3.addItem(spacerItem1)
|
||||
self.horizontalLayout_6.addLayout(self.verticalLayout_3)
|
||||
self.textBrowser_2 = QtWidgets.QTextBrowser(self.tab_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.textBrowser_2.sizePolicy().hasHeightForWidth())
|
||||
self.textBrowser_2.setSizePolicy(sizePolicy)
|
||||
self.textBrowser_2.setOpenLinks(False)
|
||||
self.textBrowser_2.setObjectName("textBrowser_2")
|
||||
self.horizontalLayout_6.addWidget(self.textBrowser_2)
|
||||
self.tabWidget.addTab(self.tab_2, "")
|
||||
self.horizontalLayout.addWidget(self.tabWidget)
|
||||
MainWindow.setCentralWidget(self.centralWidget)
|
||||
self.CPUValue = QtWidgets.QStatusBar(MainWindow)
|
||||
self.CPUValue.setStatusTip("")
|
||||
self.CPUValue.setObjectName("CPUValue")
|
||||
MainWindow.setStatusBar(self.CPUValue)
|
||||
self.menuBar = QtWidgets.QMenuBar(MainWindow)
|
||||
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1058, 36))
|
||||
self.menuBar.setObjectName("menuBar")
|
||||
self.menuVM = QtWidgets.QMenu(self.menuBar)
|
||||
self.menuVM.setObjectName("menuVM")
|
||||
MainWindow.setMenuBar(self.menuBar)
|
||||
self.action = QtWidgets.QAction(MainWindow)
|
||||
self.action.setObjectName("action")
|
||||
self.action_2 = QtWidgets.QAction(MainWindow)
|
||||
self.action_2.setObjectName("action_2")
|
||||
self.addQemuDisk = QtWidgets.QAction(MainWindow)
|
||||
self.addQemuDisk.setObjectName("addQemuDisk")
|
||||
self.delQemuDisk = QtWidgets.QAction(MainWindow)
|
||||
self.delQemuDisk.setObjectName("delQemuDisk")
|
||||
self.actionVMInstallLog = QtWidgets.QAction(MainWindow)
|
||||
self.actionVMInstallLog.setObjectName("actionVMInstallLog")
|
||||
self.actionVMRunlLog = QtWidgets.QAction(MainWindow)
|
||||
self.actionVMRunlLog.setObjectName("actionVMRunlLog")
|
||||
self.actionVMTest = QtWidgets.QAction(MainWindow)
|
||||
self.actionVMTest.setObjectName("actionVMTest")
|
||||
self.menuVM.addAction(self.actionVMInstallLog)
|
||||
self.menuVM.addAction(self.actionVMRunlLog)
|
||||
self.menuVM.addSeparator()
|
||||
self.menuVM.addAction(self.actionVMTest)
|
||||
self.menuBar.addAction(self.menuVM.menuAction())
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
self.tabWidget.setCurrentIndex(0)
|
||||
self.vmChooser.setCurrentIndex(0)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "Wine 运行器虚拟机安装工具"))
|
||||
self.label.setText(_translate("MainWindow", "镜像路径:"))
|
||||
self.isoPath.setPlaceholderText(_translate("MainWindow", "请选择系统镜像"))
|
||||
self.browser.setText(_translate("MainWindow", "浏览……"))
|
||||
self.label_2.setText(_translate("MainWindow", "系统版本:"))
|
||||
self.systemVersion.setCurrentText(_translate("MainWindow", "Windows 7 32 位(支持自动安装)"))
|
||||
self.systemVersion.setItemText(0, _translate("MainWindow", "Windows 7 32 位(支持自动安装)"))
|
||||
self.systemVersion.setItemText(1, _translate("MainWindow", "Windows 7 64 位(支持自动安装)"))
|
||||
self.systemVersion.setItemText(2, _translate("MainWindow", "其它 Windows 系统(不支持自动安装,传统启动,推荐 Windows 7 及以下)"))
|
||||
self.systemVersion.setItemText(3, _translate("MainWindow", "其他 Windows 系统(不支持自动安装,UEFI 启动,推荐 Windows 8 及以上)"))
|
||||
self.systemVersion.setItemText(4, _translate("MainWindow", "安装 WIndows 11(不支持自动安装)"))
|
||||
self.systemVersion.setItemText(5, _translate("MainWindow", "安装其他 Windows XP(支持自动安装,只支持 VirtualBox)"))
|
||||
self.systemVersion.setItemText(6, _translate("MainWindow", "安装其他 Windows (支持自动安装,传统启动,只支持 VirtualBox)"))
|
||||
self.systemVersion.setItemText(7, _translate("MainWindow", "安装其他 Windows(支持自动安装,UEFI 启动,只支持 VirtualBox)"))
|
||||
self.systemVersion.setItemText(8, _translate("MainWindow", "安装 arm32 系统(只支持 Qemu)"))
|
||||
self.systemVersion.setItemText(9, _translate("MainWindow", "安装 arm64 系统(只支持 Qemu)"))
|
||||
self.label_4.setText(_translate("MainWindow", "虚拟机(建议默认):"))
|
||||
self.vmChooser.setCurrentText(_translate("MainWindow", "qemu/kvm"))
|
||||
self.vmChooser.setItemText(0, _translate("MainWindow", "qemu/kvm"))
|
||||
self.vmChooser.setItemText(1, _translate("MainWindow", "VirtualBox"))
|
||||
self.getQemu.setText(_translate("MainWindow", "安装 Qemu"))
|
||||
self.kvmTest.setText(_translate("MainWindow", "kvm 测试"))
|
||||
self.qemuSetting.setText(_translate("MainWindow", "Qemu虚拟机设置"))
|
||||
self.addQemuDiskButton.setText(_translate("MainWindow", "添加/覆盖Qemu磁盘"))
|
||||
self.saveQemuDiskButton.setText(_translate("MainWindow", "导出Qemu磁盘"))
|
||||
self.delQemuDiskButton.setText(_translate("MainWindow", "移除Qemu磁盘"))
|
||||
self.getvbox.setText(_translate("MainWindow", "获取VirtualBox"))
|
||||
self.install.setText(_translate("MainWindow", "安装"))
|
||||
self.textBrowser_3.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'Noto Sans CJK SC\'; font-size:10.5pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,需要安装/降级到以下链接的版本:</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">蓝奏云:</span><a href=\"https://gfdgdxi.lanzoue.com/b01rk9wza\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://gfdgdxi.lanzoue.com/b01rk9wza</span></a><span style=\" font-size:11pt;\"> 密码:6wvf</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">诚通网盘:</span><a href=\"http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061</span></a><span style=\" font-size:11pt;\"> (访问密码: 2061)</span></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu</span></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">123 网盘链接:</span><a href=\"https://www.123pan.com/s/pDSKVv-oypWv\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://www.123pan.com/s/pDSKVv-oypWv</span></a></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">迅雷网盘:</span><a href=\"https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5</span></a><span style=\" font-size:10pt;\"> 提取码:35e5</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">百度网盘:</span><a href=\"https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y</span></a><span style=\" font-size:10pt;\"> 提取码: me4y</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">诚通网盘:</span><a href=\"http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061</span></a><span style=\" font-size:10pt;\"> (访问密码: 2061)</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">(如果下载这个,系统版本选第一项,一般推荐这个)</span><a href=\"ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></a></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">(如果下载这个,系统版本选第二项)</span><a href=\"ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></a></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt; font-weight:600;\">常用 Windows 软件:</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">百度网盘:链接: </span><a href=\"https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p</span></a><span style=\" font-size:11pt;\"> 提取码: 7s2p </span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">诚通网盘:</span><a href=\"http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061</span></a><span style=\" font-size:11pt;\"> (访问密码: 2061)</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">123网盘:</span><a href=\"https://www.123pan.com/s/pDSKVv-uCBWv.html\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://www.123pan.com/s/pDSKVv-uCBWv.html</span></a></p>\n"
|
||||
"<hr /></body></html>"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "设置"))
|
||||
self.tabWidget.setTabToolTip(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "设置"))
|
||||
self.textBrowser.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'Noto Sans CJK SC\'; font-size:10.5pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">给小白的一段话</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了,<span style=\" font-weight:600; font-style:italic; text-decoration: underline;\">只限使用 VirtualBox</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600; font-style:italic; text-decoration: underline;\">如果你是用非 X86 PC,那暂时只能使用 qemu(没 kvm),且跨架构的性能损失很大,推荐使用 Windows XP 而非 Windows 7</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600; text-decoration: underline;\">(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki)</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,<span style=\" font-weight:600; font-style:italic; text-decoration: underline;\">qemu则是 Ctrl+Alt+G</span> )</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Qemu 可以安装 Virtio 以优化体验,下载链接:<a href=\"https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/</span></a></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">安装是否需要人工进行操作?</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">如果您下载的镜像本程序支持,则大部分不用,已经尽量省去了让新手头疼的虚拟机程序安装,创建、设置虚拟机,虚拟磁盘分区,寻找原版镜像文件等内容</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712191756.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">但有些设置依旧需要人工自行设置,例如安装界面密钥的输入、系统的激活(涉及版权问题,不会考虑省略)、增强功能的安装、需要使用的软件等等</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712192850.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712193527.png\" /></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">什么样的镜像本程序(可能)不支持自动安装?</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">非 Windows 7 镜像可能不支持自动安装(纯的 Windows 7 企业版镜像可能不支持自动安装),不保证系统能自动安装成功,例如 Windows XP、Windows 10、Deepin、Ubuntu 等等</p>\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">默认的虚拟机设置不习惯怎么改?</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">1、打开启动器,打开 Oracle VM VirtualBox 程序</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">2、选择名字为“Windows”的虚拟机,然后在右边点击设置</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Manager_20220712223602.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">3、在这里修改即可</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox_20220712223705.png\" /></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">安装加强功能有什么好处?(只限使用 VirtualBox)</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">1、支持鼠标自由从虚拟机和实体机切换</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">2、支持虚拟机根据窗口大小自动设置分辨率</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">3、支持文件共享、剪切板共享、文件拖放</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">4、支持无缝模式</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_选择区域_20220712224639.png\" /></p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">如何安装加强功能?</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">1、点击“设备”=》“加强功能”</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图_VirtualBox Machine_20220712142929.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">2、打开“计算机”,找到名为“VirtualBox Guest Additions”的光盘,双击进入,然后双击打开名为“VBoxWindowsAdditions”的程序</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143006.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">3、在弹出的界面点击“是”</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143018.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">4、一直点“Next”</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143029.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143037.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">5、全部选择,然后点击“Install”进行安装</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143044.png\" /></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">6、等待安装完毕后,选择“Reboot now”然后点击“Finish”重启此虚拟机即可安装成功(选择“Reboot now”并点“Finish”会自动重新启动)</span></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143103.png\" /></p></body></html>"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "安装/使用帮助"))
|
||||
self.textBrowser_2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'Noto Sans CJK SC\'; font-size:10.5pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">此为 wine 运行器附属组件(虽然违背了“Wine Is Not An Emulator”<Wine 不是一个模拟器>的原意),旨在能更加完美、简单的运行 Windows 应用</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">本程序基于 C++ Qt、Python 和 Virtualbox 制作,通过运行安装 Windows 操作系统的虚拟机实现在 Linux 运行 Windows exe 程序的功能。</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">基于 GPL V3 协议开源</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">项目地址:</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"> Gitee:<a href=\"https://gitee.com/gfdgd-xi/deep-wine-runner\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"> Github:<a href=\"https://github.com/gfdgd-xi/deep-wine-runner\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</p>\n"
|
||||
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">该组件制作者:gfdgd xi</p>\n"
|
||||
"<hr />\n"
|
||||
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "关于"))
|
||||
self.menuVM.setTitle(_translate("MainWindow", "虚拟机"))
|
||||
self.action.setText(_translate("MainWindow", "退出"))
|
||||
self.action_2.setText(_translate("MainWindow", "关于"))
|
||||
self.addQemuDisk.setText(_translate("MainWindow", "导入/覆盖"))
|
||||
self.delQemuDisk.setText(_translate("MainWindow", "导出"))
|
||||
self.actionVMInstallLog.setText(_translate("MainWindow", "虚拟机安装日志"))
|
||||
self.actionVMRunlLog.setText(_translate("MainWindow", "虚拟机运行日志"))
|
||||
self.actionVMTest.setText(_translate("MainWindow", "虚拟机测试(X86、Qemu)"))
|
||||
@@ -9,6 +9,8 @@
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
qemu::qemu(QString name, QString managerPath) {
|
||||
if(!QFile::exists(name)){
|
||||
@@ -72,16 +74,39 @@ int qemu::SetRemote(bool setting){
|
||||
}
|
||||
int qemu::SetRemoteConnectSetting(int port){
|
||||
return 0;
|
||||
}
|
||||
int qemu::MountMainDisk(QString diskPath){
|
||||
commandOption += " --hda '" + diskPath + "' ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::StartArmhf(){
|
||||
qDebug() << commandOption;
|
||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||
return system(("qemu-system-arm -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||
}
|
||||
return system(("qemu-system-arm --boot d -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||
}
|
||||
int qemu::StartAarch64(){
|
||||
qDebug() << commandOption;
|
||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||
return system(("qemu-system-aarch64 --boot d -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||
}
|
||||
return system(("qemu-system-aarch64 --boot d -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||
}
|
||||
int qemu::StartLoong64(){
|
||||
|
||||
}
|
||||
int qemu::Start(bool unShown){
|
||||
qDebug() << commandOption;
|
||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64"){
|
||||
return system(("kvm -cpu host " + commandOption + " &").toLatin1());
|
||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
|
||||
return system(("qemu-system-x86_64 --boot d -display vnc=:5 -display gtk --enable-kvm -cpu host " + commandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||
}
|
||||
return system(("qemu-system-x86_64 -nic model=rtl8139 " + commandOption + " &").toLatin1());
|
||||
return system(("qemu-system-x86_64 --boot d -display vnc=:5 -display gtk -nic model=rtl8139 " + commandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
|
||||
}
|
||||
int qemu::Stop(){
|
||||
system("killall qemu-system-x86_64 -9");
|
||||
system("killall qemu-system-aarch64 -9");
|
||||
system("killall qemu-system-arm -9");
|
||||
system("killall kvm -9");
|
||||
return 0;
|
||||
}
|
||||
@@ -118,6 +143,34 @@ int qemu::SetKeyboardPS2(){
|
||||
}
|
||||
int qemu::OpenUSB(){
|
||||
return 0;
|
||||
}
|
||||
int qemu::UseAarch64EFI(){
|
||||
if(QFile::exists("/usr/share/qemu-efi-aarch64/QEMU_EFI.fd")){
|
||||
commandOption += "--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ";
|
||||
return 0;
|
||||
}
|
||||
if(QFile::exists(QCoreApplication::applicationDirPath() + "/QEMU_AARCH64_EFI.fd")){
|
||||
commandOption += "--bios '" + QCoreApplication::applicationDirPath() + "/QEMU_AARCH64_EFI.fd' ";
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
int qemu::UseArmhfEFI(){
|
||||
if(QFile::exists("/usr/share/AAVMF/AAVMF32_CODE.fd")){
|
||||
commandOption += "--bios /usr/share/AAVMF/AAVMF32_CODE.fd ";
|
||||
return 0;
|
||||
}
|
||||
if(QFile::exists(QCoreApplication::applicationDirPath() + "/AAVMF32_CODE.fd")){
|
||||
commandOption += "--bios '" + QCoreApplication::applicationDirPath() + "/AAVMF32_CODE.fd' ";
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
int qemu::UseLoongarch64EFI(){
|
||||
|
||||
}
|
||||
int qemu::UseOtherEFI(QString fdFilePath){
|
||||
|
||||
}
|
||||
int qemu::EnabledUEFI(bool status){
|
||||
if(!status){
|
||||
@@ -133,6 +186,10 @@ int qemu::EnabledUEFI(bool status){
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
int qemu::MountMainISO(QString isoPath){
|
||||
commandOption += "--cdrom '" + isoPath + "' ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::AutoInstall(QString iso){
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,10 @@ public:
|
||||
int SetRemote(bool setting);
|
||||
int SetRemoteConnectSetting(int port=5540);
|
||||
int Start(bool unShown=false);
|
||||
int StartArmhf();
|
||||
int StartAarch64();
|
||||
int StartLoong64();
|
||||
int MountMainDisk(QString diskPath);
|
||||
int Stop();
|
||||
int Delete();
|
||||
int SetDisplayMemory(int memory);
|
||||
@@ -40,6 +44,11 @@ public:
|
||||
int OpenUSB();
|
||||
int EnabledUEFI(bool status);
|
||||
int AutoInstall(QString iso);
|
||||
int MountMainISO(QString isoPath);
|
||||
int UseAarch64EFI();
|
||||
int UseArmhfEFI();
|
||||
int UseLoongarch64EFI();
|
||||
int UseOtherEFI(QString fdFilePath);
|
||||
private:
|
||||
QString commandOption = "";
|
||||
|
||||
|
||||
289
VM-source/test-kvm.asm
Normal file
289
VM-source/test-kvm.asm
Normal file
@@ -0,0 +1,289 @@
|
||||
mov ax,0xb800
|
||||
mov es,ax
|
||||
; 清屏
|
||||
mov cx,80*25
|
||||
clean:
|
||||
mov di,cx
|
||||
add di,di
|
||||
mov byte [es:di],''
|
||||
add di,1
|
||||
mov byte [es:di],0x0F
|
||||
loop clean
|
||||
; 显示上方白条
|
||||
; 移除(0,0)的S字符
|
||||
mov byte [es:0x00],''
|
||||
mov cx,80*2-1
|
||||
mov di,0
|
||||
push cx
|
||||
headtitle:
|
||||
mov di,cx
|
||||
mov byte [es:di],0xF0
|
||||
; 写入空字符
|
||||
add di,di
|
||||
mov byte [es:di],''
|
||||
;inc cx
|
||||
;sub cx,1
|
||||
loop headtitle
|
||||
|
||||
xor di,di
|
||||
pop cx
|
||||
; 显示下方白条
|
||||
tailtitle:
|
||||
mov di,cx
|
||||
add di,80*2*24
|
||||
mov byte [es:di],0xF0
|
||||
; 写入空字符
|
||||
mov di,cx
|
||||
add di,di
|
||||
add di,80*2*24
|
||||
mov byte [es:di],''
|
||||
loop tailtitle
|
||||
; 在第一行写入文本
|
||||
jmp near showHeadText
|
||||
headText: db 'Wine Runner Webiste:http://gitee.com/gfdgd-xi/deep-wine-runner'
|
||||
showHeadText:
|
||||
; 虽然可以简单粗暴的用 movsw,但是会出现问题
|
||||
mov cx,showHeadText-headText
|
||||
mov ax,0x7c0
|
||||
mov ds,ax ; 定位到汇编程序所在的内存地址
|
||||
showHeadTextLoop:
|
||||
mov dx,cx
|
||||
mov di,cx
|
||||
add di,di
|
||||
mov si,headText
|
||||
sub dx,1
|
||||
add si,dx
|
||||
; inc si
|
||||
; mov al,1000
|
||||
mov al,[ds:si]
|
||||
mov byte [es:di],al
|
||||
loop showHeadTextLoop
|
||||
jmp near showTailText
|
||||
tailText: db '2020~Now gfdgd xi'
|
||||
showTailText:
|
||||
mov cx,showTailText-tailText
|
||||
mov ax,0x7c0
|
||||
mov ds,ax
|
||||
showTailTextLoop:
|
||||
mov dx,cx
|
||||
mov di,cx
|
||||
add di,di
|
||||
add di,80*2*24
|
||||
mov si,tailText
|
||||
sub dx,1
|
||||
add si,dx
|
||||
mov al,[ds:si]
|
||||
mov byte [es:di],al
|
||||
loop showTailTextLoop
|
||||
|
||||
; 显示中部提示文本
|
||||
jmp near showCenterText
|
||||
centerTextScreenSize:
|
||||
; 第一位是行数
|
||||
; 第二位是单行偏移量
|
||||
db 1, -1
|
||||
centerText:
|
||||
db 'Mode: Real Mode Demo', 0x0A
|
||||
db 'Bit: 16', 0x0A
|
||||
db 'Virtual Machine: qemu-system-i386'
|
||||
db 0x03 ; 结束符
|
||||
showCenterText:
|
||||
centerTextLong equ showCenterText-centerText
|
||||
mov cx,centerTextLong
|
||||
xor ax,ax
|
||||
loopShowCenterText:
|
||||
jmp near addScreenLineFinish
|
||||
addScreenLine:
|
||||
; 如果检测到换行符
|
||||
mov dx, [centerTextScreenSize]
|
||||
add dx,1
|
||||
mov [centerTextScreenSize], dx
|
||||
dec cx
|
||||
mov al,-1
|
||||
mov [centerTextScreenSize+1],al
|
||||
; 行数+1,偏移量设为 -1(从头开始)
|
||||
;ret
|
||||
addScreenLineFinish:
|
||||
; 偏移量 + 1
|
||||
mov al,[centerTextScreenSize+1]
|
||||
add al,1
|
||||
mov [centerTextScreenSize+1],al
|
||||
mov di,centerText
|
||||
add di,centerTextLong
|
||||
sub di,cx
|
||||
mov bl,[di]
|
||||
|
||||
; 判断是不是结束符
|
||||
cmp bl,0x03
|
||||
je showCenterTextEnd
|
||||
|
||||
; 判断是不是换行符
|
||||
cmp bl,0x0A
|
||||
je addScreenLine ; 换行符检测
|
||||
|
||||
xor ah,ah ; 清空高位
|
||||
add al,al
|
||||
mov di,ax
|
||||
|
||||
; 计算显示位置
|
||||
xor dx,dx
|
||||
mov dl,[centerTextScreenSize]
|
||||
mov ax,80
|
||||
mul dx
|
||||
mov dx,2
|
||||
mul dx
|
||||
add ax,2
|
||||
add di,ax
|
||||
|
||||
; 显示
|
||||
mov byte [es:di], bl
|
||||
loop loopShowCenterText
|
||||
|
||||
showCenterTextEnd:
|
||||
|
||||
;mov ax,[cs:0x100]
|
||||
;mov dx,[cs:0x102]
|
||||
; mov bx,16
|
||||
; div bx
|
||||
; mov ds,ax
|
||||
; mov es,ax
|
||||
;xor di,di
|
||||
;mov si,1
|
||||
;xor ds,ds
|
||||
;mov bx,512
|
||||
;xor bx,bx
|
||||
;call read_hard_disk_0
|
||||
|
||||
|
||||
get_data:
|
||||
mov di,80*2*25-2
|
||||
|
||||
; 读取秒
|
||||
mov al,0x00
|
||||
call read_time
|
||||
mov byte [es:di-4],':'
|
||||
mov byte [es:di-2],ah
|
||||
mov byte [es:di],al
|
||||
; 读取分钟
|
||||
mov al,0x02
|
||||
call read_time
|
||||
mov byte [es:di-10],':'
|
||||
mov byte [es:di-8],ah
|
||||
mov byte [es:di-6],al
|
||||
; 读取小时
|
||||
mov al,0x04
|
||||
call read_time
|
||||
mov byte [es:di-14],ah
|
||||
mov byte [es:di-12],al
|
||||
; 读取日
|
||||
mov al,0x07
|
||||
call read_time
|
||||
mov byte [es:di-22],'.'
|
||||
mov byte [es:di-20],ah
|
||||
mov byte [es:di-18],al
|
||||
; 读取月
|
||||
mov al,0x08
|
||||
call read_time
|
||||
mov byte [es:di-28],'.'
|
||||
mov byte [es:di-26],ah
|
||||
mov byte [es:di-24],al
|
||||
; 读取年
|
||||
mov al,0x09
|
||||
call read_time
|
||||
mov byte [es:di-32],ah
|
||||
mov byte [es:di-30],al
|
||||
|
||||
|
||||
hlt ; 使用停机指令降低 CPU 使用率
|
||||
jmp near get_data
|
||||
|
||||
|
||||
read_time:
|
||||
out 0x70,al
|
||||
in al,0x71
|
||||
call bcd_to_ascii
|
||||
ret
|
||||
|
||||
; 用于编码转换:BCD=》ASCII
|
||||
; 输入:AL=bcd码
|
||||
; 输出:AX=ascii
|
||||
bcd_to_ascii:
|
||||
mov ah,al
|
||||
and al,0x0f
|
||||
add al,0x30
|
||||
|
||||
shr ah,4
|
||||
and ah,0x0f
|
||||
add ah,0x30
|
||||
ret
|
||||
|
||||
;poweroff:
|
||||
; 关机
|
||||
; mov ax,5307H ; 高级电源管理功能,设置电源状态
|
||||
; mov bx,0001H ; 设备ID,1:所有设备
|
||||
; mov cx,0003H ; 状态,3:表示关机
|
||||
; int 15h
|
||||
|
||||
|
||||
|
||||
end:
|
||||
times 510-($-$$) db 0
|
||||
db 0x55,0xaa
|
||||
|
||||
; 后面部分暂时废弃
|
||||
|
||||
|
||||
read_hard_disk_0: ; 从硬盘读取一个逻辑扇区
|
||||
; 输入:DI:SI=起始逻辑扇区号
|
||||
; DS:BX=目标缓冲区地址
|
||||
push ax
|
||||
push bx
|
||||
push cx
|
||||
push dx
|
||||
|
||||
mov dx,0x1f2
|
||||
mov al,1
|
||||
out dx,al ; 读取的扇区数
|
||||
|
||||
inc dx ; 0x1f3
|
||||
mov ax,si
|
||||
out dx,al ; LBA地址7~0
|
||||
|
||||
inc dx ; 0x1f4
|
||||
mov al,ah
|
||||
out dx,al ; LBA地址15~8
|
||||
|
||||
inc dx ; 0x1f5
|
||||
mov ax,di
|
||||
out dx,al ; LBA地址23~16
|
||||
|
||||
inc dx ; 0x1f6
|
||||
mov al,0xe0 ; LBA28模式,主盘
|
||||
or al,ah ; LBA地址27~24
|
||||
out dx,al
|
||||
|
||||
inc dx ; 0x1f7
|
||||
mov al,0x20 ; 读命令
|
||||
out dx,al
|
||||
|
||||
.waits:
|
||||
in al,dx ; 此时 dx 为 0x1f7,此时为命令端口也是状态窗口
|
||||
and al,0x88
|
||||
cmp al,0x08
|
||||
jnz .waits
|
||||
; 内部操作期间,会将 0x1f7 端口第 7 位设置为“1”,准备就绪后会将此位清零,并将第 3 位设为 1
|
||||
|
||||
mov cx,256 ; 总计要读取的/字/数
|
||||
mov dx,0x1f0
|
||||
|
||||
.readw:
|
||||
in ax,dx
|
||||
mov [bx],ax
|
||||
add bx,2
|
||||
loop .readw
|
||||
|
||||
pop dx
|
||||
pop cx
|
||||
pop bx
|
||||
pop ax
|
||||
|
||||
BIN
VM-source/test-kvm.asm.bin
Normal file
BIN
VM-source/test-kvm.asm.bin
Normal file
Binary file not shown.
BIN
VM-source/test.qcow2
Normal file
BIN
VM-source/test.qcow2
Normal file
Binary file not shown.
8
VM-source/trans.qrc
Normal file
8
VM-source/trans.qrc
Normal file
@@ -0,0 +1,8 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>zh_CN.qm</file>
|
||||
<file>zh_CN.ts</file>
|
||||
<file>en_US.qm</file>
|
||||
<file>en_US.ts</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
@@ -61,9 +61,9 @@ int vbox::SetRemoteConnectSetting(int port){
|
||||
}
|
||||
int vbox::Start(bool unShown){
|
||||
if(unShown){
|
||||
return system(("\"" + managerPath + "\"").toLatin1());
|
||||
return system(("\"" + managerPath + "\" > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1").toLatin1());
|
||||
}
|
||||
return system(("\"" + managerPath + "\" startvm \"" + name + "\"").toLatin1());
|
||||
return system(("\"" + managerPath + "\" startvm \"" + name + "\" > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1").toLatin1());
|
||||
}
|
||||
int vbox::Stop(){
|
||||
return system(("\"" + managerPath + "\" controlvm \"" + name + "\" poweroff").toLatin1());
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="14"/>
|
||||
<source>Windows 应用适配工具</source>
|
||||
<source>Wine 运行器虚拟机安装工具</source>
|
||||
<oldsource>Windows 应用适配工具</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -35,57 +36,137 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="78"/>
|
||||
<source>请选择系统类型(如果识别不了请自行选择,如果选择错误或不支持将无法进行自动安装)</source>
|
||||
<location filename="mainwindow.ui" line="89"/>
|
||||
<source>其它 Windows 系统(不支持自动安装,传统启动,推荐 Windows 7 及以下)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="82"/>
|
||||
<source>Windows 7 32 位(支持自动安装)</source>
|
||||
<location filename="mainwindow.ui" line="94"/>
|
||||
<source>其他 Windows 系统(不支持自动安装,UEFI 启动,推荐 Windows 8 及以上)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="87"/>
|
||||
<source>Windows 7 64 位(支持自动安装)</source>
|
||||
<location filename="mainwindow.ui" line="99"/>
|
||||
<source>安装 WIndows 11(不支持自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="92"/>
|
||||
<source>其它 Windows 系统(不支持自动安装)</source>
|
||||
<location filename="mainwindow.ui" line="104"/>
|
||||
<source>安装其他 Windows XP(支持自动安装,只支持 VirtualBox)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="117"/>
|
||||
<source>安装</source>
|
||||
<location filename="mainwindow.ui" line="109"/>
|
||||
<source>安装其他 Windows (支持自动安装,传统启动,只支持 VirtualBox)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="126"/>
|
||||
<location filename="mainwindow.ui" line="114"/>
|
||||
<source>安装其他 Windows(支持自动安装,UEFI 启动,只支持 VirtualBox)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="119"/>
|
||||
<source>安装 arm32 系统(只支持 Qemu)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="124"/>
|
||||
<source>安装 arm64 系统(只支持 Qemu)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="136"/>
|
||||
<source>虚拟机(建议默认):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="143"/>
|
||||
<location filename="mainwindow.ui" line="153"/>
|
||||
<source>qemu/kvm</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="158"/>
|
||||
<source>VirtualBox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="183"/>
|
||||
<source>安装 Qemu</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="190"/>
|
||||
<source>kvm 测试</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="197"/>
|
||||
<source>Qemu虚拟机设置</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="204"/>
|
||||
<source>添加/覆盖Qemu磁盘</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="211"/>
|
||||
<source>导出Qemu磁盘</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="218"/>
|
||||
<source>移除Qemu磁盘</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="225"/>
|
||||
<source>获取VirtualBox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="241"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">使用迅雷或者网盘下载以下任意一个链接然后在上面选择即可:</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第一项,一般推荐这个)ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第二项)ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,需要安装/降级到以下链接的版本:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">蓝奏云:</span><a href="https://gfdgdxi.lanzoue.com/b01rk9wza"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gfdgdxi.lanzoue.com/b01rk9wza</span></a><span style=" font-size:11pt;"> 密码:6wvf</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu</span></p>
|
||||
<hr />
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">123 网盘链接:</span><a href="https://www.123pan.com/s/pDSKVv-oypWv"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-oypWv</span></a></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">迅雷网盘:</span><a href="https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5</span></a><span style=" font-size:10pt;"> 提取码:35e5</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">百度网盘:</span><a href="https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y</span></a><span style=" font-size:10pt;"> 提取码: me4y</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061</span></a><span style=" font-size:10pt;"> (访问密码: 2061)</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第一项,一般推荐这个)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></a></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">(如果下载这个,系统版本选第二项)</span><a href="ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></a></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt; font-weight:600;">常用 Windows 软件:</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">百度网盘:链接: </span><a href="https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p</span></a><span style=" font-size:11pt;"> 提取码: 7s2p </span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">诚通网盘:</span><a href="http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061</span></a><span style=" font-size:11pt;"> (访问密码: 2061)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">123网盘:</span><a href="https://www.123pan.com/s/pDSKVv-uCBWv.html"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://www.123pan.com/s/pDSKVv-uCBWv.html</span></a></p>
|
||||
<hr /></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="141"/>
|
||||
<source>安装/使用帮助</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="150"/>
|
||||
<location filename="mainwindow.ui" line="283"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">给小白的一段话</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">只限使用 VirtualBox</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; font-style:italic; text-decoration: underline;">如果你是用非 X86 PC,那暂时只能使用 qemu(没 kvm),且跨架构的性能损失很大,推荐使用 Windows XP 而非 Windows 7</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了)</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">qemu则是 Ctrl+Alt+G</span> )</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qemu 可以安装 Virtio 以优化体验,下载链接:<a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/</span></a></p>
|
||||
<hr />
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;"><br /></p>
|
||||
@@ -118,7 +199,7 @@ p, li { white-space: pre-wrap; }
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:11pt;">3、在这里修改即可</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/picture/截图/截图_VirtualBox_20220712223705.png" /></p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装加强功能有什么好处?</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:26pt; font-weight:600;">安装加强功能有什么好处?(只限使用 VirtualBox)</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1、支持鼠标自由从虚拟机和实体机切换</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2、支持虚拟机根据窗口大小自动设置分辨率</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3、支持文件共享、剪切板共享、文件拖放</p>
|
||||
@@ -142,13 +223,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="224"/>
|
||||
<location filename="mainwindow.ui" line="313"/>
|
||||
<source>关于</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="281"/>
|
||||
<location filename="mainwindow.ui" line="421"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
@@ -159,18 +234,364 @@ p, li { white-space: pre-wrap; }
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">项目地址:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitee:<a href="https://gitee.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Github:<a href="https://github.com/gfdgd-xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gitlink:<a href="https://gitlink.org.cn/gfdgd_xi/deep-wine-runner"><span style=" font-size:11pt; text-decoration: underline; color:#0082fa;">https://gitlink.org.cn/gfdgd_xi/deep-wine-runner</span></a></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">该组件制作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">该组件制作者:gfdgd xi</p>
|
||||
<hr />
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">参考文献:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Droid Sans Mono','monospace','monospace'; font-size:11pt; color:#6a9955;">https://juejin.cn/post/7080484519328874510</span></p></body></html></source>
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="308"/>
|
||||
<location filename="mainwindow.ui" line="463"/>
|
||||
<source>虚拟机</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="487"/>
|
||||
<source>导入/覆盖</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="492"/>
|
||||
<source>导出</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="497"/>
|
||||
<location filename="mainwindow.cpp" line="442"/>
|
||||
<source>虚拟机安装日志</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="502"/>
|
||||
<location filename="mainwindow.cpp" line="408"/>
|
||||
<source>虚拟机运行日志</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="507"/>
|
||||
<source>虚拟机测试(X86、Qemu)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="512"/>
|
||||
<source>强制停止 VirtualBox</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="517"/>
|
||||
<source>强制停止 Qemu</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="75"/>
|
||||
<location filename="mainwindow.ui" line="79"/>
|
||||
<source>Windows 7 32 位(支持自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="84"/>
|
||||
<source>Windows 7 64 位(支持自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="232"/>
|
||||
<source>安装</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="274"/>
|
||||
<source>安装/使用帮助</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="364"/>
|
||||
<location filename="mainwindow.ui" line="482"/>
|
||||
<source>关于</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="477"/>
|
||||
<source>退出</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="88"/>
|
||||
<source>Wine 运行器虚拟机安装工具 </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="90"/>
|
||||
<source><p>程序版本号:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="90"/>
|
||||
<source></p><p>安装包构建时间:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="90"/>
|
||||
<source></p><p>该组件构建时间:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="92"/>
|
||||
<source><hr/><h1>谢明列表</h1></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="179"/>
|
||||
<location filename="mainwindow.cpp" line="186"/>
|
||||
<location filename="mainwindow.cpp" line="193"/>
|
||||
<location filename="mainwindow.cpp" line="200"/>
|
||||
<location filename="mainwindow.cpp" line="215"/>
|
||||
<location filename="mainwindow.cpp" line="222"/>
|
||||
<location filename="mainwindow.cpp" line="229"/>
|
||||
<location filename="mainwindow.cpp" line="248"/>
|
||||
<location filename="mainwindow.cpp" line="254"/>
|
||||
<location filename="mainwindow.cpp" line="263"/>
|
||||
<location filename="mainwindow.cpp" line="307"/>
|
||||
<location filename="mainwindow.cpp" line="322"/>
|
||||
<location filename="mainwindow.cpp" line="328"/>
|
||||
<location filename="mainwindow.cpp" line="332"/>
|
||||
<location filename="mainwindow.cpp" line="338"/>
|
||||
<location filename="mainwindow.cpp" line="357"/>
|
||||
<location filename="mainwindow.cpp" line="360"/>
|
||||
<location filename="mainwindow.cpp" line="364"/>
|
||||
<location filename="mainwindow.cpp" line="367"/>
|
||||
<location filename="mainwindow.cpp" line="392"/>
|
||||
<location filename="mainwindow.cpp" line="404"/>
|
||||
<location filename="mainwindow.cpp" line="438"/>
|
||||
<source>提示</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="179"/>
|
||||
<source>您似乎没有安装 Qemu,是否继续创建虚拟机?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="186"/>
|
||||
<source>您似乎没有安装 VBox,是否继续创建虚拟机?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="193"/>
|
||||
<source>无法检测到 qemu-system-arm,是否继续创建虚拟机?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="200"/>
|
||||
<source>无法检测到 qemu-system-aarch64,是否继续创建虚拟机?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="215"/>
|
||||
<source>似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机?
|
||||
缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="222"/>
|
||||
<source>似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机?
|
||||
缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="229"/>
|
||||
<source>似乎无法找到 UEFI 固件,是否继续创建虚拟机?
|
||||
Qemu 固件可以在“安装 Qemu”处安装</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="248"/>
|
||||
<source>Qemu 不支持该选项!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="254"/>
|
||||
<location filename="mainwindow.cpp" line="263"/>
|
||||
<source>VirtualBox 不支持该选项!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="278"/>
|
||||
<source>提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="307"/>
|
||||
<source>磁盘文件已存在,是否覆盖?
|
||||
覆盖后将无法恢复!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="311"/>
|
||||
<source>选择 Qemu 镜像</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="311"/>
|
||||
<source>Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="322"/>
|
||||
<location filename="mainwindow.cpp" line="328"/>
|
||||
<source>添加错误!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="332"/>
|
||||
<source>添加完成!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="338"/>
|
||||
<source>不存在磁盘文件,无法导出</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="357"/>
|
||||
<source>不存在磁盘文件,无法移除</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="360"/>
|
||||
<source>是否删除?
|
||||
删除后将无法恢复!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="364"/>
|
||||
<source>移除失败</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="367"/>
|
||||
<source>移除成功</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="373"/>
|
||||
<location filename="mainwindow.cpp" line="389"/>
|
||||
<source>错误</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="373"/>
|
||||
<source>未识别到命令 kvm-ok
|
||||
可以使用命令 sudo apt install cpu-checker 安装</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="383"/>
|
||||
<source>使用</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="389"/>
|
||||
<source>您的系统不支持使用 kvm:
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="392"/>
|
||||
<source>您的系统支持使用 kvm:
|
||||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="404"/>
|
||||
<location filename="mainwindow.cpp" line="438"/>
|
||||
<source>没有日志文件</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="408"/>
|
||||
<source>运行日志</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.cpp" line="442"/>
|
||||
<source>安装日志</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QemuSetting</name>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="14"/>
|
||||
<source>设置</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="35"/>
|
||||
<source><h3>远程服务</h3></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="42"/>
|
||||
<source>VNC服务端口:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="49"/>
|
||||
<source>开启 rdp 服务映射</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="56"/>
|
||||
<source>内存大小(MB):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="90"/>
|
||||
<source><h3>基础设置</h3></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="97"/>
|
||||
<source>开启VNC服务</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="104"/>
|
||||
<source>开启 kvm 加速</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="111"/>
|
||||
<source>CPU核心数:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="125"/>
|
||||
<source>开启声音</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="145"/>
|
||||
<source>保存</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="158"/>
|
||||
<source>取消</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="171"/>
|
||||
<source>重置
|
||||
默认</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="qemusetting.ui" line="185"/>
|
||||
<source>获取
|
||||
Wine
|
||||
运行器</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<file>deepin-wine-runner.png</file>
|
||||
<file>LANG/virtualmachine-en_US.qm</file>
|
||||
<file>LANG/virtualmachine-en_US.ts</file>
|
||||
<file>application-vnd.oasis.opendocument.text.svg</file>
|
||||
</qresource>
|
||||
<qresource prefix="/picture">
|
||||
<file>截图_VirtualBox Machine_20220712142929.png</file>
|
||||
@@ -20,4 +21,7 @@
|
||||
<file>截图/截图_VirtualBox_20220712223705.png</file>
|
||||
<file>截图/截图_选择区域_20220712224639.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/TestDisk">
|
||||
<file>test.qcow2</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
BIN
VM/AAVMF32_CODE.fd
Normal file
BIN
VM/AAVMF32_CODE.fd
Normal file
Binary file not shown.
BIN
VM/QEMU_AARCH64_EFI.fd
Normal file
BIN
VM/QEMU_AARCH64_EFI.fd
Normal file
Binary file not shown.
BIN
VM/QEMU_EFI_LOONG64_7.1.fd
Normal file
BIN
VM/QEMU_EFI_LOONG64_7.1.fd
Normal file
Binary file not shown.
@@ -6,6 +6,13 @@ arch = subprocess.getoutput("dpkg --print-architecture").replace(" ", "").replac
|
||||
if os.path.exists(f"{programPath}/VirtualMachine-{arch}"):
|
||||
os.system(f"{programPath}/VirtualMachine-{arch}")
|
||||
exit()
|
||||
# 判断文件是否解压
|
||||
if not os.path.exists(f"{programPath}/VirtualMachine-amd64"):
|
||||
# 解压文件
|
||||
os.system(f"cd '{programPath}' ; tar -xvf vm.tar.gz")
|
||||
if os.path.exists(f"{programPath}/VirtualMachine-{arch}"):
|
||||
os.system(f"{programPath}/VirtualMachine-{arch}")
|
||||
exit()
|
||||
# 只能使用 Qemu User 运行程序
|
||||
if os.path.exists("/usr/lib/x86_64-linux-gnu/") and not os.system("which qemu-x86_64"):
|
||||
os.system(f"qemu-x86_64 '{programPath}/VirtualMachine-x86_64'")
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
VM/VirtualMachine-armel
Executable file
BIN
VM/VirtualMachine-armel
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
132
VM/kvm-ok
Executable file
132
VM/kvm-ok
Executable file
@@ -0,0 +1,132 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# kvm-ok - check whether the CPU we're running on supports KVM acceleration
|
||||
# Copyright (C) 2008-2010 Canonical Ltd.
|
||||
#
|
||||
# Authors:
|
||||
# Dustin Kirkland <kirkland@canonical.com>
|
||||
# Kees Cook <kees.cook@canonical.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License version 3,
|
||||
# as published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
set -e
|
||||
|
||||
assert_root() {
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "INFO: For more detailed results, you should run this as root"
|
||||
echo "HINT: sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
verdict() {
|
||||
# Print verdict
|
||||
if [ "$1" = "0" ]; then
|
||||
echo "KVM acceleration can be used"
|
||||
exit 0
|
||||
else
|
||||
echo "KVM acceleration can NOT be used"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
ARM_CPU_PART_CORTEX_A15="0xc0f" # <asm/cputype.h>
|
||||
|
||||
# check cpu flags for capability
|
||||
case "$(uname -m)" in
|
||||
armv7l)
|
||||
if egrep -m1 -w '^CPU part[[:blank:]]*:' /proc/cpuinfo | \
|
||||
egrep -wq "$ARM_CPU_PART_CORTEX_A15"; then
|
||||
virt="ARM"
|
||||
kvm_mod="kvm"
|
||||
fi
|
||||
;;
|
||||
aarch64)
|
||||
virt="ARM"
|
||||
kvm_mod="kvm"
|
||||
;;
|
||||
ppc64le|ppc64|s390x)
|
||||
# FIXME: Assume that all POWER and z/Systems are KVM capable
|
||||
virt="generic"
|
||||
kvm_mod="kvm"
|
||||
;;
|
||||
*)
|
||||
virt=$(egrep -m1 -w '^flags[[:blank:]]*:' /proc/cpuinfo | egrep -wo '(vmx|svm)') || true
|
||||
[ "$virt" = "vmx" ] && kvm_mod="kvm_intel"
|
||||
[ "$virt" = "svm" ] && kvm_mod="kvm_amd"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$virt" ]; then
|
||||
echo "INFO: Your CPU does not support KVM extensions"
|
||||
assert_root
|
||||
verdict 1
|
||||
fi
|
||||
|
||||
# Now, check that the device exists
|
||||
if [ -e /dev/kvm ]; then
|
||||
echo "INFO: /dev/kvm exists"
|
||||
verdict 0
|
||||
else
|
||||
echo "INFO: /dev/kvm does not exist"
|
||||
echo "HINT: sudo modprobe $kvm_mod"
|
||||
fi
|
||||
|
||||
assert_root
|
||||
|
||||
# Prepare MSR access
|
||||
msr="/dev/cpu/0/msr"
|
||||
if [ ! -r "$msr" ]; then
|
||||
modprobe msr
|
||||
fi
|
||||
if [ -e "$msr" -a ! -r "$msr" ]; then
|
||||
echo "You must be root to run this check." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo "INFO: Your CPU supports KVM extensions"
|
||||
|
||||
disabled=0
|
||||
# check brand-specific registers
|
||||
if [ "$virt" = "vmx" ]; then
|
||||
BIT=$(rdmsr --bitfield 0:0 0x3a 2>/dev/null || true)
|
||||
if [ "$BIT" = "1" ]; then
|
||||
# and FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX clear (no tboot)
|
||||
BIT=$(rdmsr --bitfield 2:2 0x3a 2>/dev/null || true)
|
||||
if [ "$BIT" = "0" ]; then
|
||||
disabled=1
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [ "$virt" = "svm" ]; then
|
||||
BIT=$(rdmsr --bitfield 4:4 0xc0010114 2>/dev/null || true)
|
||||
if [ "$BIT" = "1" ]; then
|
||||
disabled=1
|
||||
fi
|
||||
elif [ "$virt" = "ARM" ]; then
|
||||
# Should also test that we booted in HYP mode, if detectable
|
||||
:
|
||||
elif [ "$virt" = "generic" ]; then
|
||||
:
|
||||
else
|
||||
echo "FAIL: Unknown virtualization extension: $virt"
|
||||
verdict 1
|
||||
fi
|
||||
|
||||
if [ "$disabled" -eq 1 ]; then
|
||||
echo "INFO: KVM ($virt) is disabled by your BIOS"
|
||||
echo "HINT: Enter your BIOS setup and enable Virtualization Technology (VT),"
|
||||
echo " and then hard poweroff/poweron your system"
|
||||
verdict 1
|
||||
fi
|
||||
|
||||
verdict 0
|
||||
BIN
VM/test.qcow2
Normal file
BIN
VM/test.qcow2
Normal file
Binary file not shown.
58
arch-i386-to-all/change.py
Executable file
58
arch-i386-to-all/change.py
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import random
|
||||
import subprocess
|
||||
|
||||
# 读取文本文档
|
||||
def ReadTXT(path):
|
||||
with open(path, "r") as file:
|
||||
result = file.read()
|
||||
return result
|
||||
|
||||
# 写入文本文档
|
||||
def WriteTXT(path, things):
|
||||
with open(path, "w") as file:
|
||||
file.write(things)
|
||||
|
||||
|
||||
for i in sys.argv[1:]:
|
||||
#result = subprocess.getoutput(f"apt info '{i}'")
|
||||
tempPath = f"/tmp/unpack-wine-{random.randint(0, 1000)}"
|
||||
#os.system(f"mkdir -p '{tempPath}/DEBIAN'")
|
||||
#result = ReadTXT(f"{tempPath}/DEBIAN/control")
|
||||
result = subprocess.getoutput(f"dpkg --info '{i}'")
|
||||
package = "demo"
|
||||
version = "1.0.0"
|
||||
for k in result.splitlines():
|
||||
# 删除前后空格
|
||||
k = k.strip()
|
||||
# 判断架构
|
||||
if k[:8] == "Package:":
|
||||
package = k[9:].strip()
|
||||
if k[:8] == "Version:":
|
||||
version = k[9:].strip()
|
||||
|
||||
if k[:13] == "Architecture:":
|
||||
arch = k[14:].strip()
|
||||
if arch != "all":
|
||||
print(f"需要转换架构:{arch}=>all")
|
||||
print("开始自动转换")
|
||||
os.system(f"mkdir -pv '{tempPath}'")
|
||||
os.system(f"dpkg -x '{i}' '{tempPath}'")
|
||||
os.system(f"dpkg -e '{i}' '{tempPath}/DEBIAN'")
|
||||
control = ReadTXT(f"{tempPath}/DEBIAN/control")
|
||||
newControl = ""
|
||||
for g in control.splitlines():
|
||||
gNoSpace = g.strip()
|
||||
if gNoSpace[:13] == "Architecture:":
|
||||
newControl += "Architecture: all\n"
|
||||
continue
|
||||
if gNoSpace == "Multi-Arch: same":
|
||||
continue
|
||||
newControl += f"{g}\n"
|
||||
WriteTXT(f"{tempPath}/DEBIAN/control", newControl)
|
||||
os.system(f"dpkg-deb -Z xz -z 9 -b '{tempPath}' '{package}_{version}_all.deb'")
|
||||
os.system(f"rm -rfv '{tempPath}'")
|
||||
break
|
||||
|
||||
7
builddeb/ChangeDebVersion.sh
Normal file
7
builddeb/ChangeDebVersion.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
# 读取程序版本号
|
||||
cd `dirname $0`
|
||||
export PROGRAMVERSION=`python3 GetProgramVersion.py`
|
||||
export SIZE=`du /tmp/spark-deepin-wine-runner-builder/ | tail -n1 | awk '{print $1}'`
|
||||
sed -i "s%@@VERSION@@%$PROGRAMVERSION%g" /tmp/spark-deepin-wine-runner-builder/DEBIAN/control
|
||||
sed -i "s%@@SIZE@@%$SIZE%g" /tmp/spark-deepin-wine-runner-builder/DEBIAN/control
|
||||
10
builddeb/GetProgramVersion.py
Executable file
10
builddeb/GetProgramVersion.py
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env python3
|
||||
# 读取程序版本号
|
||||
import os
|
||||
import json
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||
try:
|
||||
with open(f"{programPath}/../information.json") as file:
|
||||
print(json.loads(file.read())["Version"])
|
||||
except:
|
||||
print("1.0.0")
|
||||
15
deb-ace/DEBIAN/control
Executable file
15
deb-ace/DEBIAN/control
Executable file
@@ -0,0 +1,15 @@
|
||||
Package: spark-deepin-wine-runner-ace
|
||||
Version: @@VERSION@@
|
||||
Maintainer: gfdgd xi <3025613752@qq.com>
|
||||
Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner
|
||||
Architecture: all
|
||||
Severity: serious
|
||||
Certainty: possible
|
||||
Check: binaries
|
||||
Type: binary, udeb
|
||||
Priority: optional
|
||||
Depends: cn.flamescion.bookworm-compatibility-mode,bash,wget,sudo,libnotify-bin
|
||||
Section: utils
|
||||
Installed-Size: @@SIZE@@
|
||||
Description: Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
|
||||
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低)。
|
||||
37
deb-ace/DEBIAN/postinst
Executable file
37
deb-ace/DEBIAN/postinst
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
function notify-send(){
|
||||
#Detect the user using such display
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
|
||||
#Detect the id of the user
|
||||
local uid=$(id -u $user)
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
|
||||
}
|
||||
|
||||
function zenity(){
|
||||
#Detect the user using such display
|
||||
local user=$(who | awk '{print $1}' | head -n 1)
|
||||
|
||||
#Detect the id of the user
|
||||
local uid=$(id -u $user)
|
||||
sudo -u $user DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus zenity "$@"
|
||||
}
|
||||
|
||||
###检查aptss在不在
|
||||
if [ -z `which bookworm-run` ];then
|
||||
echo "Oh no, ssinstall have not installed bookworm-run dependency yet! Exit"
|
||||
exit 1
|
||||
fi
|
||||
bookworm-run echo "Welcome to BCM! Trying to install package"
|
||||
if [ -z "`bookworm-run which aptss`" ];then
|
||||
wget https://zunyun01.store.deepinos.org.cn/store/depends/spark-store-console-in-container_4.2.6.2_all.deb -O /tmp/ssconsole.deb
|
||||
bookworm-run apt install /tmp/ssconsole.deb -y
|
||||
rm /tmp/ssconsole.deb -f
|
||||
fi
|
||||
notify-send "Installing Wine Runner BCM, may cost some time please ensure your network is fine"
|
||||
notify-send "正在书虫兼容环境中安装 Wine 运行器,可能会花费一些时间,请保持网络畅通"
|
||||
bookworm-run aptss update
|
||||
cp /opt/apps/spark-deepin-wine-runner-ace/spark-deepin-wine-runner.deb /tmp
|
||||
bookworm-run aptss reinstall /tmp/spark-deepin-wine-runner.deb -y
|
||||
|
||||
bookworm-run aptss clean
|
||||
54
deb-ace/DEBIAN/postrm
Executable file
54
deb-ace/DEBIAN/postrm
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# 使用系统默认的 sh 运行
|
||||
#################################################################################################################
|
||||
# 作者:gfdgd xi
|
||||
# 版本:2.2.0
|
||||
# 更新时间:2022年09月24日
|
||||
# 感谢:感谢 wine、deepin-wine 以及星火团队,提供了 wine、deepin-wine、spark-wine-devel 给大家使用,让我能做这个程序
|
||||
# 基于 sh
|
||||
#################################################################################################################
|
||||
# 删除软件残留,简单粗暴一点直接全部删掉,防止出现警告
|
||||
# 加判断是为了怕 reinstall 后程序就再也打不开了(除非卸载后重新安装)
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
||||
rm -rf /opt/apps/deepin-wine-runner/
|
||||
fi
|
||||
# 删除软件缓存(留着也没什么用了)
|
||||
# 缓存目录:~/.cache/deepin-wine-runner
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
||||
|
||||
echo "清理程序缓存"
|
||||
|
||||
for username in $(ls /home); do
|
||||
echo /home/$username
|
||||
if [ -d "/home/$username/.cache/deepin-wine-runner/" ]; then
|
||||
rm -rf "/home/$username/.cache/deepin-wine-runner/"
|
||||
fi
|
||||
done
|
||||
# 清理 root 用户的缓存文件
|
||||
echo /root
|
||||
if [ -d "/root/.cache/deepin-wine-runner/" ]; then
|
||||
rm -rf "/root/.cache/deepin-wine-runner/"
|
||||
fi
|
||||
else
|
||||
echo "非卸载,跳过清理"
|
||||
fi
|
||||
# 删除软件配置文件(只限“purge”)
|
||||
# 配置目录:~/.config/deepin-wine-runner
|
||||
if [ "$1" = "purge" ]; then
|
||||
|
||||
echo "清理程序配置文件"
|
||||
|
||||
for username in $(ls /home); do
|
||||
echo /home/$username
|
||||
if [ -d "/home/$username/.config/deepin-wine-runner/" ]; then
|
||||
rm -rf "/home/$username/.config/deepin-wine-runner/"
|
||||
fi
|
||||
done
|
||||
# 清理 root 用户的配置文件
|
||||
echo /root
|
||||
if [ -d "/root/.config/deepin-wine-runner/" ]; then
|
||||
rm -rf "/root/.config/deepin-wine-runner/"
|
||||
fi
|
||||
else
|
||||
echo "非 purge,跳过清理"
|
||||
fi
|
||||
1
deb-ace/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
Executable file
1
deb-ace/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
Executable file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-package-builder "~/.wine" %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Wine Package Builder
|
||||
Name[zh]=Wine 打包器
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
NoDisplay=true
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
@@ -0,0 +1,13 @@
|
||||
[Desktop Entry]
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-packager-easy-builder %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
Name=Wine Package Builder
|
||||
Name[zh]=Wine 简易打包器
|
||||
NoDisplay=true
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
X-Deepin-Vendor=user-custom
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-packager-with-script
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Wine Package Builder For UOS
|
||||
NoDisplay=true
|
||||
Name[zh]=Wine 打包器(基于活动脚本)
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
@@ -0,0 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-runner %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Wine Runner
|
||||
Name[zh]=Wine 运行器
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /opt/apps/deepin-wine-runner/RunVM.sh %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Setting VirtualMachine
|
||||
Name[zh]=设置 Windows 虚拟机
|
||||
NoDisplay=true
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;
|
||||
Exec=bookworm-run /opt/apps/deepin-wine-runner/StartVM.sh %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Start Windows VirtualMachine
|
||||
Name[zh]=开启 Windows 虚拟机
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
@@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-package-builder "~/.wine" %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Wine Package Builder
|
||||
Name[zh]=Wine 打包器
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
NoDisplay=true
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
@@ -0,0 +1,13 @@
|
||||
[Desktop Entry]
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-packager-easy-builder %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
Name=Wine Package Builder
|
||||
Name[zh]=Wine 简易打包器
|
||||
NoDisplay=true
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
X-Deepin-Vendor=user-custom
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-packager-with-script
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Wine Package Builder For UOS
|
||||
NoDisplay=true
|
||||
Name[zh]=Wine 打包器(基于活动脚本)
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
@@ -0,0 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /usr/bin/deepin-wine-runner %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Wine Runner
|
||||
Name[zh]=Wine 运行器
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Keywords=exe;scr;
|
||||
MimeType=application/x-ms-dos-executable;application/x-msi;application/x-ms-shortcut;
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;Wine;
|
||||
Exec=bookworm-run /opt/apps/deepin-wine-runner/RunVM.sh %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Setting VirtualMachine
|
||||
Name[zh]=设置 Windows 虚拟机
|
||||
NoDisplay=true
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
X-Categories=System;
|
||||
Exec=bookworm-run /opt/apps/deepin-wine-runner/StartVM.sh %F
|
||||
Icon=/opt/apps/spark-deepin-wine-runner-ace/deepin-wine-runner.svg
|
||||
Name=Start Windows VirtualMachine
|
||||
Name[zh]=开启 Windows 虚拟机
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
@@ -1,5 +1,5 @@
|
||||
Package: spark-deepin-wine-runner
|
||||
Version: 3.4.0.1
|
||||
Version: @@VERSION@@
|
||||
Maintainer: gfdgd xi <3025613752@qq.com>
|
||||
Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner
|
||||
Architecture: all
|
||||
@@ -8,12 +8,12 @@ Certainty: possible
|
||||
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
|
||||
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, tree
|
||||
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: 83156
|
||||
Installed-Size: @@SIZE@@
|
||||
Description: Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
|
||||
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低)。
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user