Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9799b598c3 | ||
|
|
2933fc90df | ||
|
|
4a4a75eacd | ||
|
|
42516f874a | ||
|
|
c4b977c31c | ||
|
|
df6d4ef120 | ||
|
|
8e9489b7f7 | ||
|
|
b6d435def7 | ||
|
|
60c3920f1f | ||
|
|
f9f163b973 | ||
|
|
1b30fd4a6c | ||
|
|
0b27387d08 | ||
|
|
0bcc1dfc18 | ||
|
|
c4a0fcfa6e |
@@ -0,0 +1,73 @@
|
||||
# This file is used to ignore files which are generated
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
*~
|
||||
*.autosave
|
||||
*.a
|
||||
*.core
|
||||
*.moc
|
||||
*.o
|
||||
*.obj
|
||||
*.orig
|
||||
*.rej
|
||||
*.so
|
||||
*.so.*
|
||||
*_pch.h.cpp
|
||||
*_resource.rc
|
||||
*.qm
|
||||
.#*
|
||||
*.*#
|
||||
core
|
||||
!core/
|
||||
tags
|
||||
.DS_Store
|
||||
.directory
|
||||
*.debug
|
||||
Makefile*
|
||||
*.prl
|
||||
*.app
|
||||
moc_*.cpp
|
||||
ui_*.h
|
||||
qrc_*.cpp
|
||||
Thumbs.db
|
||||
*.res
|
||||
*.rc
|
||||
/.qmake.cache
|
||||
/.qmake.stash
|
||||
|
||||
# qtcreator generated files
|
||||
*.pro.user*
|
||||
|
||||
# xemacs temporary files
|
||||
*.flc
|
||||
|
||||
# Vim temporary files
|
||||
.*.swp
|
||||
|
||||
# Visual Studio generated files
|
||||
*.ib_pdb_index
|
||||
*.idb
|
||||
*.ilk
|
||||
*.pdb
|
||||
*.sln
|
||||
*.suo
|
||||
*.vcproj
|
||||
*vcproj.*.*.user
|
||||
*.ncb
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.vcxproj
|
||||
*vcxproj.*
|
||||
|
||||
# MinGW generated files
|
||||
*.Debug
|
||||
*.Release
|
||||
|
||||
# Python byte code
|
||||
*.pyc
|
||||
|
||||
# Binaries
|
||||
# --------
|
||||
*.dll
|
||||
*.exe
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<unattend xmlns="urn:schemas-microsoft-com:unattend">
|
||||
<settings pass="windowsPE">
|
||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<SetupUILanguage>
|
||||
<UILanguage>zh-CN</UILanguage>
|
||||
</SetupUILanguage>
|
||||
<InputLocale>zh-CN</InputLocale>
|
||||
<SystemLocale>zh-CN</SystemLocale>
|
||||
<UILanguage>zh-CN</UILanguage>
|
||||
<UserLocale>zh-CN</UserLocale>
|
||||
</component>
|
||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<UserData>
|
||||
<ProductKey>
|
||||
<Key />
|
||||
</ProductKey>
|
||||
<AcceptEula>true</AcceptEula>
|
||||
</UserData>
|
||||
<ImageInstall>
|
||||
<OSImage>
|
||||
<InstallFrom>
|
||||
<MetaData wcm:action="add">
|
||||
<Key>/image/index</Key>
|
||||
<Value>4</Value>
|
||||
</MetaData>
|
||||
</InstallFrom>
|
||||
<InstallTo>
|
||||
<DiskID>0</DiskID>
|
||||
<PartitionID>1</PartitionID>
|
||||
</InstallTo>
|
||||
</OSImage>
|
||||
</ImageInstall>
|
||||
<DiskConfiguration>
|
||||
<Disk wcm:action="add">
|
||||
<CreatePartitions>
|
||||
<CreatePartition wcm:action="add">
|
||||
<Order>1</Order>
|
||||
<Size>130000</Size>
|
||||
<Type>Primary</Type>
|
||||
</CreatePartition>
|
||||
</CreatePartitions>
|
||||
<DiskID>0</DiskID>
|
||||
<WillWipeDisk>true</WillWipeDisk>
|
||||
<ModifyPartitions>
|
||||
<ModifyPartition wcm:action="add">
|
||||
<Active>true</Active>
|
||||
<Extend>false</Extend>
|
||||
<Format>NTFS</Format>
|
||||
<Label>OS</Label>
|
||||
<Letter>C</Letter>
|
||||
<Order>1</Order>
|
||||
<PartitionID>1</PartitionID>
|
||||
</ModifyPartition>
|
||||
</ModifyPartitions>
|
||||
</Disk>
|
||||
</DiskConfiguration>
|
||||
</component>
|
||||
</settings>
|
||||
<settings pass="oobeSystem">
|
||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<UserAccounts>
|
||||
<LocalAccounts>
|
||||
<LocalAccount wcm:action="add">
|
||||
<Password>
|
||||
<Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||
<PlainText>false</PlainText>
|
||||
</Password>
|
||||
<DisplayName>Windows</DisplayName>
|
||||
<Group>Administrators</Group>
|
||||
<Name>Windows</Name>
|
||||
</LocalAccount>
|
||||
</LocalAccounts>
|
||||
</UserAccounts>
|
||||
<OOBE>
|
||||
<NetworkLocation>Work</NetworkLocation>
|
||||
<ProtectYourPC>3</ProtectYourPC>
|
||||
</OOBE>
|
||||
<TimeZone>China Standard Time</TimeZone>
|
||||
</component>
|
||||
</settings>
|
||||
<settings pass="specialize">
|
||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<ComputerName>*</ComputerName>
|
||||
</component>
|
||||
</settings>
|
||||
<cpi:offlineImage cpi:source="wim:d:/sources/install.wim#Windows 7 ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
|
||||
</unattend>
|
||||
@@ -1,85 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<unattend xmlns="urn:schemas-microsoft-com:unattend">
|
||||
<settings pass="windowsPE">
|
||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<SetupUILanguage>
|
||||
<UILanguage>zh-CN</UILanguage>
|
||||
</SetupUILanguage>
|
||||
<InputLocale>zh-CN</InputLocale>
|
||||
<SystemLocale>zh-CN</SystemLocale>
|
||||
<UILanguage>zh-CN</UILanguage>
|
||||
<UserLocale>zh-CN</UserLocale>
|
||||
</component>
|
||||
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<UserData>
|
||||
<AcceptEula>true</AcceptEula>
|
||||
</UserData>
|
||||
<ImageInstall>
|
||||
<OSImage>
|
||||
<InstallFrom>
|
||||
<MetaData wcm:action="add">
|
||||
<Value>5</Value>
|
||||
<Key>/image/index</Key>
|
||||
</MetaData>
|
||||
</InstallFrom>
|
||||
<InstallTo>
|
||||
<DiskID>0</DiskID>
|
||||
<PartitionID>1</PartitionID>
|
||||
</InstallTo>
|
||||
</OSImage>
|
||||
</ImageInstall>
|
||||
<DiskConfiguration>
|
||||
<Disk wcm:action="add">
|
||||
<CreatePartitions>
|
||||
<CreatePartition wcm:action="add">
|
||||
<Type>Primary</Type>
|
||||
<Order>1</Order>
|
||||
<Size>130000</Size>
|
||||
</CreatePartition>
|
||||
</CreatePartitions>
|
||||
<WillWipeDisk>true</WillWipeDisk>
|
||||
<DiskID>0</DiskID>
|
||||
<ModifyPartitions>
|
||||
<ModifyPartition wcm:action="add">
|
||||
<Active>true</Active>
|
||||
<Extend>false</Extend>
|
||||
<Format>NTFS</Format>
|
||||
<Label>OS</Label>
|
||||
<Letter>C</Letter>
|
||||
<Order>1</Order>
|
||||
<PartitionID>1</PartitionID>
|
||||
</ModifyPartition>
|
||||
</ModifyPartitions>
|
||||
</Disk>
|
||||
</DiskConfiguration>
|
||||
</component>
|
||||
</settings>
|
||||
<settings pass="oobeSystem">
|
||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<UserAccounts>
|
||||
<LocalAccounts>
|
||||
<LocalAccount wcm:action="add">
|
||||
<Password>
|
||||
<Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||
<PlainText>false</PlainText>
|
||||
</Password>
|
||||
<DisplayName>Windows</DisplayName>
|
||||
<Group>Administrators</Group>
|
||||
<Name>Windows</Name>
|
||||
</LocalAccount>
|
||||
</LocalAccounts>
|
||||
</UserAccounts>
|
||||
<OOBE>
|
||||
<NetworkLocation>Work</NetworkLocation>
|
||||
<ProtectYourPC>3</ProtectYourPC>
|
||||
</OOBE>
|
||||
<TimeZone>China Standard Time</TimeZone>
|
||||
</component>
|
||||
</settings>
|
||||
<settings pass="specialize">
|
||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<ComputerName>*</ComputerName>
|
||||
</component>
|
||||
</settings>
|
||||
<cpi:offlineImage cpi:source="wim:l:/xiayuhao/system-iso/windows-iso/windows-7/windows-7-sp1-x86/sources/install.wim#Windows 7 ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
|
||||
</unattend>
|
||||
@@ -1,3 +0,0 @@
|
||||
[autorun]
|
||||
ICON=icon.ico
|
||||
LABEL=自动部署
|
||||
|
Before Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 270 KiB |
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 76 KiB |
@@ -1,176 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" sourcelanguage="zh_CN">
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="14"/>
|
||||
<source>Windows 应用适配工具</source>
|
||||
<translation type="unfinished">Windows System Installer By VirtualBox</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="32"/>
|
||||
<location filename="mainwindow.ui" line="35"/>
|
||||
<source>设置</source>
|
||||
<translation type="unfinished">Setting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="43"/>
|
||||
<source>镜像路径:</source>
|
||||
<translation type="unfinished">ISO Image Path:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="50"/>
|
||||
<source>请选择系统镜像</source>
|
||||
<translation type="unfinished">Input System ISO Image</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="57"/>
|
||||
<source>浏览……</source>
|
||||
<translation type="unfinished">Browser......</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="68"/>
|
||||
<source>系统版本:</source>
|
||||
<translation type="unfinished">System Version:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="78"/>
|
||||
<source>请选择系统类型(如果识别不了请自行选择,如果选择错误或不支持将无法进行自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="82"/>
|
||||
<source>Windows 7 32 位(支持自动安装)</source>
|
||||
<translation type="unfinished">Windows 7 X86(Support Auto Install)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="87"/>
|
||||
<source>Windows 7 64 位(支持自动安装)</source>
|
||||
<translation type="unfinished">Windows 7 X64(Support Auto Install)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="92"/>
|
||||
<source>其它 Windows 系统(不支持自动安装)</source>
|
||||
<translation type="unfinished">Other Windows(Don't Support Auto Install)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="117"/>
|
||||
<source>安装</source>
|
||||
<translation type="unfinished">Install</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="126"/>
|
||||
<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>
|
||||
<hr /></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="141"/>
|
||||
<source>安装/使用帮助</source>
|
||||
<translation type="unfinished">Install/Using Help</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="150"/>
|
||||
<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;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了)</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;">安装加强功能有什么好处?</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="224"/>
|
||||
<location filename="mainwindow.ui" line="313"/>
|
||||
<source>关于</source>
|
||||
<translation type="unfinished">About</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="281"/>
|
||||
<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;"> 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></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="308"/>
|
||||
<source>退出</source>
|
||||
<translation type="unfinished">Exit</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -1,771 +0,0 @@
|
||||
#############################################################################
|
||||
# Makefile for building: VirtualMachine
|
||||
# Generated by qmake (3.1) (Qt 5.15.6)
|
||||
# Project: VirtualMachine.pro
|
||||
# Template: app
|
||||
# Command: /usr/lib/qt5/bin/qmake -o Makefile VirtualMachine.pro
|
||||
#############################################################################
|
||||
|
||||
MAKEFILE = Makefile
|
||||
|
||||
EQ = =
|
||||
|
||||
####### Compiler, tools and options
|
||||
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
DEFINES = -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
|
||||
CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
|
||||
CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES)
|
||||
INCPATH = -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++
|
||||
QMAKE = /usr/lib/qt5/bin/qmake
|
||||
DEL_FILE = rm -f
|
||||
CHK_DIR_EXISTS= test -d
|
||||
MKDIR = mkdir -p
|
||||
COPY = cp -f
|
||||
COPY_FILE = cp -f
|
||||
COPY_DIR = cp -f -R
|
||||
INSTALL_FILE = install -m 644 -p
|
||||
INSTALL_PROGRAM = install -m 755 -p
|
||||
INSTALL_DIR = cp -f -R
|
||||
QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall
|
||||
QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe
|
||||
DEL_FILE = rm -f
|
||||
SYMLINK = ln -f -s
|
||||
DEL_DIR = rmdir
|
||||
MOVE = mv -f
|
||||
TAR = tar -cf
|
||||
COMPRESS = gzip -9f
|
||||
DISTNAME = VirtualMachine1.0.0
|
||||
DISTDIR = /home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/.tmp/VirtualMachine1.0.0
|
||||
LINK = g++
|
||||
LFLAGS = -Wl,-O1
|
||||
LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread
|
||||
AR = ar cqs
|
||||
RANLIB =
|
||||
SED = sed
|
||||
STRIP = strip
|
||||
|
||||
####### Output directory
|
||||
|
||||
OBJECTS_DIR = ./
|
||||
|
||||
####### Files
|
||||
|
||||
SOURCES = main.cpp \
|
||||
mainwindow.cpp \
|
||||
buildvbox.cpp \
|
||||
vbox.cpp \
|
||||
command.cpp \
|
||||
infoutils.cpp \
|
||||
qemu.cpp qrc_图标.cpp \
|
||||
moc_mainwindow.cpp \
|
||||
moc_infoutils.cpp
|
||||
OBJECTS = main.o \
|
||||
mainwindow.o \
|
||||
buildvbox.o \
|
||||
vbox.o \
|
||||
command.o \
|
||||
infoutils.o \
|
||||
qemu.o \
|
||||
qrc_图标.o \
|
||||
moc_mainwindow.o \
|
||||
moc_infoutils.o
|
||||
DIST = /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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
|
||||
/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_BluezQt.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.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_KIdleTime.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_KScreen.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KSyntaxHighlighting.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandClient.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandServer.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_3danimation.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender_private.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_charts.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
|
||||
/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_dtkcommon.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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
|
||||
/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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
|
||||
/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_quickcontrols2.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quicktemplates2.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_sensors.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_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_lib_xmlpatterns.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_ModemManagerQt.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_NetworkManagerQt.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_QApt.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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
|
||||
VirtualMachine.pro mainwindow.h \
|
||||
buildvbox.h \
|
||||
vbox.h \
|
||||
command.h \
|
||||
infoutils.h \
|
||||
qemu.h main.cpp \
|
||||
mainwindow.cpp \
|
||||
buildvbox.cpp \
|
||||
vbox.cpp \
|
||||
command.cpp \
|
||||
infoutils.cpp \
|
||||
qemu.cpp
|
||||
QMAKE_TARGET = VirtualMachine
|
||||
DESTDIR =
|
||||
TARGET = VirtualMachine
|
||||
|
||||
|
||||
first: all
|
||||
####### Build rules
|
||||
|
||||
VirtualMachine: ui_mainwindow.h $(OBJECTS)
|
||||
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
|
||||
|
||||
Makefile: VirtualMachine.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf \
|
||||
/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_BluezQt.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.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_KIdleTime.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_KScreen.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KSyntaxHighlighting.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandClient.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandServer.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_3danimation.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender_private.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_charts.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri \
|
||||
/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_dtkcommon.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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
|
||||
/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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
|
||||
/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_quickcontrols2.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quicktemplates2.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_sensors.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_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_lib_xmlpatterns.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_ModemManagerQt.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_NetworkManagerQt.pri \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_QApt.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 \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \
|
||||
VirtualMachine.pro \
|
||||
图标.qrc
|
||||
$(QMAKE) -o Makefile VirtualMachine.pro
|
||||
/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:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base.conf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/gcc-base-unix.conf:
|
||||
/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_BluezQt.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuth.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_KIdleTime.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_KScreen.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KSyntaxHighlighting.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandClient.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWaylandServer.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_3danimation.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3danimation_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dcore_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dextras_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dinput_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquick_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_3drender_private.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_charts.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_core.pri:
|
||||
/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_dtkcommon.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:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fb_support_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
|
||||
/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:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network_private.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_opengl_private.pri:
|
||||
/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_quickcontrols2.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_quicktemplates2.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_sensors.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_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_lib_xmlpatterns.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_ModemManagerQt.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_NetworkManagerQt.pri:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_QApt.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:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_post.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exclusive_builds.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/toolchain.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_pre.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resolve_config.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/default_post.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/warn_on.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qt.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources_functions.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/resources.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/moc.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/opengl.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/uic.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/unix/thread.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/qmake_use.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/file_copies.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/testcase_targets.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf:
|
||||
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf:
|
||||
VirtualMachine.pro:
|
||||
图标.qrc:
|
||||
qmake: FORCE
|
||||
@$(QMAKE) -o Makefile VirtualMachine.pro
|
||||
|
||||
qmake_all: FORCE
|
||||
|
||||
|
||||
all: Makefile VirtualMachine
|
||||
|
||||
dist: distdir FORCE
|
||||
(cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)
|
||||
|
||||
distdir: FORCE
|
||||
@test -d $(DISTDIR) || mkdir -p $(DISTDIR)
|
||||
$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
|
||||
$(COPY_FILE) --parents 图标.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 $(DISTDIR)/
|
||||
$(COPY_FILE) --parents main.cpp mainwindow.cpp buildvbox.cpp vbox.cpp command.cpp infoutils.cpp qemu.cpp $(DISTDIR)/
|
||||
$(COPY_FILE) --parents mainwindow.ui $(DISTDIR)/
|
||||
$(COPY_FILE) --parents zh_CN.ts en_US.ts $(DISTDIR)/
|
||||
|
||||
|
||||
clean: compiler_clean
|
||||
-$(DEL_FILE) $(OBJECTS)
|
||||
-$(DEL_FILE) *~ core *.core
|
||||
|
||||
|
||||
distclean: clean
|
||||
-$(DEL_FILE) $(TARGET)
|
||||
-$(DEL_FILE) .qmake.stash
|
||||
-$(DEL_FILE) Makefile
|
||||
|
||||
|
||||
####### Sub-libraries
|
||||
|
||||
mocclean: compiler_moc_header_clean compiler_moc_objc_header_clean compiler_moc_source_clean
|
||||
|
||||
mocables: compiler_moc_header_make_all compiler_moc_objc_header_make_all compiler_moc_source_make_all
|
||||
|
||||
check: first
|
||||
|
||||
benchmark: first
|
||||
|
||||
compiler_rcc_make_all: qrc_图标.cpp
|
||||
compiler_rcc_clean:
|
||||
-$(DEL_FILE) qrc_图标.cpp
|
||||
qrc_图标.cpp: 图标.qrc \
|
||||
/usr/lib/qt5/bin/rcc \
|
||||
deepin-wine-runner.png \
|
||||
deepin-wine-runner.svg \
|
||||
截图_VirtualBox\ Machine_20220712142929.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143018.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712192850.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143044.png \
|
||||
截图/截图_VirtualBox\ Manager_20220712223602.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143103.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143029.png \
|
||||
截图/截图_选择区域_20220712224639.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712193527.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143037.png \
|
||||
截图/截图_VirtualBox_20220712223705.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712143006.png \
|
||||
截图/截图_VirtualBox\ Machine_20220712191756.png \
|
||||
LANG/virtualmachine-en_US.ts \
|
||||
LANG/virtualmachine-en_US.qm
|
||||
/usr/lib/qt5/bin/rcc -name 图标 图标.qrc -o qrc_图标.cpp
|
||||
|
||||
compiler_moc_predefs_make_all: moc_predefs.h
|
||||
compiler_moc_predefs_clean:
|
||||
-$(DEL_FILE) moc_predefs.h
|
||||
moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
|
||||
g++ -pipe -O2 -std=gnu++11 -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
|
||||
|
||||
compiler_moc_header_make_all: moc_mainwindow.cpp moc_infoutils.cpp
|
||||
compiler_moc_header_clean:
|
||||
-$(DEL_FILE) moc_mainwindow.cpp moc_infoutils.cpp
|
||||
moc_mainwindow.cpp: mainwindow.h \
|
||||
moc_predefs.h \
|
||||
/usr/lib/qt5/bin/moc
|
||||
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include mainwindow.h -o moc_mainwindow.cpp
|
||||
|
||||
moc_infoutils.cpp: infoutils.h \
|
||||
moc_predefs.h \
|
||||
/usr/lib/qt5/bin/moc
|
||||
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include infoutils.h -o moc_infoutils.cpp
|
||||
|
||||
compiler_moc_objc_header_make_all:
|
||||
compiler_moc_objc_header_clean:
|
||||
compiler_moc_source_make_all:
|
||||
compiler_moc_source_clean:
|
||||
compiler_uic_make_all: ui_mainwindow.h
|
||||
compiler_uic_clean:
|
||||
-$(DEL_FILE) ui_mainwindow.h
|
||||
ui_mainwindow.h: mainwindow.ui \
|
||||
/usr/lib/qt5/bin/uic
|
||||
/usr/lib/qt5/bin/uic mainwindow.ui -o ui_mainwindow.h
|
||||
|
||||
compiler_yacc_decl_make_all:
|
||||
compiler_yacc_decl_clean:
|
||||
compiler_yacc_impl_make_all:
|
||||
compiler_yacc_impl_clean:
|
||||
compiler_lex_make_all:
|
||||
compiler_lex_clean:
|
||||
compiler_clean: compiler_rcc_clean compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean
|
||||
|
||||
####### Compile
|
||||
|
||||
main.o: main.cpp mainwindow.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
|
||||
|
||||
mainwindow.o: mainwindow.cpp mainwindow.h \
|
||||
ui_mainwindow.h \
|
||||
buildvbox.h \
|
||||
infoutils.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o mainwindow.cpp
|
||||
|
||||
buildvbox.o: buildvbox.cpp buildvbox.h \
|
||||
vbox.h \
|
||||
infoutils.h \
|
||||
qemu.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o buildvbox.o buildvbox.cpp
|
||||
|
||||
vbox.o: vbox.cpp vbox.h \
|
||||
command.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o vbox.o vbox.cpp
|
||||
|
||||
command.o: command.cpp command.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o command.o command.cpp
|
||||
|
||||
infoutils.o: infoutils.cpp infoutils.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o infoutils.o infoutils.cpp
|
||||
|
||||
qemu.o: qemu.cpp qemu.h \
|
||||
command.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qemu.o qemu.cpp
|
||||
|
||||
qrc_图标.o: qrc_图标.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_图标.o qrc_图标.cpp
|
||||
|
||||
moc_mainwindow.o: moc_mainwindow.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
|
||||
|
||||
moc_infoutils.o: moc_infoutils.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_infoutils.o moc_infoutils.cpp
|
||||
|
||||
####### Install
|
||||
|
||||
install_target: first FORCE
|
||||
@test -d $(INSTALL_ROOT)/opt/VirtualMachine/bin || mkdir -p $(INSTALL_ROOT)/opt/VirtualMachine/bin
|
||||
$(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/VirtualMachine/bin/$(QMAKE_TARGET)
|
||||
-$(STRIP) $(INSTALL_ROOT)/opt/VirtualMachine/bin/$(QMAKE_TARGET)
|
||||
|
||||
uninstall_target: FORCE
|
||||
-$(DEL_FILE) $(INSTALL_ROOT)/opt/VirtualMachine/bin/$(QMAKE_TARGET)
|
||||
-$(DEL_DIR) $(INSTALL_ROOT)/opt/VirtualMachine/bin/
|
||||
|
||||
|
||||
install: install_target FORCE
|
||||
|
||||
uninstall: uninstall_target FORCE
|
||||
|
||||
FORCE:
|
||||
|
||||
@@ -1,26 +1,31 @@
|
||||
# Windows虚拟机安装工具
|
||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||
<h1 align="center">Wine 运行器 C++ 版</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>
|
||||
|
||||
## 介绍
|
||||
基于VirtualBox/Qemu制作的小白Windows虚拟机安装工具,可以做到只需要用户下载系统镜像并点击安装即可,无需顾及虚拟机安装、创建、虚拟机的分区等等
|
||||
此为 Wine 运行器子项目:https://gitee.com/gfdgd-xi/deep-wine-runner
|
||||
依照 GPLV3 协议开源
|
||||
Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。
|
||||
它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。
|
||||
而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。
|
||||
且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式
|
||||
该版本用于解决 Python 版 Wine 运行器依赖过于复杂的问题(简化版 Wine 运行器)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 如何使用
|
||||
安装最新版本的 Wine 运行器即可,最新版本的 Wine 运行器自带此安装工具
|
||||
|
||||
## 编译指南
|
||||
## 如何编译
|
||||
```bash
|
||||
git clone https://gitee.com/gfdgd-xi/windows-virtual-machine-installer-for-wine-runner.git
|
||||
cd windows-virtual-machine-installer-for-wine-runner
|
||||
git clone https://gitee.com/gfdgd-xi/deep-wine-runner-cpp --depth=1
|
||||
cd deep-wine-runner-cpp
|
||||
qmake .
|
||||
make -j4
|
||||
./deep-wine-runner-cpp
|
||||
```
|
||||
## 预编译版本
|
||||
https://gitee.com/gfdgd-xi/deep-wine-runner/tree/main/VM
|
||||
|
||||
# ©2020~2023 gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
## 请作者吃点零食
|
||||
如果你觉得 Wine 运行器对你有帮助,可以请作者吃点零食
|
||||
(本来想说喝一杯咖啡的,但我不喝啊)
|
||||
<img src="Icon/QR/Wechat.png" width="200" />
|
||||
<img src="Icon/QR/Alipay.jpg" width="200" />
|
||||
<img src="Icon/QR/QQ.png" width="200" >
|
||||
|
||||
|
||||
# ©2020-Now gfdgd xi
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>information.json</file>
|
||||
<file>LICENSE</file>
|
||||
</qresource>
|
||||
<qresource prefix="/Icon">
|
||||
<file>deepin-wine-runner_512x512.png</file>
|
||||
<file>deepin-wine-runner.svg</file>
|
||||
<file>Icon/Program/AboutIcon0.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/Icon/QR">
|
||||
<file>Icon/QR/Alipay.jpg</file>
|
||||
<file>Icon/QR/QQ.png</file>
|
||||
<file>Icon/QR/Wechat.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/Icon/Function">
|
||||
<file>Icon/Function/CHROOT.png</file>
|
||||
<file>Icon/Function/more-wine.png</file>
|
||||
<file>Icon/Function/wine.png</file>
|
||||
<file>Icon/Function/wine23A.png</file>
|
||||
<file>Icon/Function/wine23P.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
@@ -1,56 +0,0 @@
|
||||
#-------------------------------------------------
|
||||
#
|
||||
# Project created by QtCreator 2022-07-12T13:39:19
|
||||
#
|
||||
#-------------------------------------------------
|
||||
|
||||
QT += core gui
|
||||
TRANSLATIONS += zh_CN.ts\
|
||||
en_US.ts
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
TARGET = VirtualMachine
|
||||
TEMPLATE = app
|
||||
QT += network
|
||||
|
||||
# The following define makes your compiler emit warnings if you use
|
||||
# any feature of Qt which has been marked as deprecated (the exact warnings
|
||||
# depend on your compiler). Please consult the documentation of the
|
||||
# deprecated API in order to know how to port your code away from it.
|
||||
DEFINES += QT_DEPRECATED_WARNINGS
|
||||
|
||||
# You can also make your code fail to compile if you use deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
CONFIG += c++11
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
mainwindow.cpp \
|
||||
buildvbox.cpp \
|
||||
vbox.cpp \
|
||||
command.cpp \
|
||||
infoutils.cpp \
|
||||
qemu.cpp
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
buildvbox.h \
|
||||
vbox.h \
|
||||
command.h \
|
||||
infoutils.h \
|
||||
qemu.h
|
||||
|
||||
FORMS += \
|
||||
mainwindow.ui
|
||||
|
||||
# Default rules for deployment.
|
||||
qnx: target.path = /tmp/$${TARGET}/bin
|
||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
!isEmpty(target.path): INSTALLS += target
|
||||
|
||||
RESOURCES += \
|
||||
图标.qrc
|
||||
@@ -1,213 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.8.2, 2023-03-11T11:41:41. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{4ffd6df9-1365-4837-81b1-582e0e2d1f21}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</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.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="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="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
|
||||
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<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/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.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.DefaultDisplayName">Make</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
|
||||
<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="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</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">部署</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></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.PluginSettings"/>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
|
||||
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
|
||||
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
|
||||
<value type="QString" key="RunConfiguration.Arguments"></value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">20</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">20</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
@@ -0,0 +1,79 @@
|
||||
#include "about_this_program.h"
|
||||
#include "ui_about_this_program.h"
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
about_this_program::about_this_program(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::about_this_program)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
QString tips = tr("<h4>提示:</h4>\n"\
|
||||
"1、使用终端运行该程序,可以看到 wine 以及程序本身的提示和报错;\n"\
|
||||
"2、wine 32 位和 64 位的容器互不兼容;\n"\
|
||||
"3、所有的 wine 和 winetricks 均需要自行安装(可以从 菜单栏=>程序 里面进行安装);\n"\
|
||||
"4、本程序支持带参数运行 wine 程序(之前版本也可以),只需要按以下格式即可:\n"\
|
||||
"exe路径\' 参数 \'\n"\
|
||||
"即可(单引号需要输入);\n"\
|
||||
"5、wine 容器如果没有指定,则会默认为 ~/.wine;\n"\
|
||||
"6、如果可执行文件比较大的话,会出现点击“获取该程序运行情况”出现假死的情况,因为正在后台读取 SHA1,只需要等一下即可(读取速度依照您电脑处理速度、读写速度、可执行文件大小等有关);\n"\
|
||||
"7、如果非 X86 的用户的 UOS 专业版用户想要使用的话,只需要在应用商店安装一个 Wine 版本微信即可在本程序选择正确的 Wine 运行程序;");
|
||||
QString aboutProgram = tr("<p>Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。</p>\n"\
|
||||
"<p>它同时还内置了基于Qemu/VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作,也能在非 X86 架构安装 X86 架构的 Windows 操作系统(但是效率较低,可以运行些老系统)。</p>\n"\
|
||||
"<p>而且对于部分 Wine 应用适配者来说,提供了图形化的打包工具,以及提供了一些常用工具以及运行库的安装方式,以及能安装多种不同的 Wine 以测试效果,能极大提升适配效率。</p>\n"\
|
||||
"<p>且对于 Deepin23 用户做了特别优化,以便能在缺少 i386 运行库的情况下运行 Wine32。同时也为非 X86 架构用户提供了 Box86/64、Qemu User 的安装方式</p>\n"\
|
||||
"<pre>");
|
||||
QString goodRunSystem = tr("常见 Linux 发行版");
|
||||
QString updateThingsString = "";
|
||||
QString updateTime = "2023年12月24日";
|
||||
QString thankText = "";
|
||||
QString version = "";
|
||||
QString programUrl = "https://gitee.com/gfdgd-xi/deep-wine-runner\nhttps://github.com/gfdgd-xi/deep-wine-runner\nhttps://gfdgd-xi.github.io";
|
||||
QString about = "<style>\n"\
|
||||
"a:link, a:active {{\n"\
|
||||
" text-decoration: none;\n"\
|
||||
"}}\n"\
|
||||
"</style>\n"\
|
||||
"<h1>关于</h1>\n"\
|
||||
"" + aboutProgram + "\n"\
|
||||
"\n"\
|
||||
"版本:" + version + "\n"\
|
||||
"适用平台:" + goodRunSystem + "\n"\
|
||||
"安装包构建时间:" + __DATE__ + " " + __TIME__ + "\n"\
|
||||
"Qt 版本:" + qVersion() + "\n"\
|
||||
"程序官网:" + programUrl + "\n"\
|
||||
"<b>Wine 运行器 QQ 交流群:762985460</b>\n"\
|
||||
"<b>Wine运行器 QQ 频道:https://pd.qq.com/s/edqkgeydx</b>\n"\
|
||||
"当前程序占用体积:@programSize@MB</pre>\n"\
|
||||
"<p>本程序依照 GPLV3 协议开源</p>\n"\
|
||||
"<hr>\n"\
|
||||
"<h1>鸣谢名单</h1>\n"\
|
||||
"<pre>" + thankText + "</pre>\n"\
|
||||
"<hr>\n"\
|
||||
"<h1>更新内容</h1>\n"\
|
||||
"<pre>" + updateThingsString + "\n"\
|
||||
"<b>更新时间:" + updateTime + "</b></pre>\n"\
|
||||
"<hr>\n"\
|
||||
"<h1>提示</h1>\n"\
|
||||
"<pre>" + tips + "\n"\
|
||||
"</pre>\n"\
|
||||
"<hr>\n"\
|
||||
"<h1>友谊链接</h1>\n"\
|
||||
"<pre>星火应用商店:<a href='https://spark-app.store/'>https://spark-app.store/</a>\n"\
|
||||
"Deepin 官网:<a href='https://www.deepin.org'>https://www.deepin.org</a>\n"\
|
||||
"Deepin 论坛:<a href='https://bbs.deepin.org'>https://bbs.deepin.org</a>\n"\
|
||||
"gfdgd xi:<a href='https://gfdgd-xi.github.io'>https://gfdgd-xi.github.io</a>\n"\
|
||||
"<hr>\n"\
|
||||
"<h1>©2020~" + QDateTime(QDateTime::currentDateTime()).toString("yyyy") + " By gfdgd xi</h1>";
|
||||
}
|
||||
|
||||
about_this_program::~about_this_program()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void about_this_program::on_ok_clicked()
|
||||
{
|
||||
this->close();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifndef ABOUT_THIS_PROGRAM_H
|
||||
#define ABOUT_THIS_PROGRAM_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class about_this_program;
|
||||
}
|
||||
|
||||
class about_this_program : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit about_this_program(QWidget *parent = nullptr);
|
||||
~about_this_program();
|
||||
|
||||
private slots:
|
||||
void on_ok_clicked();
|
||||
|
||||
private:
|
||||
Ui::about_this_program *ui;
|
||||
};
|
||||
|
||||
#endif // ABOUT_THIS_PROGRAM_H
|
||||
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>about_this_program</class>
|
||||
<widget class="QDialog" name="about_this_program">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>863</width>
|
||||
<height>498</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>关于 Wine 运行器</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="Resources.qrc">
|
||||
<normaloff>:/Icon/deepin-wine-runner.svg</normaloff>:/Icon/deepin-wine-runner.svg</iconset>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="1">
|
||||
<widget class="QTextBrowser" name="aboutInfo"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="ok">
|
||||
<property name="text">
|
||||
<string>确定</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="iconShow">
|
||||
<property name="text">
|
||||
<string><a><img src=":/Icon/deepin-wine-runner.svg" width=256 ></a></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="Resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -1,125 +0,0 @@
|
||||
################################################
|
||||
# 作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
# 版本:1.0
|
||||
# 依照 GPL V3 协议开源
|
||||
################################################
|
||||
# 参考文献:
|
||||
# https://juejin.cn/post/7080484519328874510
|
||||
################################################
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
homePath = os.path.expanduser('~')
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0]
|
||||
|
||||
class File:
|
||||
def __init__(self, path) -> None:
|
||||
self.path = path
|
||||
|
||||
def getFileFolderSize(self):
|
||||
"""get size for file or folder"""
|
||||
totalSize = 0
|
||||
if not os.path.exists(self.path):
|
||||
return totalSize
|
||||
if os.path.isfile(self.path):
|
||||
totalSize = os.path.getsize(self.path) # 5041481
|
||||
return totalSize
|
||||
if os.path.isdir(self.path):
|
||||
with os.scandir(self.path) as dirEntryList:
|
||||
for curSubEntry in dirEntryList:
|
||||
curSubEntryFullPath = os.path.join(self.path, curSubEntry.name)
|
||||
if curSubEntry.is_dir():
|
||||
curSubFolderSize = self.path(curSubEntryFullPath) # 5800007
|
||||
totalSize += curSubFolderSize
|
||||
elif curSubEntry.is_file():
|
||||
curSubFileSize = os.path.getsize(curSubEntryFullPath) # 1891
|
||||
totalSize += curSubFileSize
|
||||
return totalSize
|
||||
|
||||
class Manager:
|
||||
def __init__(self, name: str, managerPath: str="VBoxManage") -> None:
|
||||
self.name = name
|
||||
self.managerPath = managerPath
|
||||
self.vboxVersion = subprocess.getoutput(f"\"{self.managerPath}\" -v")
|
||||
|
||||
def Create(self, type: str="Windows7") -> None:
|
||||
os.system(f"\"{self.managerPath}\" createvm --name \"{self.name}\" --ostype \"{type}\" --register")
|
||||
|
||||
def CreateDisk(self, path: str, size: int) -> None:
|
||||
os.system(f"\"{self.managerPath}\" createvdi --filename \"{path}\" --size \"{size}\"")
|
||||
|
||||
def CreateDiskControl(self, controlName: str="storage_controller_1") -> None:
|
||||
os.system(f"\"{self.managerPath}\" storagectl \"{self.name}\" --name \"{controlName}\" --add ide")
|
||||
|
||||
def MountDisk(self, diskPath: str, controlName: str="storage_controller_1", port: int=0, device: int=0) -> None:
|
||||
os.system(f"\"{self.managerPath}\" storageattach \"{self.name}\" --storagectl \"{controlName}\" --type hdd --port {port} --device {device} --medium \"{diskPath}\"")
|
||||
|
||||
def MountISO(self, isoPath: str, controlName: str="storage_controller_1", port: int=1, device: int=0) -> None:
|
||||
os.system(f"\"{self.managerPath}\" storageattach \"{self.name}\" --storagectl \"{controlName}\" --type dvddrive --port {port} --device {device} --medium \"{isoPath}\"")
|
||||
|
||||
def BootFirst(self, bootDrive: str) -> None:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --boot1 {bootDrive}")
|
||||
|
||||
def SetNetBridge(self, netDriver: str) -> None:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --nic1 bridged --cableconnected1 on --nictype1 82540EM --bridgeadapter1 \"{netDriver}\" --intnet1 brigh1 --macaddress1 auto")
|
||||
#os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --nic1 hostif")
|
||||
pass
|
||||
|
||||
def SetCPU(self, number: int) -> None:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --cpus {number}")
|
||||
|
||||
def SetMemory(self, memory: int) -> None:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --memory {memory}")
|
||||
|
||||
def SetRemote(self, setting: bool) -> None:
|
||||
if setting:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --vrde on")
|
||||
return
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --vrde off")
|
||||
|
||||
def SetRemoteConnectSetting(self, port: int=5540) -> None:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --vrdeport {port} --vrdeaddress """)
|
||||
|
||||
def Start(self, unShown: bool = False) -> None:
|
||||
if unShown:
|
||||
os.system(f"\"{self.managerPath}\" startvm \"{self.name}\" -type headless")
|
||||
return
|
||||
os.system(f"\"{self.managerPath}\" startvm \"{self.name}\"")
|
||||
|
||||
def Stop(self) -> None:
|
||||
os.system(f"\"{self.managerPath}\" controlvm \"{self.name}\" poweroff")
|
||||
|
||||
def Delete(self) -> None:
|
||||
os.system(f"\"{self.managerPath}\" unregistervm --delete \"{self.name}\"")
|
||||
|
||||
def SetDisplayMemory(self, memory: int) -> None:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --vram {memory}")
|
||||
|
||||
def InstallGuessAdditions(self, controlName: str="storage_controller_1", port: int=1, device: int=0) -> None:
|
||||
self.MountISO("/usr/share/virtualbox/VBoxGuestAdditions.iso", controlName, port, device)
|
||||
|
||||
def EnabledAudio(self) -> None:
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --audio pulse --audiocontroller hda --audioin on --audioout on")
|
||||
#os.system("")
|
||||
|
||||
def EnabledClipboardMode(self):
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --clipboard-mode bidirectional")
|
||||
|
||||
def EnabledDraganddrop(self):
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --draganddrop bidirectional")
|
||||
|
||||
def ShareFile(self, name, path):
|
||||
os.system(f"\"{self.managerPath}\" sharedfolder add \"{self.name}\" -name \"{name}\" -hostpath \"{path}\"")
|
||||
|
||||
def SetVBoxSVGA(self):
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --graphicscontroller vboxsvga")
|
||||
|
||||
def SetMousePS2(self):
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --mouse usb")
|
||||
|
||||
def SetKeyboardPS2(self):
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --keyboard usb")
|
||||
|
||||
def OpenUSB(self):
|
||||
os.system(f"\"{self.managerPath}\" modifyvm \"{self.name}\" --usbohci on")
|
||||
pass
|
||||
@@ -1,195 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#include <sys/sysinfo.h>
|
||||
#include "buildvbox.h"
|
||||
#include "vbox.h"
|
||||
#include <QFile>
|
||||
#include <QDir>
|
||||
#include <QNetworkInterface>
|
||||
#include <QMessageBox>
|
||||
#include <QCoreApplication>
|
||||
#include <infoutils.h>
|
||||
#include "qemu.h"
|
||||
// 懒得用 QThread 了(要继承)
|
||||
#include <thread>
|
||||
using namespace std;
|
||||
|
||||
// 清屏
|
||||
void buildvbox::CleanScreen(){
|
||||
if(QFile::exists("/etc/os-version")){
|
||||
// Unix
|
||||
system("clear");
|
||||
return;
|
||||
}
|
||||
// Windows
|
||||
system("cls");
|
||||
}
|
||||
|
||||
QString buildvbox::GetNet(){
|
||||
QList<QNetworkInterface> netList = QNetworkInterface::allInterfaces();
|
||||
foreach(QNetworkInterface net, netList){
|
||||
qDebug() << "Device:" << net.name();
|
||||
QList<QNetworkAddressEntry> entryList = net.addressEntries();
|
||||
foreach(QNetworkAddressEntry entry, entryList){
|
||||
QString ip = entry.ip().toString();
|
||||
qDebug() << "IP Address: " << ip;
|
||||
if(ip != "127.0.0.1" && ip != "192.168.250.1" && ip != "::1" && net.name() != "lo"){
|
||||
// 返回网卡名称
|
||||
return net.name();
|
||||
}
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
int buildvbox::Download(QString url, QString path, QString fileName){
|
||||
return system(("aria2c -x 16 -s 16 -c " + url + " -d " + path + " -o " + fileName).toUtf8());
|
||||
}
|
||||
|
||||
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 vm("Windows");
|
||||
|
||||
switch (id) {
|
||||
case 0:
|
||||
vm.Create("Windows7");
|
||||
break;
|
||||
case 1:
|
||||
vm.Create("Windows7_64");
|
||||
break;
|
||||
vm.Create("WindowsNT_64");
|
||||
}
|
||||
vm.CreateDiskControl();
|
||||
//vm.CreateDiskControl("storage_controller_2");
|
||||
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072);
|
||||
vm.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
|
||||
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
|
||||
switch (id) {
|
||||
case 0:
|
||||
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
|
||||
break;
|
||||
case 1:
|
||||
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
|
||||
break;
|
||||
}
|
||||
/*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());
|
||||
long memory = 0;
|
||||
long memoryAll = 0;
|
||||
long swap = 0;
|
||||
long swapAll = 0;
|
||||
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
|
||||
//memoryRate(memory, memoryAll, swap, swapAll);
|
||||
vm.SetMemory(memoryAll / 3 / 1024);
|
||||
vm.SetDisplayMemory(32);
|
||||
vm.SetNetBridge(net);
|
||||
vm.EnabledAudio();
|
||||
vm.EnabledClipboardMode();
|
||||
vm.EnabledDraganddrop();
|
||||
vm.SetVBoxSVGA();
|
||||
vm.SetMousePS2();
|
||||
vm.SetKeyboardPS2();
|
||||
vm.OpenUSB();
|
||||
vm.ShareFile("ROOT", "/");
|
||||
vm.ShareFile("HOME", QDir::homePath());
|
||||
vm.Start();
|
||||
}
|
||||
else if(vm == 1){
|
||||
// ?
|
||||
//vbox *box = new vbox("Window");
|
||||
vbox vm("Windows");
|
||||
//qemu vm("Windows");
|
||||
|
||||
switch (id) {
|
||||
case 0:
|
||||
vm.Create("Windows7");
|
||||
break;
|
||||
case 1:
|
||||
vm.Create("Windows7_64");
|
||||
break;
|
||||
vm.Create("WindowsNT_64");
|
||||
}
|
||||
QDir dir("/home/gfdgd_xi/Qemu/Windows/");
|
||||
dir.mkpath("/home/gfdgd_xi/Qemu/Windows/");
|
||||
vm.CreateDiskControl();
|
||||
//vm.CreateDiskControl("storage_controller_2");
|
||||
vm.CreateDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi", 131072);
|
||||
vm.MountDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi");
|
||||
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
|
||||
switch (id) {
|
||||
case 0:
|
||||
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
|
||||
break;
|
||||
case 1:
|
||||
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
// 判断 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_conf());
|
||||
long memory = 0;
|
||||
long memoryAll = 0;
|
||||
long swap = 0;
|
||||
long swapAll = 0;
|
||||
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
|
||||
//memoryRate(memory, memoryAll, swap, swapAll);
|
||||
vm.SetMemory(memoryAll / 3 / 1024);
|
||||
vm.SetDisplayMemory(32);
|
||||
vm.SetNetBridge(net);
|
||||
vm.EnabledAudio();
|
||||
vm.EnabledClipboardMode();
|
||||
vm.EnabledDraganddrop();
|
||||
vm.SetVBoxSVGA();
|
||||
vm.SetMousePS2();
|
||||
vm.SetKeyboardPS2();
|
||||
vm.OpenUSB();
|
||||
vm.ShareFile("ROOT", "/");
|
||||
vm.ShareFile("HOME", QDir::homePath());
|
||||
vm.Start();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#ifndef BUILDVBOX_H
|
||||
#define BUILDVBOX_H
|
||||
#include <QString>
|
||||
|
||||
class buildvbox
|
||||
{
|
||||
// Q_OBJECT
|
||||
public:
|
||||
buildvbox(QString isoPath, int id=0, int vm=0);
|
||||
void CleanScreen();
|
||||
QString GetNet();
|
||||
int Download(QString url, QString path, QString fileName);
|
||||
};
|
||||
|
||||
#endif // BUILDVBOX_H
|
||||
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#include "command.h"
|
||||
#include <QProcess>
|
||||
Command::Command()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QString Command::GetCommand(QString command){
|
||||
QProcess process;
|
||||
process.start(command);
|
||||
process.waitForStarted();
|
||||
process.waitForFinished();
|
||||
return QString::fromLocal8Bit(process.readAllStandardOutput());
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#ifndef COMMAND_H
|
||||
#define COMMAND_H
|
||||
#include <QString>
|
||||
|
||||
class Command
|
||||
{
|
||||
public:
|
||||
Command();
|
||||
QString GetCommand(QString command);
|
||||
};
|
||||
|
||||
#endif // COMMAND_H
|
||||
@@ -0,0 +1,38 @@
|
||||
QT += core gui
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
|
||||
CONFIG += c++17
|
||||
|
||||
# You can make your code fail to compile if it uses deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
SOURCES += \
|
||||
about_this_program.cpp \
|
||||
main.cpp \
|
||||
mainwindow.cpp \
|
||||
qr.cpp
|
||||
|
||||
HEADERS += \
|
||||
about_this_program.h \
|
||||
mainwindow.h \
|
||||
qr.h
|
||||
|
||||
FORMS += \
|
||||
about_this_program.ui \
|
||||
mainwindow.ui \
|
||||
qr.ui
|
||||
|
||||
TRANSLATIONS += \
|
||||
deep-wine-runner-cpp_zh_CN.ts
|
||||
CONFIG += lrelease
|
||||
CONFIG += embed_translations
|
||||
|
||||
# Default rules for deployment.
|
||||
qnx: target.path = /tmp/$${TARGET}/bin
|
||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
!isEmpty(target.path): INSTALLS += target
|
||||
|
||||
RESOURCES += \
|
||||
Resources.qrc
|
||||
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_CN"></TS>
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"Version": "3.6.1",
|
||||
"Time": "未知",
|
||||
"Thank": [
|
||||
"感谢 @ёжезийлёзйз 进行 Loongarch 架构的测试(旧世界,远程)",
|
||||
"感谢 @run@3a4k 提供 3a4000 测试机器(远程)",
|
||||
"感谢 RacoonGX 的付出与贡献",
|
||||
"感谢 @Amber 编写的《使用wine运行器打包无安装包的软件》:https://bbs.deepin.org/post/247720",
|
||||
"感谢 @豪 提供程序图标",
|
||||
"感谢 @鹤舞白沙 对程序文案进行优化以及编写《Wine运行器和Wine打包器傻瓜式使用教程(小白专用) 》:https://bbs.deepin.org/post/246837",
|
||||
"感谢 @璀璨星空 提供的彩蛋图标",
|
||||
"感谢 @Bail 反馈的更新策略问题",
|
||||
"感谢 @白水 反馈的安装 exagear 后无法识别和调用 box86 的问题",
|
||||
"感谢 @汐光. 提供的翻译接口",
|
||||
"感谢 @鹤舞白沙 专门为小白用户编写的使用 Wine 运行器非基于生态适配脚本的程序打包教程",
|
||||
"感谢 @牦牛儿苗 进行了龙芯 3a5000 平台的测试与移植",
|
||||
"感谢 @鹤舞白沙 优化了程序文案",
|
||||
"感谢 @豪 的程序测试和制作的论坛 https://gfdgdxi.flarum.cloud/",
|
||||
"感谢 @185******67 反馈的 2.4.0 无法打开 Visual Basic 组件安装工具的问题",
|
||||
"感谢 @shenmo 提供的 在打包器的 postrm 脚本添加 kill.sh、追加参数改为 --uri xxxxxxx、独立生成容器 7z 文件的功能",
|
||||
"感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
|
||||
"感谢 @zhangs https://bbs.deepin.org/post/227948",
|
||||
"感谢 @gtjmaster https://bbs.deepin.org/post/225509",
|
||||
"感谢 @统信UCARE服务 https://mp.weixin.qq.com/s/iOdfNv6phc8F4inackFFTw",
|
||||
"感谢 @星火应用商店 提供部分安装包的源以及本程序的下载地址",
|
||||
"感谢 @delsin 和 @神末shenmo 在 deepin 论坛提供打包器打包的 deb 包自动删除容器的建议",
|
||||
"感谢 @shenmo 反馈的 2.1.0 打包器问题和 2.1.0-1 终端调用问题",
|
||||
"感谢 @GershonWang 在 https://github.com/gfdgd-xi/deep-wine-runner/issues/1 提供窗口居中的建议",
|
||||
"感谢 @134******28 和 @sgb76 提供的新程序 GUI 布局和实现代码",
|
||||
"感谢 @sgb76 为 Wine 打包器(非生态适配脚本)打包的 i386 deb 提供建议",
|
||||
"感谢 @PossibleVing 提供的新版应用图标",
|
||||
"感谢 @zhengjl 反馈的 1.7.0 中 .net framrwork 3.5 非离线版安装包的问题以及 1.8.0 重复路径一直自动重复增加的问题",
|
||||
"感谢 @国川 @刘岐 提供的非 i386、amd64 运行 wine 使用 i386/amd64 可执行文件的教程和脚本",
|
||||
"感谢 @王俊文 @189******09 @tfhyl 提供在非 X86 平台的国产 PC 进行测试",
|
||||
"感谢 @cuisirwork 提供的提供视频教程的建议",
|
||||
"感谢 @办公助手 提供的非 X86 平台 Wine 运行自定义 exe 应用教程和 deb 包",
|
||||
"感谢 @季星火 反馈的无法使用该程序删除生成的 .desktop 的问题",
|
||||
"感谢 @ZYH 提供的敏感词列表",
|
||||
"感谢 @五行缺钱 反馈的 2.0.0 在 Deepin 23 缺失依赖 toilet 的问题",
|
||||
"感谢 @云的眼泪 @zhengjl 反馈的 2.0.0 发布忘记把安装包传蓝奏云的问题",
|
||||
"感谢 @虚幻的早晨 提出的添加 DXVK、VKD3D 的功能(VKD3D 暂未实现)",
|
||||
"感谢 @以勒 修改 Dll 提取工具提示文本的建议",
|
||||
"感谢 @历山居士 反馈的获取自动配置容器脚本工具无法正常加载数据的问题",
|
||||
"感谢 @Nick @奋斗ing 反馈的 2.1.0-2 的快捷方式故障",
|
||||
"感谢 @俊生鹏程 反馈的 2.1.0-2 及以前版本在鲲鹏运行 wine 错误的问题并积极测试,以及组件安装工具在 arm 架构的异常",
|
||||
"感谢 @云的眼泪 反馈的 2.1.0-2 更新死循环的问题,可见:https://bbs.deepin.org/post/243241,以及感谢 @神末shenmo @忘记、过去 和 @历山居士 的讨论",
|
||||
"感谢 @186******75 反馈的 2.2.0 基于生态适配脚本打包器对话框异常的问题",
|
||||
"感谢微信用户 @华为 @办公助手 @白水 @北冥没有鱼 @俊生鹏程 @^♀莫離♪^ @姚洪安 @гυи @杨飞 在 arm(飞腾/鲲鹏)架构上提供提供测试与帮助",
|
||||
"感谢 @办公助手 提供的 2.4.0 打包器支持生成的 arm 架构 deb 包同时支持 UOS box86+exagear 的建议",
|
||||
"",
|
||||
"感谢统信在 Wine 生态适配活动中提供的打包脚本",
|
||||
"也感谢 Deepin Wine 团体制作的 Deepin Wine 和对应的 Deepin Wine Tools,对本程序有很大的帮助",
|
||||
"也感谢 DXVK 的开发者开发了 DXVK 这个程序,项目链接:https://github.com/doitsujin/dxvk",
|
||||
"也感谢 WineHQ 开发团队开发的 WineHQ,项目网址:https://dl.winehq.org/",
|
||||
"也感谢来自 Vek 的灵感和 Vek 开发者的支持,项目链接:https://jihulab.com/vk",
|
||||
"最后也感谢支持本程序的用户和上传相关软件运行情况数据的用户,有你们的支持和使用,使这个程序变得更好",
|
||||
"",
|
||||
"可以从上面的各种解决方案更好的学习 Wine 生态适配,也可以看 deepin 论坛板块 https://bbs.deepin.org/module/detail/116 进行学习,最后也向各位有进行 Wine 生态适配的大佬进行由衷的感谢!",
|
||||
"如果上面有遗漏,请向我反馈补充"
|
||||
]
|
||||
}
|
||||
@@ -1,218 +0,0 @@
|
||||
/*
|
||||
来自:https://gitee.com/zinface/z-tools/tree/speedwidget-dev/src/SpeedWidget/infoUtils
|
||||
依据 GPLV3 开源
|
||||
*/
|
||||
#include "infoutils.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QtMath>
|
||||
|
||||
infoUtils::infoUtils(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QString infoUtils::setRateUnitSensitive(infoUtils::RateUnit unit, infoUtils::Sensitive sensitive)
|
||||
{
|
||||
switch (sensitive) {
|
||||
case Sensitive::Default: {
|
||||
switch (unit) {
|
||||
case RateUnit::RateBit:
|
||||
return QString("b/s");
|
||||
case RateUnit::RateByte:
|
||||
return QString("B/s");
|
||||
case RateUnit::RateKb:
|
||||
return QString("Kb/s");
|
||||
case RateUnit::RateMb:
|
||||
return QString("Mb/s");
|
||||
case RateUnit::RateGb:
|
||||
return QString("Gb/s");
|
||||
case RateUnit::RateTb:
|
||||
return QString("Tb/s");
|
||||
default:
|
||||
// qDebug()<<QString("Sensitive::Default, RateUnit is RateUnknow.");
|
||||
return QString("");
|
||||
}
|
||||
}
|
||||
case Sensitive::Upper: {
|
||||
switch (unit) {
|
||||
case RateUnit::RateBit:
|
||||
return QString("BIT/S");
|
||||
case RateUnit::RateByte:
|
||||
return QString("B/S");
|
||||
case RateUnit::RateKb:
|
||||
return QString("KB/S");
|
||||
case RateUnit::RateMb:
|
||||
return QString("MB/S");
|
||||
case RateUnit::RateGb:
|
||||
return QString("GB/S");
|
||||
case RateUnit::RateTb:
|
||||
return QString("TB/S");
|
||||
default:
|
||||
// qDebug()<<QString("Sensitive::Upper, RateUnit is RateUnknow.");
|
||||
return QString("");
|
||||
}
|
||||
}
|
||||
case Sensitive::Lower: {
|
||||
switch (unit) {
|
||||
case RateUnit::RateBit:
|
||||
return QString("bit/s");
|
||||
case RateUnit::RateByte:
|
||||
return QString("b/s");
|
||||
case RateUnit::RateKb:
|
||||
return QString("kb/s");
|
||||
case RateUnit::RateMb:
|
||||
return QString("mb/s");
|
||||
case RateUnit::RateGb:
|
||||
return QString("gb/s");
|
||||
case RateUnit::RateTb:
|
||||
return QString("tb/s");
|
||||
default:
|
||||
// qDebug()<<QString("Sensitive::Lower, RateUnit is RateUnknow.");
|
||||
return QString("");
|
||||
}
|
||||
}
|
||||
default: {
|
||||
// qDebug()<<QString("Sensitive is RateUnknow.");
|
||||
return QString("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
double infoUtils::autoRateUnits(long speed, infoUtils::RateUnit &unit)
|
||||
{
|
||||
/* 自动判断合适的速率单位,默认传进来的是 Byte
|
||||
* bit 0 ~ 7 位 (不到 1 字节)
|
||||
* Byte 1 ~ 2^10 Byte
|
||||
* KB 2^10 ~ 2^20 Byte
|
||||
* MB 2^20 ~ 2^30 Byte
|
||||
* GB 2^30 ~ 2^40 Byte
|
||||
* TB 2^40 ~ 2^50 Byte
|
||||
*/
|
||||
|
||||
if (unit != infoUtils::RateByte) {
|
||||
// qDebug()<<"请先将单位转为字节(byte)后再传参";
|
||||
return -1;
|
||||
}
|
||||
|
||||
double sp = 0;
|
||||
if (0 <= speed && speed < qPow(2, 10)) {
|
||||
unit = infoUtils::RateByte;
|
||||
sp = speed;
|
||||
} else if (qPow(2, 10) <= speed && speed < qPow(2, 20)) {
|
||||
unit = infoUtils::RateKb;
|
||||
sp = static_cast<double>(speed / qPow(2, 10) * 1.0);
|
||||
} else if (qPow(2, 20) <= speed && speed < qPow(2, 30)) {
|
||||
unit = infoUtils::RateMb;
|
||||
sp = static_cast<double>(speed / qPow(2, 20) * 1.0);
|
||||
} else if (qPow(2, 30) <= speed && speed < qPow(2, 40)) {
|
||||
unit = infoUtils::RateGb;
|
||||
sp = static_cast<double>(speed / qPow(2, 30) * 1.0);
|
||||
} else if (qPow(2, 40) <= speed && speed < qPow(2, 50)) {
|
||||
unit = infoUtils::RateTb;
|
||||
sp = static_cast<double>(speed / qPow(2, 40) * 1.0);
|
||||
} else {
|
||||
unit = infoUtils::RateUnknow;
|
||||
// qDebug()<<"本设备网络速率单位传输超过 TB, 或者低于 0 Byte.";
|
||||
sp = -1;
|
||||
}
|
||||
|
||||
return sp;
|
||||
}
|
||||
|
||||
void infoUtils::uptime(double &run, double &idle)
|
||||
{
|
||||
QFile file(PROC_UPTIME); // /proc/uptime
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream stream(&file);
|
||||
QString line = stream.readLine();
|
||||
QStringList list = line.split(QRegExp("\\s{1,}"));
|
||||
if(!list.isEmpty()) {
|
||||
run = list.at(0).toDouble();
|
||||
idle = list.at(1).toDouble();
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
|
||||
void infoUtils::netRate(long &netDown, long &netUpload)
|
||||
{
|
||||
QFile file(PROC_NET); // /proc/net/dev
|
||||
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { // 在读取时,把行尾结束符修改为 '\n'; 在写入时,把行尾结束符修改为本地系统换行风格,比如Windows文本换行是 "\r\n"
|
||||
return;
|
||||
}
|
||||
|
||||
long down = 0;
|
||||
long upload = 0;
|
||||
QTextStream stream(&file);
|
||||
QString line = stream.readLine();
|
||||
line = stream.readLine();
|
||||
line = stream.readLine();
|
||||
while (!line.isNull()) {
|
||||
line = line.trimmed();
|
||||
QStringList list = line.split(QRegExp("\\s{1,}")); // 匹配任意 大于等于1个的 空白字符
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
down = list.at(1).toLong();
|
||||
upload = list.at(9).toLong();
|
||||
}
|
||||
|
||||
netDown += down;
|
||||
netUpload += upload;
|
||||
line = stream.readLine();
|
||||
}
|
||||
|
||||
file.close();
|
||||
}
|
||||
|
||||
void infoUtils::cpuRate(long &cpuAll, long &cpuFree)
|
||||
{
|
||||
cpuAll = cpuFree = 0;
|
||||
bool ok = false;
|
||||
|
||||
QFile file(PROC_CPU); // /proc/stat
|
||||
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream stream(&file);
|
||||
QString line = stream.readLine();
|
||||
if (!line.isNull()) {
|
||||
QStringList list = line.split(QRegExp("\\s{1,}"));
|
||||
for (auto v = list.begin() + 1; v != list.end(); ++v)
|
||||
cpuAll += (*v).toLong(&ok);
|
||||
|
||||
cpuFree = list.at(4).toLong(&ok);
|
||||
}
|
||||
|
||||
file.close();
|
||||
}
|
||||
|
||||
void infoUtils::memoryRate(long &memory, long &memoryAll, long &swap, long &swapAll)
|
||||
{
|
||||
memory = memoryAll = 0;
|
||||
swap = swapAll = 0;
|
||||
bool ok = false;
|
||||
|
||||
QFile file(PROC_MEM); // /proc/meminfo
|
||||
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
return;
|
||||
|
||||
QTextStream stream(&file);
|
||||
long buff[16] = {0};
|
||||
for (int i = 0; i <= 15; ++i) {
|
||||
QString line = stream.readLine();
|
||||
QStringList list = line.split(QRegExp("\\s{1,}"));
|
||||
buff[i] = list.at(1).toLong(&ok);
|
||||
}
|
||||
|
||||
memoryAll = buff[0];
|
||||
memory = buff[0] - buff[2];
|
||||
swapAll = buff[14];
|
||||
swap = buff[14] - buff[15];
|
||||
|
||||
file.close();
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
#ifndef INFOUTILS_H
|
||||
#define INFOUTILS_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#define PROC_UPTIME "/proc/uptime"
|
||||
#define PROC_CPU "/proc/stat"
|
||||
#define PROC_MEM "/proc/meminfo"
|
||||
#define PROC_NET "/proc/net/dev"
|
||||
|
||||
class infoUtils : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum RateUnit {
|
||||
RateBit,
|
||||
RateByte,
|
||||
RateKb,
|
||||
RateMb,
|
||||
RateGb,
|
||||
RateTb,
|
||||
RateUnknow
|
||||
};
|
||||
Q_ENUM(RateUnit)
|
||||
|
||||
enum Sensitive {
|
||||
Default, // 大小写混合
|
||||
Upper, // 全部大写
|
||||
Lower // 全部小写
|
||||
};
|
||||
public:
|
||||
explicit infoUtils(QObject *parent = nullptr);
|
||||
|
||||
static QString setRateUnitSensitive(RateUnit unit, Sensitive sensitive);
|
||||
static double autoRateUnits(long speed, RateUnit &unit);
|
||||
|
||||
static void uptime(double &run, double &idle);
|
||||
static void netRate(long &netDown, long &netUpload);
|
||||
static void cpuRate(long &cpuAll, long &cpuFree);
|
||||
static void memoryRate(long &memory, long &memoryAll, long &swap, long &swapAll);
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
};
|
||||
|
||||
#endif // INFOUTILS_H
|
||||
@@ -1,40 +1,22 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#include "mainwindow.h"
|
||||
#include <QApplication>
|
||||
#include <QTranslator>
|
||||
#include <QCoreApplication>
|
||||
#include <QProcess>
|
||||
#include <QMessageBox>
|
||||
|
||||
QString GetRunCommand(QString command){
|
||||
QProcess process;
|
||||
process.start(command);
|
||||
process.waitForStarted();
|
||||
process.waitForFinished();
|
||||
QString re = process.readAllStandardOutput();
|
||||
process.close();
|
||||
return re;
|
||||
}
|
||||
#include <QApplication>
|
||||
#include <QLocale>
|
||||
#include <QTranslator>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
// 语言
|
||||
QTranslator *trans = new QTranslator(&a);
|
||||
trans->load("virtualmachine-en_US.qm");
|
||||
|
||||
a.installTranslator(trans);
|
||||
// 判断是否为 !amd64(无需判断了)
|
||||
/*if(GetRunCommand("arch").replace(" ", "").replace("\n", "") != QString("x86_64")){
|
||||
QMessageBox::critical(NULL, "错误", "此程序不支持非 X86 架构,立即退出");
|
||||
return 0;
|
||||
}*/
|
||||
QTranslator translator;
|
||||
const QStringList uiLanguages = QLocale::system().uiLanguages();
|
||||
for (const QString &locale : uiLanguages) {
|
||||
const QString baseName = "deep-wine-runner-cpp_" + QLocale(locale).name();
|
||||
if (translator.load(":/i18n/" + baseName)) {
|
||||
a.installTranslator(&translator);
|
||||
break;
|
||||
}
|
||||
}
|
||||
MainWindow w;
|
||||
|
||||
w.show();
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
|
||||
@@ -1,190 +1,584 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#include "mainwindow.h"
|
||||
#include "ui_mainwindow.h"
|
||||
#include "buildvbox.h"
|
||||
#include <QFileDialog>
|
||||
#include <QGridLayout>
|
||||
#include <QLabel>
|
||||
#include <QComboBox>
|
||||
#include <QPushButton>
|
||||
#include <QMainWindow>
|
||||
#include <QObject>
|
||||
#include <QSizePolicy>
|
||||
#include <QSpacerItem>
|
||||
#include <QTextBrowser>
|
||||
#include <QCoreApplication>
|
||||
#include <iostream>
|
||||
#include <QDebug>
|
||||
#include <QNetworkInterface>
|
||||
#include <QProcess>
|
||||
#include <QLoggingCategory>
|
||||
#include <infoutils.h>
|
||||
#include <QMessageBox>
|
||||
#include <QTimer>
|
||||
#include <QJsonParseError>
|
||||
#include <QJsonValue>
|
||||
#include <QIODevice>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QtMath>
|
||||
#include <QJsonArray>
|
||||
#include <QDesktopServices>
|
||||
#include <QFile>
|
||||
#include <QProcess>
|
||||
#include <QMessageBox>
|
||||
#include <QObject>
|
||||
using namespace std;
|
||||
QComboBox *MainWindow::e1;
|
||||
QComboBox *MainWindow::e2;
|
||||
QComboBox *MainWindow::o1;
|
||||
QMap<QString, QString> MainWindow::setting;
|
||||
QMap<QString, QString> MainWindow::wine;
|
||||
QString MainWindow::lastRunCommand = "";
|
||||
MainWindow::MainWindow(){
|
||||
/*********
|
||||
* 设置变量
|
||||
*********/
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->tabWidget->setTabPosition(QTabWidget::West); // 标签靠左
|
||||
// 选择最优虚拟机
|
||||
if(!system("which qemu-system-x86_64")){
|
||||
ui->vmChooser->setCurrentIndex(0);
|
||||
// 如果要添加其他 wine,请使用安装更多 Wine 功能
|
||||
|
||||
|
||||
QMainWindow *window = new QMainWindow();
|
||||
QWidget *widget = new QWidget();
|
||||
window->setCentralWidget(widget);
|
||||
QGridLayout *mainLayout = new QGridLayout();
|
||||
QSizePolicy size;
|
||||
//size->setVerticalPolicy(0);
|
||||
QWidget *leftUp = new QWidget();
|
||||
mainLayout->addWidget(leftUp, 0, 0, 1, 1);
|
||||
QGridLayout *leftUpLayout = new QGridLayout();
|
||||
leftUp->setLayout(leftUpLayout);
|
||||
QLabel *fastLabel = new QLabel(QObject::tr("快速启动"));
|
||||
fastLabel->setStyleSheet("font: 30px;");
|
||||
leftUpLayout->addWidget(fastLabel, 0, 0, 1, 2);
|
||||
leftUpLayout->addWidget(new QLabel("<hr>"), 1, 0, 1, 2);
|
||||
leftUpLayout->addWidget(new QLabel(QObject::tr("请选择容器路径:")), 2, 0, 1, 1);
|
||||
e1 = new QComboBox();
|
||||
e1->setEditable(1);
|
||||
leftUpLayout->addWidget(e1, 3, 0, 1, 1);
|
||||
button1 = new QPushButton("浏览");
|
||||
//button1.clicked.connect(liulanbutton);
|
||||
leftUpLayout->addWidget(button1, 3, 1, 1, 1);
|
||||
leftUpLayout->addWidget(new QLabel(QObject::tr("请选择要执行的程序(EXE、MSI或者命令):")), 4, 0, 1, 1);
|
||||
e2 = new QComboBox();
|
||||
e2->setEditable(1);
|
||||
leftUpLayout->addWidget(e2, 5, 0, 1, 1);
|
||||
button2 = new QPushButton(QObject::tr("浏览"));
|
||||
//button2.clicked.connect(liulanexebutton);
|
||||
leftUpLayout->addWidget(button2, 5, 1, 1, 1);
|
||||
leftUpLayout->addWidget(new QLabel(QObject::tr("请选择WINE版本:")), 6, 0, 1, 1);
|
||||
o1 = new QComboBox();
|
||||
leftUpLayout->addWidget(o1, 7, 0, 1, 1);
|
||||
// 设置空间权重
|
||||
button1->setSizePolicy(size);
|
||||
button2->setSizePolicy(size);
|
||||
|
||||
// UI 创建
|
||||
QWidget *leftDown = new QWidget();
|
||||
mainLayout->addWidget(leftDown, 1, 0, 1, 1);
|
||||
QVBoxLayout *leftDownLayout = new QVBoxLayout();
|
||||
leftDown->setLayout(leftDownLayout);
|
||||
QLabel *highLabel = new QLabel(QObject::tr("高级功能"));
|
||||
highLabel->setStyleSheet("font: 30px;");
|
||||
leftDownLayout->addWidget(highLabel);
|
||||
leftDownLayout->addWidget(new QLabel("<hr>"));
|
||||
leftDownLayout->addWidget(new QLabel(QObject::tr("创建快捷方式(Desktop文件):")));
|
||||
QHBoxLayout *createDesktopLink = new QHBoxLayout();
|
||||
QLabel *label_r_2 = new QLabel(QObject::tr("名称:"));
|
||||
createDesktopLink->addWidget(label_r_2);
|
||||
QComboBox *combobox1 = new QComboBox();
|
||||
combobox1->setEditable(1);
|
||||
createDesktopLink->addWidget(combobox1);
|
||||
QPushButton *button5 = new QPushButton(QObject::tr("创建到桌面"));
|
||||
//button5.clicked.connect(make_desktop_on_desktop);
|
||||
createDesktopLink->addWidget(button5);
|
||||
QPushButton *saveDesktopFileOnLauncher = new QPushButton(QObject::tr("创建到开始菜单"));
|
||||
//saveDesktopFileOnLauncher.clicked.connect(make_desktop_on_launcher);
|
||||
createDesktopLink->addWidget(saveDesktopFileOnLauncher);
|
||||
leftDownLayout->addLayout(createDesktopLink);
|
||||
QGridLayout *programManager = new QGridLayout();
|
||||
leftDownLayout->addLayout(programManager);
|
||||
programManager->addWidget(new QLabel(QObject::tr("程序管理:")), 0, 0, 1, 1);
|
||||
getProgramIcon = new QPushButton(QObject::tr("提取图标"));
|
||||
//getProgramIcon.clicked.connect(lambda: RunWineProgram(f"{programPath}/BeCyIconGrabber.exe' '{e2.currentText()}" if e2.currentText()[:2].upper() == "C:" else f"{programPath}/BeCyIconGrabber.exe' 'z:/{e2.currentText()}"));
|
||||
programManager->addWidget(getProgramIcon, 1, 0, 1, 1);
|
||||
programManager->addWidget(new QLabel(" "), 1, 1, 1, 1);
|
||||
trasButton = new QPushButton(QObject::tr("窗口透明工具"));
|
||||
//trasButton.clicked.connect(lambda: RunWineProgram(f"{programPath}/窗体透明度设置工具.exe"));
|
||||
programManager->addWidget(trasButton, 1, 2, 1, 1);
|
||||
uninstallProgram = new QPushButton(QObject::tr("卸载程序"));
|
||||
//uninstallProgram.clicked.connect(lambda: RunWineProgram(f"{programPath}/geek.exe"));
|
||||
programManager->addWidget(new QLabel(" "), 1, 3, 1, 1);
|
||||
programManager->addWidget(uninstallProgram, 1, 4, 1, 1);
|
||||
miniAppStore = new QPushButton(QObject::tr("微型应用商店"));
|
||||
//miniAppStore.clicked.connect(lambda: threading.Thread(target=MiniAppStore).start());
|
||||
programManager->addWidget(new QLabel(" "), 1, 5, 1, 1);
|
||||
programManager->addWidget(miniAppStore, 1, 6, 1, 1);
|
||||
programManager->addWidget(new QLabel(" "), 1, 7, 1, 1);
|
||||
QPushButton *getProgramStatus = new QPushButton(QObject::tr("获取该程序运行情况"));
|
||||
//getProgramStatus.clicked.connect(ProgramRunStatusShow.ShowWindow);
|
||||
programManager->addWidget(getProgramStatus, 1, 8, 1, 1);
|
||||
QPushButton *getLoseDll = new QPushButton(QObject::tr("检测静态下程序缺少DLL"));
|
||||
//getLoseDll.clicked.connect(GetLoseDll);
|
||||
programManager->addWidget(new QLabel(" "), 1, 9, 1, 1);
|
||||
programManager->addWidget(getLoseDll, 1, 10, 1, 1);
|
||||
programManager->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum), 1, 11, 1, 1);
|
||||
programManager->addWidget(new QLabel(QObject::tr("WINE配置:")), 2, 0, 1, 1);
|
||||
wineConfig = new QPushButton(QObject::tr("配置容器"));
|
||||
//wineConfig.clicked.connect(lambda: RunWineProgram("winecfg"));
|
||||
programManager->addWidget(wineConfig, 3, 0, 1, 1);
|
||||
QPushButton *fontAppStore = new QPushButton(QObject::tr("字体商店"));
|
||||
//fontAppStore.clicked.connect(FontAppStore);
|
||||
programManager->addWidget(fontAppStore, 3, 2, 1, 1);
|
||||
button_r_6 = new QPushButton(QObject::tr("RegShot"));
|
||||
//button_r_6.clicked.connect(lambda: RunWineProgram(f"{programPath}/RegShot/regshot.exe"));
|
||||
programManager->addWidget(button_r_6, 3, 4, 1, 1);
|
||||
QPushButton *sparkWineSetting = new QPushButton(QObject::tr("星火wine配置"));
|
||||
//sparkWineSetting.clicked.connect(lambda: threading.Thread(target=os.system, args=["bash /opt/durapps/spark-dwine-helper/spark-dwine-helper-settings/settings.sh"]).start());
|
||||
programManager->addWidget(sparkWineSetting, 3, 6, 1, 1);
|
||||
QPushButton *wineAutoConfig = new QPushButton(QObject::tr("自动/手动配置 Wine 容器"));
|
||||
//wineAutoConfig.clicked.connect(WineBottonAutoConfig);
|
||||
programManager->addWidget(wineAutoConfig, 3, 8, 1, 1);
|
||||
QPushButton *wineBottleReboot = new QPushButton(QObject::tr("重启指定Wine容器"));
|
||||
//wineBottleReboot.clicked.connect(lambda: RunWineProgram(f"wineboot' '-k"));
|
||||
programManager->addWidget(wineBottleReboot, 3, 10, 1, 1);
|
||||
|
||||
// 权重
|
||||
button5->setSizePolicy(size);
|
||||
saveDesktopFileOnLauncher->setSizePolicy(size);
|
||||
label_r_2->setSizePolicy(size);
|
||||
getProgramIcon->setSizePolicy(size);
|
||||
//trasButton.setSizePolicy(size);
|
||||
button_r_6->setSizePolicy(size);
|
||||
wineConfig->setSizePolicy(size);
|
||||
|
||||
QTextBrowser *returnText = new QTextBrowser();
|
||||
returnText->setStyleSheet("background-color: black;"\
|
||||
"color: white;");
|
||||
returnText->setText(QObject::tr("在此可以看到wine安装应用时的终端输出内容\n"\
|
||||
"=============================================\n"\
|
||||
"如果解决了你的问题,请不要吝啬你的star哟!\n"\
|
||||
"地址:\n"\
|
||||
"https://gitee.com/gfdgd-xi/deep-wine-runner\n"\
|
||||
"https://github.com/gfdgd-xi/deep-wine-runner\n"\
|
||||
"https://sourceforge.net/projects/deep-wine-runner"));
|
||||
mainLayout->setRowStretch(0, 2);
|
||||
mainLayout->setRowStretch(1, 1);
|
||||
mainLayout->setColumnStretch(0, 2);
|
||||
mainLayout->setColumnStretch(1, 1);
|
||||
mainLayout->addWidget(returnText, 0, 1, 2, 1);
|
||||
|
||||
// 版权
|
||||
QLabel *copy = new QLabel("程序版本:{version},<b>提示:Wine 无法保证可以运行所有的 Windows 程序,如果想要运行更多 Windows 程序,可以考虑虚拟机和双系统</b><br/>"\
|
||||
"<b>注:部分二进制兼容层会自动注册 binfmt(如原版的 Box86/64、Qemu User Static),则意味着无需在 Wine 版本那里特别指定兼容层,直接指定 Wine 即可</b><br/>"\
|
||||
"©2020~" + QDateTime(QDateTime::currentDateTime()).toString("yyyy") + " gfdgd xi");
|
||||
mainLayout->addWidget(copy, 2, 0, 1, 1);
|
||||
|
||||
// 程序运行
|
||||
QWidget *programRun = new QWidget();
|
||||
QHBoxLayout *programRunLayout = new QHBoxLayout();
|
||||
programRun->setLayout(programRunLayout);
|
||||
programRunLayout->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum));
|
||||
QPushButton *button3 = new QPushButton(QObject::tr("运行程序"));
|
||||
//button3.clicked.connect(runexebutton);
|
||||
programRunLayout->addWidget(button3);
|
||||
QPushButton *killProgram = new QPushButton(QObject::tr("终止程序"));
|
||||
//killProgram.clicked.connect(KillProgram);
|
||||
programRunLayout->addWidget(killProgram);
|
||||
QPushButton *killBottonProgram = new QPushButton(QObject::tr("终止指定容器的程序"));
|
||||
//killBottonProgram.clicked.connect(lambda: threading.Thread(target=os.system, args=[f"'{programPath}/kill.sh' '{os.path.basename(e1.currentText())}'"]).start());
|
||||
programRunLayout->addWidget(killBottonProgram);
|
||||
mainLayout->addWidget(programRun, 2, 1, 1, 1);
|
||||
|
||||
// 窗口设置
|
||||
window->resize(widget->frameGeometry().width() * 2, widget->frameGeometry().height());
|
||||
window->setWindowIcon(QIcon(":/Icon/deepin-wine-runner.svg"));
|
||||
widget->setLayout(mainLayout);
|
||||
window->show();
|
||||
|
||||
CheckWine();
|
||||
|
||||
// 控件设置
|
||||
e1->addItems(findExeHistory);
|
||||
e2->addItems(wineBottonHistory);
|
||||
combobox1->addItems(shellHistory);
|
||||
o1->addItems(canUseWine);
|
||||
|
||||
|
||||
// 一个 Wine 都没有却用 Wine 的功能
|
||||
// 还是要处理的,至少不会闪退
|
||||
if(o1->currentText() == ""){
|
||||
o1->addItem("没有识别到任何Wine,请在菜单栏“程序”安装Wine或安装任意Wine应用");
|
||||
}
|
||||
if(!system("which vboxmanage")){
|
||||
ui->vmChooser->setCurrentIndex(1);
|
||||
QObject::connect(button3, &QPushButton::clicked, [&](){
|
||||
Runexebutton_threading *thread = new Runexebutton_threading();
|
||||
//QObject::connect(thread, &Runexebutton_threading::signal, this, [this](){});
|
||||
thread->start();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
void MainWindow::Runexebutton_threading::run(){
|
||||
QString programPath = QCoreApplication::applicationDirPath();
|
||||
QString wineBottlePath = "";
|
||||
if(e1->currentText() == ""){
|
||||
wineBottlePath = setting.value("DefultBotton");
|
||||
}
|
||||
if(!QFile::exists(QCoreApplication::applicationDirPath() + "/../RunCommandWithTerminal.py")){
|
||||
ui->getQemu->setDisabled(true);
|
||||
else{
|
||||
wineBottlePath = e1->currentText();
|
||||
}
|
||||
// 允许输出 qDebug 信息
|
||||
QLoggingCategory::defaultCategory()->setEnabled(QtDebugMsg, true);
|
||||
// 判断是否安装 vbox(无需判断)
|
||||
/*if(system("which VBoxManage")){
|
||||
if(QMessageBox::question(this, "提示", "检测到您似乎没有安装 VirtualBox,立即安装?") == QMessageBox::Yes){
|
||||
system("xdg-open https://www.virtualbox.org/wiki/Linux_Downloads");
|
||||
QString option = "";
|
||||
if(setting.value("Architecture") != "Auto"){
|
||||
option += "WINEARCH=" + setting.value("Architecture") + " ";
|
||||
}
|
||||
if(setting.value("MonoGeckoInstaller") == "1"){
|
||||
option += "WINEDLLOVERRIDES=\"mscoree,mshtml=\" ";
|
||||
}
|
||||
if(setting.value("") != "1"){
|
||||
option += "WINEDEBUG=-all ";
|
||||
}
|
||||
else{
|
||||
option += "WINEDEBUG=FIXME,ERR,WARN,TRACE,Message ";
|
||||
}
|
||||
QString wineUsingOption = "";
|
||||
QString exePath = e2->currentText();
|
||||
QStringList fileName = {".exe"};
|
||||
bool changePath = false;
|
||||
for(QString i: fileName){
|
||||
if(exePath.contains(i)){
|
||||
qDebug() << i;
|
||||
qDebug() << exePath;
|
||||
int l = exePath.indexOf(i);
|
||||
exePath = exePath.mid(0, l + 4) + "' " + exePath.mid(l + 4) + " '";
|
||||
qDebug() << l;
|
||||
qDebug() << exePath;
|
||||
changePath = true;
|
||||
break;
|
||||
}
|
||||
}*/
|
||||
// QTimer
|
||||
QTimer *cpuGet = new QTimer(this);
|
||||
connect(cpuGet, &QTimer::timeout, this, &MainWindow::ShowCPUMessage);
|
||||
cpuGet->setInterval(1000);
|
||||
cpuGet->start();
|
||||
MainWindow::ShowCPUMessage();
|
||||
// 读取程序版本号
|
||||
// / 版本号文件是否存在
|
||||
QFile fileinfo(QCoreApplication::applicationDirPath() + "/../information.json");
|
||||
if(!fileinfo.exists()){
|
||||
fileinfo.close();
|
||||
return;
|
||||
}
|
||||
fileinfo.open(QIODevice::ReadOnly);
|
||||
QJsonParseError error;
|
||||
QJsonDocument doc = QJsonDocument::fromJson(fileinfo.readAll(), &error);
|
||||
if(error.error != QJsonParseError::NoError){
|
||||
QMessageBox::critical(this, "错误", "无法读取版本号!");
|
||||
qDebug() << error.errorString();
|
||||
fileinfo.close();
|
||||
return;
|
||||
if(!changePath && QFile::exists(exePath)){
|
||||
// 删除前后无用空格以防止出现问题
|
||||
qDebug() << exePath;
|
||||
exePath = exePath.trimmed();
|
||||
// 有空格再说
|
||||
if(exePath.contains(" ")){
|
||||
int l = exePath.indexOf(" ");
|
||||
exePath = exePath.mid(0, l) + "' " + exePath.mid(l) + " '";
|
||||
qDebug() << l;
|
||||
}
|
||||
qDebug() << exePath;
|
||||
}
|
||||
QJsonObject versionObject = doc.object();
|
||||
QJsonValue buildTime = versionObject.value("Time");
|
||||
QJsonValue versionValue = versionObject.value("Version");
|
||||
QJsonArray thank = versionObject.value("Thank").toArray();
|
||||
QString thankText = "";
|
||||
for (int i = 0; thank.count() > i; i++) {
|
||||
thankText += "<p>" + thank.at(i).toString() + "</p>\n";
|
||||
qDebug() << thank.at(i).toString();
|
||||
if(o1->currentText() == "基于 UOS exagear 的 deepin-wine6-stable" ||
|
||||
o1->currentText() == "基于 UOS box86 的 deepin-wine6-stable"){
|
||||
wineUsingOption = "";
|
||||
}
|
||||
if(o1->currentText() == "基于 UOS box86 的 deepin-wine6-stable" ||
|
||||
o1->currentText() == "基于 UOS exagear 的 deepin-wine6-stable"){
|
||||
if(!QDir(programPath + "/dlls-arm").exists()){
|
||||
if(system(("7z x -y \"" + programPath + "/dlls-arm.7z\" -o\"" + programPath + "\"").toUtf8())){
|
||||
QMessageBox::critical(NULL, "错误", "无法解压资源");
|
||||
return;
|
||||
}
|
||||
QFile::remove(programPath + "/dlls-arm.7z");
|
||||
}
|
||||
}
|
||||
//QString runCommand = "";
|
||||
QString runCommand = "";
|
||||
QProcess *process = new QProcess();
|
||||
//if(setting.value("TerminalOpen") == "True"){
|
||||
if(0){
|
||||
if(e2->currentText().mid(-4) == ".msi" && QFile::exists(e2->currentText())){
|
||||
runCommand = "env WINEPREFIX='" + wineBottlePath + "' " + option + wine[o1->currentText()] + " msiexec /i '" + e2->currentText() + "' " + setting.value("WineOption");
|
||||
// OpenTerminal(runCommand)
|
||||
}
|
||||
// ……
|
||||
}
|
||||
else{
|
||||
if(e2->currentText().mid(-4) == ".msi" && QFile::exists(e2->currentText())){
|
||||
runCommand = "env WINEPREFIX='" + wineBottlePath + "' " + option + wine[o1->currentText()] + " msiexec /i '" + e2->currentText() + "' " + setting.value("WineOption");
|
||||
}
|
||||
else if(e2->currentText().mid(-4) == ".bat" && QFile::exists(e2->currentText())){
|
||||
runCommand = "WINEPREFIX='" + wineBottlePath + "' " + option + wine[o1->currentText()] + " wineconsole '" + e2->currentText() + "' " + setting["WineOption"];
|
||||
}
|
||||
else{
|
||||
runCommand = "WINEPREFIX='" + wineBottlePath + "' " + option + wine[o1->currentText()] + " '" + exePath + "' " + setting["WineOption"];
|
||||
}
|
||||
|
||||
}
|
||||
// 设置程序标题
|
||||
this->setWindowTitle("Windows 应用适配工具 " + versionValue.toString());
|
||||
// 读取谢明列表
|
||||
ui->textBrowser_2->setHtml("<p>程序版本号:" + versionValue.toString() + ", " + GetRunCommand("arch") + "</p><p>安装包构建时间:" + buildTime.toString() + "</p><p>该组件构建时间:"
|
||||
+ __DATE__ + " " + __TIME__ + "</p>" + ui->textBrowser_2->toHtml() +
|
||||
"<hr/><h1>谢明列表</h1>" + thankText);
|
||||
connect(ui->textBrowser_2, &QTextBrowser::anchorClicked, this, [=](const QUrl &link){
|
||||
QDesktopServices::openUrl(link);
|
||||
});
|
||||
connect(ui->textBrowser, &QTextBrowser::anchorClicked, this, [=](const QUrl &link){
|
||||
QDesktopServices::openUrl(link);
|
||||
});
|
||||
connect(ui->textBrowser_3, &QTextBrowser::anchorClicked, this, [=](const QUrl &link){
|
||||
QDesktopServices::openUrl(link);
|
||||
// 实时读取程序返回
|
||||
qDebug() << runCommand;
|
||||
lastRunCommand = runCommand;
|
||||
// 连接槽
|
||||
connect(process, &QProcess::readyReadStandardOutput, this, [this, process](){
|
||||
//emit this->signal(QString::fromUtf8(process.readAll()));
|
||||
});
|
||||
//if(setting.value("TerminalOpen") != "True"){
|
||||
if(1){
|
||||
process->setReadChannel(QProcess::StandardOutput);
|
||||
process->start(runCommand);
|
||||
process->waitForStarted();
|
||||
process->waitForFinished();
|
||||
process->close();
|
||||
}
|
||||
// ……
|
||||
}
|
||||
|
||||
void MainWindow::DisableButton(bool things){
|
||||
button_r_6->setDisabled(things);
|
||||
button1->setDisabled(things);
|
||||
button2->setDisabled(things);
|
||||
button3->setDisabled(things);
|
||||
wineConfig->setDisabled(things);
|
||||
e1->setDisabled(things);
|
||||
e2->setDisabled(things);
|
||||
o1->setDisabled(things);
|
||||
miniAppStore->setDisabled(things);
|
||||
//winetricksOpen->configure(state=a[things])
|
||||
getProgramIcon->setDisabled(things);
|
||||
uninstallProgram->setDisabled(things);
|
||||
trasButton->setDisabled(things);
|
||||
}
|
||||
|
||||
void MainWindow::runexebutton(){
|
||||
DisableButton(1);
|
||||
|
||||
}
|
||||
|
||||
void MainWindow::ShowCPUMessage(){
|
||||
// 获取 CPU 占用率
|
||||
long cpuAll = 0;
|
||||
long cpuFree = 0;
|
||||
infoUtils::cpuRate(cpuAll, cpuFree);
|
||||
long cpu = ((cpuAll - m_cpuAll) - (cpuFree - m_cpuFree)) * 100 / (cpuAll - m_cpuAll);
|
||||
if(cpu > 100){
|
||||
// 处理异常值
|
||||
cpu = 100;
|
||||
}
|
||||
// 获取内存占用率
|
||||
long memory = 0;
|
||||
long memoryAll = 0;
|
||||
long swap = 0;
|
||||
long swapAll = 0;
|
||||
|
||||
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
|
||||
|
||||
// 获取开机时间
|
||||
double run,idle;
|
||||
infoUtils::uptime(run,idle);
|
||||
int time = qFloor(run);
|
||||
int ss = time % 60;
|
||||
int MM = (time % 3600) / 60;
|
||||
int hh = (time % 86400) / 3600;
|
||||
int dd = time / 86400;
|
||||
|
||||
|
||||
QString info = "CPU: " + QString::number(cpu) + "% 内存: " +
|
||||
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;
|
||||
ui->CPUValue->showMessage(info, 5000);
|
||||
m_cpuAll = cpuAll;
|
||||
m_cpuFree = cpuFree;
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
//delete ui;
|
||||
}
|
||||
|
||||
QString MainWindow::GetRunCommand(QString command){
|
||||
QString MainWindow::get_home(){
|
||||
return QDir::homePath();
|
||||
}
|
||||
|
||||
QString MainWindow::readtxt(QString path){
|
||||
QFile file(path);
|
||||
file.open(QIODevice::ReadOnly);
|
||||
QString things = file.readAll();
|
||||
file.close();
|
||||
return things;
|
||||
}
|
||||
|
||||
QByteArray MainWindow::readtxtByte(QString path){
|
||||
QFile file(path);
|
||||
file.open(QIODevice::ReadOnly);
|
||||
QByteArray things = file.readAll();
|
||||
file.close();
|
||||
return things;
|
||||
}
|
||||
|
||||
void MainWindow::write_txt(QString path, QByteArray things){
|
||||
QFile file(path);
|
||||
file.open(QIODevice::WriteOnly);
|
||||
file.write(things);
|
||||
file.close();
|
||||
}
|
||||
|
||||
QString MainWindow::GetCommandResult(QString command){
|
||||
QProcess process;
|
||||
process.start(command);
|
||||
process.waitForStarted();
|
||||
process.waitForFinished();
|
||||
QString re = process.readAllStandardOutput();
|
||||
QString result = process.readAll();
|
||||
process.close();
|
||||
return re;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MainWindow::on_browser_clicked()
|
||||
{
|
||||
// 浏览镜像文件
|
||||
QString filePath = QFileDialog::getOpenFileName(this, "选择 ISO 文件", QDir::homePath(), "ISO 镜像文件(*.iso);;所有文件(*.*)");
|
||||
if(filePath != ""){
|
||||
ui->isoPath->setText(filePath);
|
||||
/*
|
||||
* 检测 Wine
|
||||
*/
|
||||
void MainWindow::CheckWine(){
|
||||
QStringList wine7zUse = {"wine", "wine64", "wine-i386", "wine-aarch64", "wine-x86_64"};
|
||||
wine.clear();
|
||||
wine.insert("基于 UOS box86 的 deepin-wine6-stable",
|
||||
"WINEPREDLL='" + programPath + "/dlls-arm' "\
|
||||
"WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1 "\
|
||||
"/opt/deepin-box86/box86 /opt/deepin-wine6-stable/bin/wine ");
|
||||
wine.insert("基于 UOS exagear 的 deepin-wine6-stable",
|
||||
"WINEPREDLL='" + programPath + "/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib"\
|
||||
" /opt/exagear/bin/ubt_x64a64_al --path-prefix " + get_home() + "/.deepinwine/debian-buster --utmp-paths-list " + get_home() + ""\
|
||||
"/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list " + get_home() + "/.deepinwine/debian-buster/.exagear/vpaths-list"\
|
||||
" --opaths-list " + get_home() + "/.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 ");
|
||||
wine.insert("使用 Flatpak 安装的 Wine", "flatpak run org.winehq.Wine");
|
||||
wine.insert("deepin-wine8-stable", "deepin-wine8-stable");
|
||||
wine.insert("deepin-wine6 stable", "deepin-wine6-stable");
|
||||
wine.insert("deepin-wine6-vannila", "deepin-wine6-vannila");
|
||||
wine.insert("deepin-wine5 stable", "deepin-wine5-stable");
|
||||
wine.insert("spark-wine", "spark-wine");
|
||||
wine.insert("spark-wine7-devel", "spark-wine7-devel");
|
||||
wine.insert("spark-wine8", "spark-wine8");
|
||||
wine.insert("spark-wine8-wow", "spark-wine8-wow");
|
||||
wine.insert("deepin-wine", "deepin-wine");
|
||||
wine.insert("deepin-wine5", "deepin-wine5");
|
||||
wine.insert("wine", "wine");
|
||||
wine.insert("wine64", "wine64");
|
||||
wine.insert("ukylin-wine", "ukylin-wine");
|
||||
wine.insert("okylin-wine", "okylin-wine");
|
||||
wine.insert("mono(这不是 wine,但可以实现初步调用运行 .net 应用)", "mono");
|
||||
wine.insert("基于 linglong 的 deepin-wine6-stable(不推荐)", "ll-cli run '' --exec '/bin/deepin-wine6-stable'");
|
||||
if(QFile::exists("/opt/deepin-box86/box86") && QFile::exists("/opt/deepin-wine6-stable/bin/wine")){
|
||||
canUseWine.append("基于 UOS box86 的 deepin-wine6-stable");
|
||||
}
|
||||
}
|
||||
|
||||
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){
|
||||
return;
|
||||
if(QFile::exists("/opt/exagear/bin/ubt_x64a64_al") && QFile::exists("/opt/deepin-wine6-stable/bin/wine")){
|
||||
canUseWine.append("基于 UOS exagear 的 deepin-wine6-stable");
|
||||
}
|
||||
for(QString i : wine.keys()){
|
||||
if(!system(("which '" + wine.key(i) + "'").toUtf8())){
|
||||
canUseWine.append(i);
|
||||
}
|
||||
}
|
||||
if(!system("which flatpak") && QDir("/var/lib/flatpak/app/org.winehq.Wine").exists()){
|
||||
canUseWine.append("使用 Flatpak 安装的 Wine");
|
||||
}
|
||||
if(QDir("/persistent/linglong/layers/").exists()){ // 判断是否使用 linglong
|
||||
for(QString i : QDir("/persistent/linglong/layers/").entryList()){
|
||||
try{
|
||||
break; // bug
|
||||
QString dire = QDir("/persistent/linglong/layers/" + i).entryList()[-1];
|
||||
QString arch = QDir("/persistent/linglong/layers/" + i + "/" + dire)[-1];
|
||||
if(QFile::exists("/persistent/linglong/layers/" + i + "/" + dire + "/" + arch + "/runtime/bin/deepin-wine6-stable")){
|
||||
wine.insert("基于 linglong 的 deepin-wine6-stable(不推荐)", "ll-cli run " + i + " --exec '/bin/deepin-wine6-stable'");
|
||||
canUseWine.append("基于 linglong 的 deepin-wine6-stable(不推荐)");
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch(QString msg){
|
||||
qDebug() << msg;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if(system("which vboxmanage")){
|
||||
if(QMessageBox::question(this, "提示", "您似乎没有安装 VBox,是否继续创建虚拟机?") == QMessageBox::No){
|
||||
return;
|
||||
}
|
||||
// 读取自定义安装的 Wine(需要解包的才能使用)
|
||||
if(!system("which qemu-i386-static")){
|
||||
if(QDir(qemuPath).exists()){
|
||||
for(QString g: QDir(qemuPath).entryList()){
|
||||
QString archPath = qemuPath + "/" + g;
|
||||
QString arch = g;
|
||||
if(QFileInfo(archPath).isDir()){
|
||||
for(QString d: QDir(archPath).entryList()){
|
||||
QString bottlePath = archPath + "/" + g;
|
||||
if(QFileInfo(bottlePath).isDir()){
|
||||
qemuBottleList.append(QStringList() << arch << d << bottlePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
buildvbox(ui->isoPath->text(), ui->systemVersion->currentIndex(), ui->vmChooser->currentIndex());
|
||||
return;
|
||||
}
|
||||
QJsonParseError jsonError;
|
||||
QJsonDocument jsonDocument;
|
||||
QJsonObject jsonObject;
|
||||
QStringList historyList[] = {shellHistory, findExeHistory, wineBottonHistory, isoPath, isoPathFound};
|
||||
QStringList historyListPath = {homePath + "/.config/deepin-wine-runner/ShellHistory.json",
|
||||
homePath + "/.config/deepin-wine-runner/FindExeHistory.json",
|
||||
homePath + "/.config/deepin-wine-runner/WineBottonHistory.json",
|
||||
homePath + "/.config/deepin-wine-runner/ISOPath.json",
|
||||
homePath + "/.config/deepin-wine-runner/ISOPathFound.json"};
|
||||
for(int i = 0; i <= historyList->size(); i++){
|
||||
QStringList *list = &historyList[i];
|
||||
jsonDocument = QJsonDocument(QJsonDocument::fromJson(readtxtByte(historyListPath[i])));
|
||||
jsonObject = jsonDocument.object();
|
||||
list->clear();
|
||||
for(QString i: jsonObject.keys()){
|
||||
list->append(jsonObject.value(i).toString());
|
||||
}
|
||||
}
|
||||
qDebug() << jsonError.errorString();
|
||||
jsonDocument = QJsonDocument(QJsonDocument::fromJson(readtxtByte(homePath + "/.config/deepin-wine-runner/WineSetting.json")));
|
||||
jsonObject = jsonDocument.object();
|
||||
setting.clear();
|
||||
for(QString i: jsonObject.keys()){
|
||||
setting.insert(i, jsonObject.value(i).toString());
|
||||
}
|
||||
for(QString i: QDir(programPath + "/wine/").entryList()){
|
||||
if(QDir(programPath + "/wine/" + i).exists() && QFileInfo(programPath + "/wine/" + i).isDir()){
|
||||
QStringList nameValue = {{"", ""}};
|
||||
try{
|
||||
if(QFile::exists("/opt/deepin-box86/box86")){
|
||||
nameValue.append(QStringList() << "基于 UOS box86 的 " <<
|
||||
"WINEPREDLL='" + programPath + "/dlls-arm' WINEDLLPATH=/opt/deepin-wine6-stable/lib BOX86_NOSIGSEGV=1"\
|
||||
" /opt/deepin-box86/box86 ");
|
||||
}
|
||||
if(!system("which box86")){
|
||||
nameValue.append(QStringList() << "基于 box86 的 " << "box86 ");
|
||||
}
|
||||
if(!system("which box64")){
|
||||
nameValue.append(QStringList() << "基于 box64 的 " << "box64 ");
|
||||
}
|
||||
if(!system("which qemu-i386") &&
|
||||
GetCommandResult("arch").replace(" ", "").replace("\n", "") != "x86_64" &&
|
||||
GetCommandResult("arch").replace(" ", "").replace("\n", "") != "i686"){
|
||||
nameValue.append(QStringList() << "基于 qemu-i386 的 " << "qemu-i386 ");
|
||||
}
|
||||
if(!system("which qemu-x86_64") &&
|
||||
GetCommandResult("arch").replace(" ", "").replace("\n", "") != "x86_64" &&
|
||||
GetCommandResult("arch").replace(" ", "").replace("\n", "") != "i686"){
|
||||
nameValue.append(QStringList() << "基于 qemu-x86_64 的 " << "qemu-x86_64 ");
|
||||
}
|
||||
if(QFile::exists("/opt/exagear/bin/ubt_x64a64_al") && QFile::exists(homePath + "/.deepinwine/debian-buster")){
|
||||
nameValue.append(QStringList() << "基于 UOS exagear 的 " << "WINEPREDLL='" + programPath + "/dlls-arm' "\
|
||||
"WINEDLLPATH=/opt/deepin-wine6-stable/lib /opt/exagear/bin/ubt_x64a64_al --path-prefix " + get_home() + "/.deepinwine/debian-buster "\
|
||||
"--utmp-paths-list " + homePath + "/.deepinwine/debian-buster/.exagear/utmp-list --vpaths-list " + homePath + "/.deepinwine/debian-buster/.exagear/vpaths-list "\
|
||||
"--opaths-list " + homePath + "/.deepinwine/debian-buster/.exagear/opaths-list --smo-mode fbase --smo-severity smart --fd-limit 8192 --foreign-ubt-binary /opt/exagear/bin/ubt_x32a64_al -- ");
|
||||
}
|
||||
if(!system("which exagear")){
|
||||
nameValue.append(QStringList() << "运行 exagear 容器内的 " << "exagear -- ");
|
||||
}
|
||||
if(QFile::exists("/opt/exagear/bin/ubt_x64a64_al")){
|
||||
nameValue.append(QStringList() << "使用 ubt_x64a64_al 运行" << "/opt/exagear/bin/ubt_x64a64_al -- ");
|
||||
}
|
||||
if(QFile::exists("/opt/exagear/bin/ubt_x32a64_al")){
|
||||
nameValue.append(QStringList() << "使用 ubt_x32a64_al 运行" << "/opt/exagear/bin/ubt_x32a64_al -- ");
|
||||
}
|
||||
/*for(QString g: qemuBottleList){
|
||||
nameValue.append(QStringList() << "使用qemu-" + g[0] + "-static 调用容器" + g[1] + "运行 " << "python3 '" + programPath + "/QemuRun.py' '" + g[0] + "/" + g[1] + "' " + setting.value("QemuUnMountHome").toInt());
|
||||
}*/
|
||||
}
|
||||
catch(QString msg){
|
||||
qDebug() << msg;
|
||||
}
|
||||
/*for(QString k: nameValue){
|
||||
qDebug() << k;
|
||||
if(k.contains("qemu")){
|
||||
|
||||
void MainWindow::on_getvbox_clicked()
|
||||
{
|
||||
QDesktopServices::openUrl(QUrl("https://www.virtualbox.org/wiki/Linux_Downloads"));
|
||||
}
|
||||
}
|
||||
}*/
|
||||
try{
|
||||
for(QString i: QDir(homePath + "/.deepinwine/").entryList()){
|
||||
for(QString j: wine7zUse){
|
||||
if(QFile::exists(homePath + "/.deepinwine/" + i + "/bin/" + j)){
|
||||
wine.insert(homePath + "/.deepinwine/" + i + "/bin/" + j, homePath + "/.deepinwine/" + i + "/bin/" + j);
|
||||
canUseWine.append(homePath + "/.deepinwine/" + i + "/bin/" + j);
|
||||
}
|
||||
|
||||
void MainWindow::on_getQemu_clicked()
|
||||
{
|
||||
system(("python3 '" + QCoreApplication::applicationDirPath() + "/../RunCommandWithTerminal.py' '" + QCoreApplication::applicationDirPath() + "/../QemuSystemInstall.sh'").toLatin1());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(QString msg){
|
||||
qDebug() << msg;
|
||||
}
|
||||
try{
|
||||
QStringList canUseWineOld = canUseWine;
|
||||
for(QString i: canUseWineOld){
|
||||
if(QDir(programPath + "/WineLib/usr").exists()){
|
||||
wine.insert("使用运行器的运行库运行 " + i, "bash '" + programPath + "/WineLib/run.sh' " + wine.value(i));
|
||||
canUseWine.append("使用运行器的运行库运行 " + i);
|
||||
untipsWine.append("使用运行器的运行库运行 " + i);
|
||||
}
|
||||
}
|
||||
if(QDir("/opt/exagear/images").exists()){
|
||||
for(QString k: QDir("/opt/exagear/images").entryList()){
|
||||
if(QFileInfo("/opt/exagear/images/" + k).isDir()){
|
||||
continue;
|
||||
}
|
||||
for(QString i: canUseWineOld){
|
||||
wine.insert("使用Exagear容器运行库运行 " + i, "bash '" + programPath + "/WineLib/run-more.sh' '/opt/exagear/images/" + k + "' " + wine.value(i));
|
||||
canUseWine.append("使用Exagear容器运行库运行 " + i);
|
||||
untipsWine.append("使用Exagear容器运行库运行 " + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(QString msg){
|
||||
qDebug() << msg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,39 +1,65 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QMap>
|
||||
#include <QDir>
|
||||
#include <QCoreApplication>
|
||||
#include <QPushButton>
|
||||
#include <QComboBox>
|
||||
#include <QThread>
|
||||
|
||||
namespace Ui {
|
||||
class MainWindow;
|
||||
}
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
class MainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
MainWindow();
|
||||
~MainWindow();
|
||||
|
||||
private slots:
|
||||
void ShowCPUMessage();
|
||||
void on_browser_clicked();
|
||||
QString GetRunCommand(QString command);
|
||||
void on_install_clicked();
|
||||
|
||||
|
||||
void on_getvbox_clicked();
|
||||
|
||||
void on_getQemu_clicked();
|
||||
void CheckWine();
|
||||
QString get_home();
|
||||
QString readtxt(QString path);
|
||||
void write_txt(QString path, QByteArray things);
|
||||
QByteArray readtxtByte(QString path);
|
||||
QString GetCommandResult(QString command);
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
long m_cpuAll;
|
||||
long m_cpuFree;
|
||||
};
|
||||
class Runexebutton_threading: public QThread{
|
||||
signals:
|
||||
void signal(QString str);
|
||||
void showHistory(QString str);
|
||||
public:
|
||||
void run();
|
||||
|
||||
};
|
||||
void runexebutton();
|
||||
void DisableButton(bool things);
|
||||
static QString lastRunCommand;
|
||||
QString homePath = QDir::homePath();
|
||||
QString programPath = QCoreApplication::applicationDirPath();
|
||||
static QMap<QString, QString> wine;
|
||||
QStringList untipsWine = {"使用 Flatpak 安装的 Wine", "基于 exagear 的 deepin-wine6-stable", "基于 UOS box86 的 deepin-wine6-stable", "基于 UOS exagear 的 deepin-wine6-stable", "基于 linglong 的 deepin-wine6-stable(不推荐)"};
|
||||
QStringList canUseWine = {};
|
||||
QStringList qemuBottleList = {};
|
||||
QString qemuPath = homePath + "/.deepin-wine-runner-ubuntu-images";
|
||||
QStringList shellHistory;
|
||||
QStringList findExeHistory;
|
||||
QStringList wineBottonHistory;
|
||||
QStringList isoPath;
|
||||
QStringList isoPathFound;
|
||||
static QMap<QString, QString> setting;
|
||||
// 控件
|
||||
QPushButton *button_r_6;
|
||||
QPushButton *button1;
|
||||
QPushButton *button2;
|
||||
QPushButton *button3;
|
||||
QPushButton *wineConfig;
|
||||
QPushButton *miniAppStore;
|
||||
QPushButton *getProgramIcon;
|
||||
QPushButton *uninstallProgram;
|
||||
QPushButton *trasButton;
|
||||
static QComboBox *e1;
|
||||
static QComboBox *e2;
|
||||
static QComboBox *o1;
|
||||
|
||||
|
||||
};
|
||||
#endif // MAINWINDOW_H
|
||||
|
||||
@@ -6,381 +6,67 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>807</width>
|
||||
<height>429</height>
|
||||
<width>800</width>
|
||||
<height>600</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Windows 应用适配工具</string>
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset>
|
||||
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralWidget">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="tabShape">
|
||||
<enum>QTabWidget::Rounded</enum>
|
||||
<widget class="QWidget" name="window">
|
||||
<layout class="QGridLayout" name="gridLayout" rowstretch="2,0" columnstretch="2,0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QWidget" name="leftUp" native="true"/>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QTextBrowser" name="returnText">
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background-color: black;
|
||||
color: white;</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<property name="html">
|
||||
<string><!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:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Mono'; font-size:11pt;">在此可以看到wine安装应用时的终端输出内容</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-family:'Noto Mono'; font-size:11pt;">=============================================</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-family:'Noto Mono'; font-size:11pt;">如果解决了你的问题,请不要吝啬你的star哟!</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-family:'Noto Mono'; font-size:11pt;">地址:</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-family:'Noto Mono'; font-size:11pt;">https://gitee.com/gfdgd-xi/deep-wine-runner</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-family:'Noto Mono'; font-size:11pt;">https://github.com/gfdgd-xi/deep-wine-runner</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Noto Mono'; font-size:11pt;">https://sourceforge.net/projects/deep-wine-runner</span></p></body></html></string>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>设置</string>
|
||||
</attribute>
|
||||
<attribute name="toolTip">
|
||||
<string>设置</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>镜像路径:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="isoPath">
|
||||
<property name="placeholderText">
|
||||
<string>请选择系统镜像</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="browser">
|
||||
<property name="text">
|
||||
<string>浏览……</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3" stretch="0,1">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>系统版本:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="systemVersion">
|
||||
<property name="currentText">
|
||||
<string>Windows 7 32 位(支持自动安装)</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string/>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Windows 7 32 位(支持自动安装)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Windows 7 64 位(支持自动安装)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>其它 Windows 系统(不支持自动安装)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7" stretch="0,1">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>虚拟机(建议默认):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="vmChooser">
|
||||
<property name="currentText">
|
||||
<string>qemu/kvm</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="duplicatesEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>qemu/kvm</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>VirtualBox</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="getQemu">
|
||||
<property name="text">
|
||||
<string>安装 Qemu</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="getvbox">
|
||||
<property name="text">
|
||||
<string>获取VirtualBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="install">
|
||||
<property name="text">
|
||||
<string>安装</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="textBrowser_3">
|
||||
<property name="html">
|
||||
<string><!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;">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="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 /></body></html></string>
|
||||
</property>
|
||||
<property name="openLinks">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_3">
|
||||
<attribute name="title">
|
||||
<string>安装/使用帮助</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="textBrowser">
|
||||
<property name="undoRedoEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="html">
|
||||
<string><!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;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,<span style=" font-weight:600; font-style:italic; text-decoration: underline;">qemu则是 Ctrl+Alt+G</span> )</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></string>
|
||||
</property>
|
||||
<property name="openLinks">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>关于</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6" stretch="0,0">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>200</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>200</width>
|
||||
<height>200</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">border-image: url(:/deepin-wine-runner.png);</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="textBrowser_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="html">
|
||||
<string><!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;"> 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>
|
||||
</property>
|
||||
<property name="openLinks">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QWidget" name="leftDown" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="CPUValue">
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menu">
|
||||
<property name="title">
|
||||
<string>程序</string>
|
||||
</property>
|
||||
<addaction name="action"/>
|
||||
</widget>
|
||||
<addaction name="menu"/>
|
||||
</widget>
|
||||
<action name="action">
|
||||
<property name="text">
|
||||
<string>退出</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_2">
|
||||
<property name="text">
|
||||
<string>关于</string>
|
||||
<string>退出程序</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
*/
|
||||
#include "qemu.h"
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QCoreApplication>
|
||||
#include "command.h"
|
||||
#include <QMessageBox>
|
||||
#include <QProcess>
|
||||
#include <QDebug>
|
||||
|
||||
qemu::qemu(QString name, QString managerPath) {
|
||||
if(!QFile::exists(name)){
|
||||
this->name = QDir::homePath() + "/Qemu/" + name;
|
||||
}
|
||||
else{
|
||||
this->name = name;
|
||||
}
|
||||
this->managerPath = managerPath;
|
||||
//Command command = Command();
|
||||
|
||||
this->vboxVersion = Command().GetCommand("'" + managerPath + "qemu-system-i386' --version");
|
||||
}
|
||||
int qemu::Create(QString type){
|
||||
if(!QFile::exists(this->name)){
|
||||
QDir dir(this->name);
|
||||
dir.mkpath(this->name);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int qemu::CreateDisk(QString path, int size){
|
||||
if(QFile::exists(path)){
|
||||
return 0;
|
||||
}
|
||||
return system(("qemu-img create -f qcow2 '" + path + "' " + QString::number(size) + "M").toLatin1());
|
||||
}
|
||||
int qemu::CreateDiskControl(QString controlName){
|
||||
return 0;
|
||||
}
|
||||
int qemu::MountDisk(QString diskPath, QString controlName, int port, int device){
|
||||
commandOption += "-drive 'file=" + diskPath + ",if=ide,index=" + QString::number(device) + "' ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::MountISO(QString isoPath, QString controlName, int port, int device){
|
||||
commandOption += "-drive 'media=cdrom,file=" + isoPath + ",if=ide,index=" + QString::number(device) + "' ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::BootFirst(QString bootDrive){
|
||||
commandOption += "-boot '" + bootDrive + "' ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetNetBridge(QString netDriver){
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetCPU(int number){
|
||||
commandOption += "-smp " + QString::number(number) + " ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetMemory(int memory){
|
||||
commandOption += "-m " + QString::number(memory) + "M ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetRemote(bool setting){
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetRemoteConnectSetting(int port){
|
||||
return 0;
|
||||
}
|
||||
int qemu::Start(bool unShown){
|
||||
qDebug() << commandOption;
|
||||
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64"){
|
||||
return system(("kvm " + commandOption + " &").toLatin1());
|
||||
}
|
||||
return system(("qemu-system-x86_64 " + commandOption + " &").toLatin1());
|
||||
}
|
||||
int qemu::Stop(){
|
||||
system("killall qemu-system-x86_64 -9");
|
||||
system("killall kvm -9");
|
||||
return 0;
|
||||
}
|
||||
int qemu::Delete(){
|
||||
return system(("rm -rfv '" + name + "'").toLatin1());
|
||||
}
|
||||
int qemu::SetDisplayMemory(int memory){
|
||||
return 0;
|
||||
}
|
||||
int qemu::InstallGuessAdditions(QString controlName, int port, int device){
|
||||
return 0;
|
||||
}
|
||||
int qemu::EnabledAudio(){
|
||||
commandOption += "-soundhw all ";
|
||||
return 0;
|
||||
}
|
||||
int qemu::EnabledClipboardMode(){
|
||||
return 0;
|
||||
}
|
||||
int qemu::EnabledDraganddrop(){
|
||||
return 0;
|
||||
}
|
||||
int qemu::ShareFile(QString name, QString path){
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetVBoxSVGA(){
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetMousePS2(){
|
||||
return 0;
|
||||
}
|
||||
int qemu::SetKeyboardPS2(){
|
||||
return 0;
|
||||
}
|
||||
int qemu::OpenUSB(){
|
||||
return 0;
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#ifndef QEMU_H
|
||||
#define QEMU_H
|
||||
#include <QString>
|
||||
|
||||
class qemu
|
||||
{
|
||||
public:
|
||||
// 虚拟机信息
|
||||
QString name;
|
||||
QString managerPath;
|
||||
QString vboxVersion;
|
||||
qemu(QString name, QString managerPath="/usr/bin");
|
||||
int Create(QString type="Windows7");
|
||||
int CreateDisk(QString path, int size);
|
||||
int CreateDiskControl(QString controlName="storage_controller_1");
|
||||
int MountDisk(QString diskPath, QString controlName="storage_controller_1", int port=0, int device=0);
|
||||
int MountISO(QString isoPath, QString controlName="storage_controller_1", int port=1, int device=0);
|
||||
int BootFirst(QString bootDrive);
|
||||
int SetNetBridge(QString netDriver);
|
||||
int SetCPU(int number);
|
||||
int SetMemory(int memory);
|
||||
int SetRemote(bool setting);
|
||||
int SetRemoteConnectSetting(int port=5540);
|
||||
int Start(bool unShown=false);
|
||||
int Stop();
|
||||
int Delete();
|
||||
int SetDisplayMemory(int memory);
|
||||
int InstallGuessAdditions(QString controlName="storage_controller_1", int port=1, int device=0);
|
||||
int EnabledAudio();
|
||||
int EnabledClipboardMode();
|
||||
int EnabledDraganddrop();
|
||||
int ShareFile(QString name, QString path);
|
||||
int SetVBoxSVGA();
|
||||
int SetMousePS2();
|
||||
int SetKeyboardPS2();
|
||||
int OpenUSB();
|
||||
private:
|
||||
QString commandOption;
|
||||
|
||||
};
|
||||
|
||||
#endif // QEMU_H
|
||||
@@ -0,0 +1,14 @@
|
||||
#include "qr.h"
|
||||
#include "ui_qr.h"
|
||||
|
||||
QR::QR(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::QR)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
QR::~QR()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef QR_H
|
||||
#define QR_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class QR;
|
||||
}
|
||||
|
||||
class QR : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit QR(QWidget *parent = nullptr);
|
||||
~QR();
|
||||
|
||||
private:
|
||||
Ui::QR *ui;
|
||||
};
|
||||
|
||||
#endif // QR_H
|
||||
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QR</class>
|
||||
<widget class="QDialog" name="QR">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>656</width>
|
||||
<height>410</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="Resources.qrc">
|
||||
<normaloff>:/Icon/deepin-wine-runner.svg</normaloff>:/Icon/deepin-wine-runner.svg</iconset>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="qRShow">
|
||||
<property name="html">
|
||||
<string><!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;">如果您觉得 Wine 运行器对你有帮助,可以请作者喝杯茶</span></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;"><img src=":/Icon/QR/Icon/QR/Wechat.png" width="256" /></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=":/Icon/QR/Icon/QR/Alipay.jpg" width="256" /></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">QQ:</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/Icon/QR/Icon/QR/QQ.png" width="256" /></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="ok">
|
||||
<property name="text">
|
||||
<string>确定</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="Resources.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -1,22 +0,0 @@
|
||||
#include <iostream>
|
||||
#include <filesystem>
|
||||
using namespace std;
|
||||
// 清屏
|
||||
void CleanScreen(){
|
||||
/*if(filesystem::exists("/")){
|
||||
return;
|
||||
}*/
|
||||
system("clear");
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[]){
|
||||
// 判断参数是否齐全
|
||||
CleanScreen();
|
||||
//
|
||||
if(argc < 3) {
|
||||
cout << "参数不齐!" << endl;
|
||||
return 1;
|
||||
}
|
||||
cout << argc << endl;
|
||||
return 0;
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import api
|
||||
import sys
|
||||
import psutil
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.system("clear")
|
||||
programPath = os.path.split(os.path.realpath(__file__))[0]
|
||||
if len(sys.argv) < 3 :
|
||||
print("参数不齐!")
|
||||
exit()
|
||||
net = ""
|
||||
for k, v in psutil.net_if_addrs().items():
|
||||
for item in v:
|
||||
if item[0] == 2 and not item[1] == "127.0.0.1" and not item[1] == "192.168.250.1":
|
||||
net = k
|
||||
break
|
||||
if net == "":
|
||||
exit()
|
||||
# 创建一个叫Windows的虚拟机
|
||||
vm = api.Manager("Windows")
|
||||
if sys.argv[2] == "0":
|
||||
vm.Create("Windows7")
|
||||
elif sys.argv[2] == "1":
|
||||
vm.Create("Windows7_64")
|
||||
else:
|
||||
vm.Create("WindowsNT_64")
|
||||
vm.CreateDisk(f"{api.homePath}/VirtualBox VMs/Windows/Windows.vdi", 131072)
|
||||
vm.CreateDiskControl()
|
||||
vm.MountDisk(f"{api.homePath}/VirtualBox VMs/Windows/Windows.vdi")
|
||||
vm.MountISO(sys.argv[1])
|
||||
if sys.argv[2] == "0":
|
||||
vm.MountISO(f"{programPath}/Windows7X86Auto.iso", device=1)
|
||||
elif sys.argv[2] == "1":
|
||||
vm.MountISO(f"{programPath}/Windows7X64Auto.iso", device=1)
|
||||
vm.SetCPU(1)
|
||||
vm.SetMemory(psutil.virtual_memory().total // 1024 // 1024 // 3)
|
||||
vm.SetDisplayMemory(32)
|
||||
vm.SetNetBridge(net)
|
||||
vm.EnabledAudio()
|
||||
vm.EnabledClipboardMode()
|
||||
vm.EnabledDraganddrop()
|
||||
vm.SetVBoxSVGA()
|
||||
vm.SetMousePS2()
|
||||
vm.SetKeyboardPS2()
|
||||
vm.OpenUSB()
|
||||
vm.ShareFile("ROOT", "/")
|
||||
vm.ShareFile("HOME", api.homePath)
|
||||
vm.Start()
|
||||
@@ -1,103 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
*/
|
||||
#include "vbox.h"
|
||||
#include "command.h"
|
||||
#include <QMessageBox>
|
||||
|
||||
vbox::vbox(QString name, QString managerPath) {
|
||||
this->name = name;
|
||||
this->managerPath = managerPath;
|
||||
//Command command = Command();
|
||||
this->vboxVersion = Command().GetCommand("'" + managerPath + "' -v");
|
||||
}
|
||||
|
||||
int vbox::Create(QString type){
|
||||
system(("\"" + managerPath + "\" createvm --name \""
|
||||
+ name + "\" --ostype \"" + type +
|
||||
"\" --register").toLatin1());
|
||||
return system(("\"" + managerPath + "\" modifyvm \""
|
||||
+ name + "\" --ostype \"" + type +
|
||||
"\" ").toLatin1());
|
||||
//vboxmanage modifyvm testvm --ostype
|
||||
}
|
||||
int vbox::CreateDisk(QString path, int size){
|
||||
return system(("\"" + managerPath + "\" createvdi --filename \"" + path + "\" --size \"" + QString::number(size) + "\"").toLatin1());
|
||||
}
|
||||
int vbox::CreateDiskControl(QString controlName){
|
||||
return system(("\"" + managerPath + "\" storagectl \"" + name + "\" --name \"" + controlName + "\" --add ide").toLatin1());
|
||||
}
|
||||
int vbox::MountDisk(QString diskPath, QString controlName, int port, int device){
|
||||
return system(("\"" + managerPath + "\" storageattach \"" + name +
|
||||
"\" --storagectl \"" + controlName + "\" --type hdd --port "
|
||||
+ QString::number(port) + " --device " + QString::number(device) + " --medium \"" + diskPath + "\"").toLatin1());
|
||||
}
|
||||
int vbox::MountISO(QString isoPath, QString controlName, int port, int device){
|
||||
return system(("\"" + managerPath + "\" storageattach \"" + name + "\" --storagectl \"" +
|
||||
controlName + "\" --type dvddrive --port " + QString::number(port) + " --device " + QString::number(device)
|
||||
+ " --medium \"" + isoPath + "\"").toLatin1());
|
||||
}
|
||||
int vbox::BootFirst(QString bootDrive){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --boot1 " + bootDrive).toLatin1());
|
||||
}
|
||||
int vbox::SetNetBridge(QString netDriver){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name +
|
||||
"\" --nic1 bridged --cableconnected1 on --nictype1 82540EM --bridgeadapter1 \"" + netDriver + "\" --intnet1 brigh1 --macaddress1 auto").toLatin1());
|
||||
}
|
||||
int vbox::SetCPU(int number){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --cpus " + QString::number(number)).toLatin1());
|
||||
}
|
||||
int vbox::SetMemory(int memory){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --memory " + QString::number(memory)).toLatin1());
|
||||
}
|
||||
int vbox::SetRemote(bool setting){
|
||||
if(setting){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --vrde on").toLatin1());
|
||||
}
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --vrde off").toLatin1());
|
||||
}
|
||||
int vbox::SetRemoteConnectSetting(int port){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --vrdeport " + QString::number(port) + " --vrdeaddress """).toLatin1());
|
||||
}
|
||||
int vbox::Start(bool unShown){
|
||||
if(unShown){
|
||||
return system(("\"" + managerPath + "\"").toLatin1());
|
||||
}
|
||||
return system(("\"" + managerPath + "\" startvm \"" + name + "\"").toLatin1());
|
||||
}
|
||||
int vbox::Stop(){
|
||||
return system(("\"" + managerPath + "\" controlvm \"" + name + "\" poweroff").toLatin1());
|
||||
}
|
||||
int vbox::Delete(){
|
||||
return system(("\"" + managerPath + "\" unregistervm --delete \"" + name + "\"").toLatin1());
|
||||
}
|
||||
int vbox::SetDisplayMemory(int memory){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --vram " + QString::number(memory)).toLatin1());
|
||||
}
|
||||
int vbox::InstallGuessAdditions(QString controlName, int port, int device){
|
||||
return MountISO("/usr/share/virtualbox/VBoxGuestAdditions.iso", controlName, port, device);
|
||||
}
|
||||
int vbox::EnabledAudio(){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --audio-driver pulse --audiocontroller hda --audioin on --audioout on").toLatin1());
|
||||
}
|
||||
int vbox::EnabledClipboardMode(){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --clipboard-mode bidirectional").toLatin1());
|
||||
}
|
||||
int vbox::EnabledDraganddrop(){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --draganddrop bidirectional").toLatin1());
|
||||
}
|
||||
int vbox::ShareFile(QString name, QString path){
|
||||
return system(("\"" + managerPath + "\" sharedfolder add \"" + this->name + "\" -name \"" + name + "\" -hostpath \"" + path + "\"").toLatin1());
|
||||
}
|
||||
int vbox::SetVBoxSVGA(){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --graphicscontroller vboxsvga").toLatin1());
|
||||
}
|
||||
int vbox::SetMousePS2(){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --mouse usb").toLatin1());
|
||||
}
|
||||
int vbox::SetKeyboardPS2(){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --keyboard usb").toLatin1());
|
||||
}
|
||||
int vbox::OpenUSB(){
|
||||
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --usbohci on").toLatin1());
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
* gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||
* 依照 GPLV3 开源
|
||||
*/
|
||||
#ifndef VBOX_H
|
||||
#define VBOX_H
|
||||
#include <QString>
|
||||
|
||||
class vbox
|
||||
{
|
||||
public:
|
||||
// 虚拟机信息
|
||||
QString name;
|
||||
QString managerPath;
|
||||
QString vboxVersion;
|
||||
vbox(QString name, QString managerPath="VBoxManage");
|
||||
int Create(QString type="Windows7");
|
||||
int CreateDisk(QString path, int size);
|
||||
int CreateDiskControl(QString controlName="storage_controller_1");
|
||||
int MountDisk(QString diskPath, QString controlName="storage_controller_1", int port=0, int device=0);
|
||||
int MountISO(QString isoPath, QString controlName="storage_controller_1", int port=1, int device=0);
|
||||
int BootFirst(QString bootDrive);
|
||||
int SetNetBridge(QString netDriver);
|
||||
int SetCPU(int number);
|
||||
int SetMemory(int memory);
|
||||
int SetRemote(bool setting);
|
||||
int SetRemoteConnectSetting(int port=5540);
|
||||
int Start(bool unShown=false);
|
||||
int Stop();
|
||||
int Delete();
|
||||
int SetDisplayMemory(int memory);
|
||||
int InstallGuessAdditions(QString controlName="storage_controller_1", int port=1, int device=0);
|
||||
int EnabledAudio();
|
||||
int EnabledClipboardMode();
|
||||
int EnabledDraganddrop();
|
||||
int ShareFile(QString name, QString path);
|
||||
int SetVBoxSVGA();
|
||||
int SetMousePS2();
|
||||
int SetKeyboardPS2();
|
||||
int OpenUSB();
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
#endif // VBOX_H
|
||||
@@ -1,144 +0,0 @@
|
||||
<!--
|
||||
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
|
||||
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
|
||||
virsh edit win7
|
||||
or other application using the libvirt API.
|
||||
-->
|
||||
|
||||
<domain type='kvm'>
|
||||
<name>win7</name>
|
||||
<uuid>721bf798-852e-4e2c-bfa7-c151037433b7</uuid>
|
||||
<metadata>
|
||||
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
|
||||
<libosinfo:os id="http://microsoft.com/win/7"/>
|
||||
</libosinfo:libosinfo>
|
||||
</metadata>
|
||||
<memory unit='KiB'>4194304</memory>
|
||||
<currentMemory unit='KiB'>4194304</currentMemory>
|
||||
<vcpu placement='static'>2</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<features>
|
||||
<acpi/>
|
||||
<apic/>
|
||||
<hyperv mode='custom'>
|
||||
<relaxed state='on'/>
|
||||
<vapic state='on'/>
|
||||
<spinlocks state='on' retries='8191'/>
|
||||
</hyperv>
|
||||
<vmport state='off'/>
|
||||
</features>
|
||||
<cpu mode='host-model' check='partial'/>
|
||||
<clock offset='localtime'>
|
||||
<timer name='rtc' tickpolicy='catchup'/>
|
||||
<timer name='pit' tickpolicy='delay'/>
|
||||
<timer name='hpet' present='no'/>
|
||||
<timer name='hypervclock' present='yes'/>
|
||||
</clock>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>destroy</on_crash>
|
||||
<pm>
|
||||
<suspend-to-mem enabled='no'/>
|
||||
<suspend-to-disk enabled='no'/>
|
||||
</pm>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='qemu' type='qcow2'/>
|
||||
<source file='/var/lib/libvirt/images/win7'/>
|
||||
<target dev='sda' bus='sata'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
<disk type='file' device='cdrom'>
|
||||
<driver name='qemu' type='raw'/>
|
||||
<source file='/media/gfdgd_xi/ventoy/XiaYuHao/System-ISO/Windows-ISO/Windows-7/Windows-7-SP1-x86.iso'/>
|
||||
<target dev='sdb' bus='sata'/>
|
||||
<readonly/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
|
||||
</disk>
|
||||
<disk type='file' device='cdrom'>
|
||||
<driver name='qemu' type='raw'/>
|
||||
<source file='/home/gfdgd_xi/Desktop/deep-wine-runner/VM/Windows7X86自动应答.iso'/>
|
||||
<target dev='sdc' bus='sata'/>
|
||||
<readonly/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='2'/>
|
||||
</disk>
|
||||
<controller type='usb' index='0' model='ich9-ehci1'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x7'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-uhci1'>
|
||||
<master startport='0'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0' multifunction='on'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-uhci2'>
|
||||
<master startport='2'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x1'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-uhci3'>
|
||||
<master startport='4'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x2'/>
|
||||
</controller>
|
||||
<controller type='sata' index='0'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
|
||||
</controller>
|
||||
<controller type='pci' index='0' model='pcie-root'/>
|
||||
<controller type='pci' index='1' model='pcie-root-port'>
|
||||
<model name='pcie-root-port'/>
|
||||
<target chassis='1' port='0x10'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
|
||||
</controller>
|
||||
<controller type='pci' index='2' model='pcie-root-port'>
|
||||
<model name='pcie-root-port'/>
|
||||
<target chassis='2' port='0x11'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
|
||||
</controller>
|
||||
<controller type='pci' index='3' model='pcie-root-port'>
|
||||
<model name='pcie-root-port'/>
|
||||
<target chassis='3' port='0x12'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
|
||||
</controller>
|
||||
<interface type='direct'>
|
||||
<mac address='52:54:00:a3:d2:72'/>
|
||||
<source dev='enp37s0' mode='bridge'/>
|
||||
<model type='e1000e'/>
|
||||
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
|
||||
</interface>
|
||||
<serial type='pty'>
|
||||
<target type='isa-serial' port='0'>
|
||||
<model name='isa-serial'/>
|
||||
</target>
|
||||
</serial>
|
||||
<console type='pty'>
|
||||
<target type='serial' port='0'/>
|
||||
</console>
|
||||
<input type='tablet' bus='usb'>
|
||||
<address type='usb' bus='0' port='1'/>
|
||||
</input>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<input type='keyboard' bus='ps2'/>
|
||||
<graphics type='spice' autoport='yes'>
|
||||
<listen type='address'/>
|
||||
<image compression='off'/>
|
||||
</graphics>
|
||||
<sound model='ich9'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
|
||||
</sound>
|
||||
<audio id='1' type='spice'/>
|
||||
<video>
|
||||
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
|
||||
</video>
|
||||
<redirdev bus='usb' type='spicevmc'>
|
||||
<address type='usb' bus='0' port='2'/>
|
||||
</redirdev>
|
||||
<redirdev bus='usb' type='spicevmc'>
|
||||
<address type='usb' bus='0' port='3'/>
|
||||
</redirdev>
|
||||
<memballoon model='virtio'>
|
||||
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
|
||||
</memballoon>
|
||||
</devices>
|
||||
</domain>
|
||||
@@ -1,176 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="14"/>
|
||||
<source>Windows 应用适配工具</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="32"/>
|
||||
<location filename="mainwindow.ui" line="35"/>
|
||||
<source>设置</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="43"/>
|
||||
<source>镜像路径:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="50"/>
|
||||
<source>请选择系统镜像</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="57"/>
|
||||
<source>浏览……</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="68"/>
|
||||
<source>系统版本:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="78"/>
|
||||
<source>请选择系统类型(如果识别不了请自行选择,如果选择错误或不支持将无法进行自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="82"/>
|
||||
<source>Windows 7 32 位(支持自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="87"/>
|
||||
<source>Windows 7 64 位(支持自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="92"/>
|
||||
<source>其它 Windows 系统(不支持自动安装)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="117"/>
|
||||
<source>安装</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="126"/>
|
||||
<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>
|
||||
<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"/>
|
||||
<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;">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了)</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;">安装加强功能有什么好处?</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="224"/>
|
||||
<location filename="mainwindow.ui" line="313"/>
|
||||
<source>关于</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="281"/>
|
||||
<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;"> 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></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="308"/>
|
||||
<source>退出</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -1,23 +0,0 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>deepin-wine-runner.svg</file>
|
||||
<file>deepin-wine-runner.png</file>
|
||||
<file>LANG/virtualmachine-en_US.qm</file>
|
||||
<file>LANG/virtualmachine-en_US.ts</file>
|
||||
</qresource>
|
||||
<qresource prefix="/picture">
|
||||
<file>截图_VirtualBox Machine_20220712142929.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712143103.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712143044.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712143037.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712143029.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712143018.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712143006.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712191756.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712192850.png</file>
|
||||
<file>截图/截图_VirtualBox Machine_20220712193527.png</file>
|
||||
<file>截图/截图_VirtualBox Manager_20220712223602.png</file>
|
||||
<file>截图/截图_VirtualBox_20220712223705.png</file>
|
||||
<file>截图/截图_选择区域_20220712224639.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
Before Width: | Height: | Size: 198 KiB |
|
Before Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 219 KiB |
|
Before Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 1006 KiB |
|
Before Width: | Height: | Size: 428 KiB |