Compare commits

..
Author SHA1 Message Date
gfdgd-xi 9799b598c3 调整README 2024-01-28 19:13:02 +08:00
gfdgd-xi 2933fc90df 调整README 2024-01-28 19:12:02 +08:00
gfdgd-xi 4a4a75eacd 大致 2024-01-16 22:18:09 +08:00
gfdgd-xi 42516f874a 初步多线程 2024-01-02 22:40:51 +08:00
gfdgd-xi c4b977c31c 实现Wine识别检测功能 2024-01-01 22:36:04 +08:00
gfdgd-xi df6d4ef120 初步的兼容层检测 2024-01-01 17:53:39 +08:00
gfdgd-xi 8e9489b7f7 历史记录的初步读取 2024-01-01 17:33:09 +08:00
gfdgd-xi b6d435def7 实现了部分wine检测 2024-01-01 16:48:08 +08:00
gfdgd-xi 60c3920f1f 初步调好了UI 2024-01-01 15:46:55 +08:00
gfdgd-xi f9f163b973 UI熟悉多了 2024-01-01 15:25:51 +08:00
gfdgd-xi 1b30fd4a6c UI有点感觉了 2024-01-01 15:19:08 +08:00
gfdgd-xi 0b27387d08 Add README 2024-01-01 14:00:01 +08:00
gfdgd-xi 0bcc1dfc18 Add README 2024-01-01 13:56:02 +08:00
gfdgd-xi c4a0fcfa6e GPLV3 2024-01-01 13:51:52 +08:00
95 changed files with 1192 additions and 8356 deletions
+73 -3
View File
@@ -1,3 +1,73 @@
*.user*
.qmake.stash
__pycache__
# 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
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
Binary file not shown.
-88
View File
@@ -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>
-85
View File
@@ -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:/install.wim#Windows 7 ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
-1
View File
@@ -1 +0,0 @@
windows-virtual-machine-installer-for-wine-runner.gfdgdxi.top
-88
View File
@@ -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>
-85
View File
@@ -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>
-3
View File
@@ -1,3 +0,0 @@
[autorun]
ICON=icon.ico
LABEL=自动部署
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.
-176
View File
@@ -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&apos;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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;使&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;&lt;/body&gt;&lt;/html&gt;</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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ctrl&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712191756.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;使&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712192850.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712193527.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Windows 7 Windows 7 Windows XPWindows 10DeepinUbuntu &lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;1 Oracle VM VirtualBox &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;2Windows&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Manager_20220712223602.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;3&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox_20220712223705.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//__20220712224639.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1=&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/_VirtualBox Machine_20220712142929.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2VirtualBox Guest AdditionsVBoxWindowsAdditions&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143006.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143018.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4Next&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143029.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143037.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;5Install&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143044.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;6Reboot nowFinishReboot nowFinish&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143103.png&quot; /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; wine Wine Is Not An Emulator&amp;lt;Wine &amp;gt; Windows &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; C++ QtPython Virtualbox Windows Linux Windows exe &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; GPL V3 &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Gitee&lt;a href=&quot;https://gitee.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gitee.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Github&lt;a href=&quot;https://github.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://github.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Gitlink&lt;a href=&quot;https://gitlink.org.cn/gfdgd_xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gitlink.org.cn/gfdgd_xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Wine Wine Windows Windows exe &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;gfdgd xi&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Droid Sans Mono&apos;,&apos;monospace&apos;,&apos;monospace&apos;; font-size:11pt; color:#6a9955;&quot;&gt;https://juejin.cn/post/7080484519328874510&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="308"/>
<source>退</source>
<translation type="unfinished">Exit</translation>
</message>
</context>
</TS>
-720
View File
@@ -1,720 +0,0 @@
#############################################################################
# Makefile for building: VirtualMachine
# Generated by qmake (3.1) (Qt 5.15.7)
# 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/.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 \
qemusetting.cpp qrc_trans.cpp \
qrc_图标.cpp \
moc_mainwindow.cpp \
moc_infoutils.cpp \
moc_qemusetting.cpp
OBJECTS = main.o \
mainwindow.o \
buildvbox.o \
vbox.o \
command.o \
infoutils.o \
qemu.o \
qemusetting.o \
qrc_trans.o \
qrc_图标.o \
moc_mainwindow.o \
moc_infoutils.o \
moc_qemusetting.o
DIST = en_US.qm \
en_US.ts \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/sanitize.conf \
/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_KAuth.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
/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_dtkcore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkdeclarative.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_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_quickwidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandclient.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_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 \
qemusetting.h main.cpp \
mainwindow.cpp \
buildvbox.cpp \
vbox.cpp \
command.cpp \
infoutils.cpp \
qemu.cpp \
qemusetting.cpp
QMAKE_TARGET = VirtualMachine
DESTDIR =
TARGET = VirtualMachine
first: all
####### Build rules
VirtualMachine: ui_mainwindow.h ui_qemusetting.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_KAuth.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri \
/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_dtkcore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkdeclarative.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_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_quickwidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandclient.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri \
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_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 \
trans.qrc \
图标.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_KAuth.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KAuthCore.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KBookmarks.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCodecs.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCompletion.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigCore.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigGui.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KConfigWidgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KCoreAddons.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KDBusAddons.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGlobalAccel.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KGuiAddons.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KI18n.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIconThemes.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOCore.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOFileWidgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOGui.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KIOWidgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KItemViews.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KJobWidgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KNTLM.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KParts.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KService.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KTextWidgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWidgetsAddons.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KWindowSystem.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_KXmlGui.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_concurrent.pri:
/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_dtkcore.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_dtkdeclarative.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_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_quickwidgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_script.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_scripttools.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_service_support_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_sql_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_svg.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_testlib_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_theme_support_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uiplugin.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_uitools.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_vulkan_support_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandclient.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webchannel.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webengine.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginecore.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_webenginewidgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_websockets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_widgets_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_x11extras.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xkbcommon_support_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_xml_private.pri:
/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_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:
trans.qrc:
图标.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 trans.qrc 图标.qrc $(DISTDIR)/
$(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/
$(COPY_FILE) --parents mainwindow.h buildvbox.h vbox.h command.h infoutils.h qemu.h qemusetting.h $(DISTDIR)/
$(COPY_FILE) --parents main.cpp mainwindow.cpp buildvbox.cpp vbox.cpp command.cpp infoutils.cpp qemu.cpp qemusetting.cpp $(DISTDIR)/
$(COPY_FILE) --parents mainwindow.ui qemusetting.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_trans.cpp qrc_图标.cpp
compiler_rcc_clean:
-$(DEL_FILE) qrc_trans.cpp qrc_图标.cpp
qrc_trans.cpp: trans.qrc \
/usr/lib/qt5/bin/rcc \
en_US.ts \
en_US.qm \
zh_CN.ts \
zh_CN.qm
/usr/lib/qt5/bin/rcc -name trans trans.qrc -o qrc_trans.cpp
qrc_图标.cpp: 图标.qrc \
/usr/lib/qt5/bin/rcc \
deepin-wine-runner.png \
deepin-wine-runner.svg \
application-vnd.oasis.opendocument.text.svg \
截图_VirtualBox\ Machine_20220712142929.png \
截图/截图_VirtualBox\ Machine_20220712143018.png \
截图/截图_VirtualBox\ Machine_20220712192850.png \
截图/截图_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 \
test.qcow2 \
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 moc_qemusetting.cpp
compiler_moc_header_clean:
-$(DEL_FILE) moc_mainwindow.cpp moc_infoutils.cpp moc_qemusetting.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/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner -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++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -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/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner -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++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include infoutils.h -o moc_infoutils.cpp
moc_qemusetting.cpp: qemusetting.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/gfdgd_xi/Desktop/deep-wine-runner/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/gfdgd_xi/Desktop/deep-wine-runner -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++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -I/usr/include/c++/11/backward -I/usr/lib/gcc/x86_64-linux-gnu/11/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include qemusetting.h -o moc_qemusetting.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 ui_qemusetting.h
compiler_uic_clean:
-$(DEL_FILE) ui_mainwindow.h ui_qemusetting.h
ui_mainwindow.h: mainwindow.ui \
/usr/lib/qt5/bin/uic
/usr/lib/qt5/bin/uic mainwindow.ui -o ui_mainwindow.h
ui_qemusetting.h: qemusetting.ui \
/usr/lib/qt5/bin/uic
/usr/lib/qt5/bin/uic qemusetting.ui -o ui_qemusetting.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 \
qemusetting.h \
vbox.h \
qemu.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
qemusetting.o: qemusetting.cpp qemusetting.h \
ui_qemusetting.h \
infoutils.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qemusetting.o qemusetting.cpp
qrc_trans.o: qrc_trans.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_trans.o qrc_trans.cpp
qrc_图标.o: qrc_图标.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_图标.o qrc_图标.cpp
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
moc_qemusetting.o: moc_qemusetting.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qemusetting.o moc_qemusetting.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:
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
-12
View File
@@ -1,12 +0,0 @@
#!/bin/bash
# 如果是 Arch Linux
if [[-f /etc/arch-release ]]; then
sudo pacman -Syu
sudo pacman -S qemu-user qemu-user-static qemu-full
exit
fi
sudo apt update
sudo apt install qemu-system qemu-user qemu-efi qemu-efi-aarch64 qemu-efi-arm -y
sudo apt install qemu-user-static binfmt-support qemu-system-gui -y
echo 安装完成!按回车键退出
read
Regular → Executable
+24 -19
View File
@@ -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 运行器)
![图片.png](https://storage.deepin.org/thread/202304092224497604_图片.png)
![图片.png](https://storage.deepin.org/thread/202304092224396099_图片.png)
![图片.png](https://storage.deepin.org/thread/202304092224315599_图片.png)
## 如何使用
安装最新版本的 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
+23
View File
@@ -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>
-109
View File
@@ -1,109 +0,0 @@
#!/bin/bash
# 使用系统默认的 bash 运行
###########################################################################################
# 作者:gfdgd xi
# 版本:1.7.0
# 更新时间:2022年07月15日
# 感谢:感谢 wine 以及 deepin-wine 团队,提供了 wine 和 deepin-wine 给大家使用,让我能做这个程序
# 基于 Python3 的 tkinter 构建
###########################################################################################
cd `dirname $0`
VBoxManage showvminfo Windows
if [[ 0 == $? ]]; then
# 检测到虚拟机存在,启动虚拟机
VBoxManage startvm Windows > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
exit
fi
# 检查是否有 QEMU
which qemu-system-x86_64
if [[ $? == 0 ]] && [[ -f "$HOME/Qemu/Windows/Windows.qcow2" ]]; then
if [[ -f "$HOME/.config/deepin-wine-runner/QemuSetting.json" ]]; then
echo 有设置文件,读设置文件
cd `dirname $0`
python3 ./VM/StartQemu.py
exit
fi
# 查看CPU个数
CpuSocketNum=`cat /proc/cpuinfo | grep "cpu cores" | uniq | wc -l`
# 查看CPU核心数
CpuCoreNum=`grep 'core id' /proc/cpuinfo | sort -u | wc -l`
# 查看逻辑CPU的个数
CpuCount=`cat /proc/cpuinfo| grep "processor"| wc -l`
# 总内存大小GB
MemTotal=`awk '($1 == "MemTotal:"){printf "%.2f\n",$2/1024/1024}' /proc/meminfo`
use=$(echo "scale=4; $MemTotal / 3" | bc)
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep amd64
if [[ $? == 0 ]] || [[ ! -e ~/.config/deepin-wine-runner/QEMU-ARCH ]]; then
# amd64 架构
if [[ -f $HOME/.config/deepin-wine-runner/QEMU-EFI ]]; then
echo 使用 UEFI 启动
if [[ -f /usr/share/qemu/OVMF.fd ]]; then
qemuUEFI="--bios /usr/share/qemu/OVMF.fd"
else
if [[ -f `dirname $0`/VM/OVMF.fd ]]; then
qemuUEFI="--bios `dirname $0`/VM/OVMF.fd"
fi
fi
echo $qemuUEFI
fi
./VM/kvm-ok
if [[ $? == 0 ]] && [[ `arch` == "x86_64" ]]; then
echo X86 架构,使用 kvm 加速
qemu-system-x86_64 --enable-kvm -cpu host --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
exit
fi
echo 不使用 kvm 加速
qemu-system-x86_64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1
exit
fi
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep armhf
if [[ $? == 0 ]]; then
# armhf 架构
# 寻找 UEFI 固件
if [[ -f /usr/share/AAVMF/AAVMF32_CODE.fd ]]; then
qemuUEFI="--bios /usr/share/AAVMF/AAVMF32_CODE.fd"
else
if [[ -f ./VM/AAVMF32_CODE.fd ]]; then
qemuUEFI="--bios ./VM/AAVMF32_CODE.fd"
fi
fi
echo $qemuUEFI
./VM/kvm-ok
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
qemu-system-arm --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
exit
fi
qemu-system-arm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
exit
fi
cat ~/.config/deepin-wine-runner/QEMU-ARCH | grep aarch64
if [[ $? == 0 ]]; then
# aarch64 架构
# 寻找 UEFI 固件
if [[ -f /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ]]; then
qemuUEFI="--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd"
else
if [[ -f ./VM/QEMU_AARCH64_EFI.fd ]]; then
qemuUEFI="--bios ./VM/QEMU_AARCH64_EFI.fd"
fi
fi
echo $qemuUEFI
./VM/kvm-ok
if [[ $? == 0 ]] && [[ `arch` == "aarch64" ]]; then
qemu-system-aarch64 --enable-kvm --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
exit
fi
qemu-system-aarch64 --hda "$HOME/Qemu/Windows/Windows.qcow2" -soundhw all -smp $CpuCount,sockets=$CpuSocketNum,cores=$(($CpuCoreNum / $CpuSocketNum)),threads=$(($CpuCount / $CpuCoreNum / $CpuSocketNum)) -m ${use}G -net user,hostfwd=tcp::3389-:3389 -display vnc=:5 -display gtk -usb -nic model=rtl8139 $qemuUEFI -cpu max -M virt -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1
exit
fi
fi
zenity --question --no-wrap --text="检查到您未创建所指定的虚拟机,是否创建虚拟机并继续?\n如果不创建将无法使用"
if [[ 1 == $? ]]; then
# 用户不想创建虚拟机,结束
exit
fi
./VM/VirtualMachine
-64
View File
@@ -1,64 +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 \
qemusetting.cpp
HEADERS += \
mainwindow.h \
buildvbox.h \
vbox.h \
command.h \
infoutils.h \
qemu.h \
qemusetting.h
FORMS += \
mainwindow.ui \
qemusetting.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 += \
trans.qrc \
图标.qrc
DISTFILES += \
en_US.qm \
en_US.ts
-346
View File
@@ -1,346 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 7.0.1, 2023-11-25T17:10:08. -->
<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.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.BuildSystem</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">2</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">桌面</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">桌面</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b17c65ba-6912-41bf-b5c1-4c7446f6c967}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="SeparateDebugInfo">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.6 in PATH (qt5)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.6 in PATH (qt5)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{ab20853c-9d79-473a-820e-8e95c145170e}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">2</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>
-214
View File
@@ -1,214 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.8.2, 2023-07-12T19:05:39. -->
<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">Deploy</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.ProjectConfiguration.DefaultDisplayName">VirtualMachine</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">VirtualMachine.pro</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.UseLibrarySearchPath">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">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</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>
-347
View File
@@ -1,347 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 7.0.1, 2023-11-07T19:30:53. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{4ffd6df9-1365-4837-81b1-582e0e2d1f21}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.BuildSystem</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">2</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.6 in PATH (qt5)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.6 in PATH (qt5)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{ab20853c-9d79-473a-820e-8e95c145170e}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/building/deep-wine-runner/VM-source</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">桌面</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">桌面</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b17c65ba-6912-41bf-b5c1-4c7446f6c967}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/gfdgd_xi/Desktop/deep-wine-runner/build-VirtualMachine-unknown-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="SeparateDebugInfo">0</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/VirtualMachine.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/gfdgd_xi/Desktop/build-VirtualMachine-unknown-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">2</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>
Binary file not shown.
Binary file not shown.
+79
View File
@@ -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();
}
+25
View File
@@ -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
+78
View File
@@ -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>&lt;a&gt;&lt;img src=&quot;:/Icon/deepin-wine-runner.svg&quot; width=256 &gt;&lt;/a&gt;</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>
-125
View File
@@ -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,34 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" viewBox="0 0 128 128">
<defs>
<linearGradient id="x-office-document-c" x1="50%" x2="50%" y1="0%" y2="100%">
<stop offset="0%" stop-color="#005CC2"/>
<stop offset="100%" stop-color="#004DA3"/>
</linearGradient>
<path id="x-office-document-b" d="M84,95 C84,99.9705627 79.9705627,104 75,104 L9,104 C4.02943725,104 6.08718376e-16,99.9705627 0,95 L0,9 C-6.08718376e-16,4.02943725 4.02943725,9.13077564e-16 9,0 L58,0 L84,26 L84,95 Z"/>
<filter id="x-office-document-a" width="127.4%" height="122.1%" x="-13.7%" y="-9.1%" filterUnits="objectBoundingBox">
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"/>
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="3.5"/>
<feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0.22745098 0 0 0 0 0.494117647 0 0 0 0 0.960784314 0 0 0 0.2 0"/>
</filter>
<linearGradient id="x-office-document-f" x1="50%" x2="10.489%" y1="50%" y2="91.194%">
<stop offset="0%" stop-color="#FFF" stop-opacity=".1"/>
<stop offset="100%" stop-color="#FFF" stop-opacity=".3"/>
</linearGradient>
<path id="x-office-document-e" d="M58,0 L84,26 L67,26 C62.0294373,26 58,21.9705627 58,17 L58,0 L58,0 Z"/>
<filter id="x-office-document-d" width="188.5%" height="188.5%" x="-44.2%" y="-36.5%" filterUnits="objectBoundingBox">
<feOffset dy="2" in="SourceAlpha" result="shadowOffsetOuter1"/>
<feGaussianBlur in="shadowOffsetOuter1" result="shadowBlurOuter1" stdDeviation="3.5"/>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"/>
<feColorMatrix in="shadowBlurOuter1" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0"/>
</filter>
</defs>
<g fill="none" fill-rule="evenodd">
<g transform="translate(22 14)">
<use fill="#000" filter="url(#x-office-document-a)" xlink:href="#x-office-document-b"/>
<use fill="url(#x-office-document-c)" xlink:href="#x-office-document-b"/>
<use fill="#000" filter="url(#x-office-document-d)" xlink:href="#x-office-document-e"/>
<use fill="url(#x-office-document-f)" xlink:href="#x-office-document-e"/>
</g>
<path fill="#FFF" fill-opacity=".6" d="M92,50 L92,52 L36,52 L36,50 L92,50 Z M92,60 L92,62 L36,62 L36,60 L92,60 Z M92,70 L92,72 L36,72 L36,70 L92,70 Z M92,80 L92,82 L36,82 L36,80 L92,80 Z M92,90 L92,92 L36,92 L36,90 L92,90 Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

-12
View File
@@ -1,12 +0,0 @@
#!/bin/bash
#cd `dirname $0`
bin=$1
nasm -f bin $1 -o `basename $1`.bin
if [[ $? != 0 ]];then
exit
fi
sudo modprobe nbd 8
sudo qemu-nbd `dirname $0`/test.qcow2 --connect /dev/nbd0
sudo dd if=`basename $1`.bin of=/dev/nbd0
sudo qemu-nbd -d /dev/nbd0
kvm --hda `dirname $0`/test.qcow2 -rtc base=localtime
-295
View File
@@ -1,295 +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"
#include <QProcess>
// 懒得用 QThread 了(要继承)
#include <thread>
using namespace std;
// 清屏
void buildvbox::CleanScreen(){
if(QFile::exists("/etc/os-version")){
// Unix
system("clear");
return;
}
// Windows
system("cls");
}
// 获取 CPU 个数
int buildvbox::GetCPUSocket(){
// 获取命令返回值
QProcess process;
process.start("bash", QStringList() << "-c" << "cat /proc/cpuinfo | grep \"cpu cores\" | uniq | wc -l");
process.waitForStarted();
process.waitForFinished();
int value = process.readAllStandardOutput().toInt();
process.close();
// 判断异常值,例如没挂载 /proc
if(value <= 0){
value = 1;
}
return value;
}
// 获取 CPU 核心数
int buildvbox::GetCPUCore(){
QProcess process;
process.start("bash", QStringList() << "-c" << "grep 'core id' /proc/cpuinfo | sort -u | wc -l");
process.waitForStarted();
process.waitForFinished();
int value = process.readAllStandardOutput().toInt();
process.close();
// 判断异常值,例如没挂载 /proc
if(value <= 0){
value = 1;
}
return value;
}
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){
QString programPath = QCoreApplication::applicationDirPath();
QString net = GetNet();
qDebug() << "使用网卡:" << net << endl;
if(vm == 0){
// Qemu
qemu vm("Windows");
bool setISOAlready = 0;
switch (id) {
case 0:
vm.Create("Windows7");
vm.SetDisplayMemory(32);
break;
case 1:
vm.Create("Windows7_64");
vm.SetDisplayMemory(32);
break;
case 2:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
break;
case 3:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.EnabledUEFI(true);
break;
case 4:
vm.Create("Windows11_64");
vm.SetDisplayMemory(128);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
case 5:
vm.Create("WindowsXP_32");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 6:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 7:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
case 8:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.UseArmhfEFI();
setISOAlready = 1;
break;
case 9:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.UseAarch64EFI();
setISOAlready = 1;
break;
}
vm.CreateDiskControl();
//vm.CreateDiskControl("storage_controller_2");
vm.CreateDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2", 131072);
//vm.MountDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
vm.MountMainDisk(QDir::homePath() + "/Qemu/Windows/Windows.qcow2");
if(!setISOAlready){
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
case 0:
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 2);
break;
case 1:
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 2);
break;
}
}
else{
//vm.AutoInstall(isoPath);
if(isoPath != ""){
vm.MountMainISO(isoPath);
}
}
vm.SetCPU(get_nprocs(), GetCPUSocket(), GetCPUCore());
long memory = 0;
long memoryAll = 0;
long swap = 0;
long swapAll = 0;
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
vm.SetMemory(memoryAll / 3 / 1024);
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());
switch(id){
case 8:
vm.StartArmhf();
break;
case 9:
vm.StartAarch64();
break;
default:
vm.Start();
break;
}
// 设置更多参数
vm.SetMore("-display vnc=:5 -display gtk -usb -nic model=rtl8139");
}
else if(vm == 1){
// VirtualBox
vbox vm("Windows");
bool setISOAlready = 1;
switch (id) {
case 0:
vm.Create("Windows7");
vm.SetDisplayMemory(32);
break;
case 1:
vm.Create("Windows7_64");
vm.SetDisplayMemory(32);
break;
case 2:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
break;
case 3:
vm.Create("WindowsNT_64");
vm.EnabledUEFI(true);
vm.SetDisplayMemory(32);
break;
case 4:
vm.Create("Windows11_64");
vm.SetDisplayMemory(128);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
case 5:
vm.Create("WindowsXP_32");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 6:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
setISOAlready = 1;
break;
case 7:
vm.Create("WindowsNT_64");
vm.SetDisplayMemory(32);
vm.EnabledUEFI(true);
setISOAlready = 1;
break;
}
QDir dir("/home/gfdgd_xi/Qemu/Windows/");
dir.mkpath("/home/gfdgd_xi/Qemu/Windows/");
vm.CreateDiskControl();
//vm.CreateDiskControl("storage_controller_2");
vm.CreateDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi", 131072);
vm.MountDisk(QDir::homePath() + "/VirtualBox VMs/Windows/Windows.vdi");
if(!setISOAlready){
vm.MountISO(isoPath, "storage_controller_1", 0, 1);
switch (id) {
case 0:
vm.MountISO(programPath + "/Windows7X86Auto.iso", "storage_controller_1", 1, 0);
break;
case 1:
vm.MountISO(programPath + "/Windows7X64Auto.iso", "storage_controller_1", 1, 0);
break;
}
}
else{
vm.AutoInstall(isoPath);
}
// 判断 VirtualBox Guest ISO 是否存在
// 在的话直接挂载
if(QFile::exists("/usr/share/virtualbox/VBoxGuestAdditions.iso")){
vm.MountISO("/usr/share/virtualbox/VBoxGuestAdditions.iso", "storage_controller_1", 1, 1);
}
// VirtualBox 的 CPU 数量设置方法和 Qemu 不一样
vm.SetCPU(GetCPUCore(), GetCPUSocket(), GetCPUCore());
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.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();
}
}
-21
View File
@@ -1,21 +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);
int GetCPUSocket();
int GetCPUCore();
};
#endif // BUILDVBOX_H
-18
View File
@@ -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());
}
-16
View File
@@ -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
+38
View File
@@ -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
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN"></TS>
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
View File
Binary file not shown.
-602
View File
@@ -1,602 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en" sourcelanguage="zh_CN">
<context>
<name>MainWindow</name>
<message>
<location filename="mainwindow.ui" line="14"/>
<source>Wine </source>
<translation>Wine Runner Virtual Machine Install Tools</translation>
</message>
<message>
<location filename="mainwindow.ui" line="32"/>
<location filename="mainwindow.ui" line="35"/>
<source></source>
<translation>Setting</translation>
</message>
<message>
<location filename="mainwindow.ui" line="43"/>
<source></source>
<translation>ISO FilePath:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="50"/>
<source></source>
<translation>Please choose or input system image</translation>
</message>
<message>
<location filename="mainwindow.ui" line="57"/>
<source></source>
<translation>browser...</translation>
</message>
<message>
<location filename="mainwindow.ui" line="68"/>
<source></source>
<translation>System Version:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="75"/>
<location filename="mainwindow.ui" line="79"/>
<source>Windows 7 32 </source>
<translation>Windows 7 32bit (support auto installing)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="84"/>
<source>Windows 7 64 </source>
<translation>Windows 7 64bit (support auto installing)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="89"/>
<source> Windows Windows 7 </source>
<translation>Other system (unsupport auto installing and using legacy boot)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="94"/>
<source> Windows UEFI Windows 8 </source>
<translation>Other system (unsupport auto installing and using UEFI boot)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="99"/>
<source> WIndows 11</source>
<translation>Install windows (unsupport auto installing)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="104"/>
<source> Windows XP VirtualBox</source>
<translation>Install other Windows XP (support auto installing but only support VirtualBox)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="109"/>
<source> Windows VirtualBox</source>
<translation>Install Other Windows (support auto installing and using legacy boot but only support VirtualBox)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="114"/>
<source> WindowsUEFI VirtualBox</source>
<translation>Install Other Windows (support auto installing and using UEFI boot but only support VirtualBox)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="119"/>
<source> arm32 Qemu</source>
<translation>Install arm32 system (only support Qemu/KVM)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="124"/>
<source> arm64 Qemu</source>
<translation>Install arm64 system (only support Qemu/KVM)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="136"/>
<source></source>
<translation>Virtual Machine:</translation>
</message>
<message>
<location filename="mainwindow.ui" line="143"/>
<location filename="mainwindow.ui" line="153"/>
<source>qemu/kvm</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="158"/>
<source>VirtualBox</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.ui" line="183"/>
<source> Qemu</source>
<translation>Install Qemu</translation>
</message>
<message>
<location filename="mainwindow.ui" line="190"/>
<source>kvm </source>
<translation>kvm test</translation>
</message>
<message>
<location filename="mainwindow.ui" line="197"/>
<source>Qemu虚拟机设置</source>
<translation>Qemu Setting</translation>
</message>
<message>
<location filename="mainwindow.ui" line="204"/>
<source>/Qemu磁盘</source>
<translation>Add/Replace Qemu Disk</translation>
</message>
<message>
<location filename="mainwindow.ui" line="211"/>
<source>Qemu磁盘</source>
<translation>Export Qemu Disk</translation>
</message>
<message>
<location filename="mainwindow.ui" line="218"/>
<source>Qemu磁盘</source>
<translation>Delete Qemu Disk</translation>
</message>
<message>
<location filename="mainwindow.ui" line="225"/>
<source>VirtualBox</source>
<translation>Get VirtualBox</translation>
</message>
<message>
<location filename="mainwindow.ui" line="232"/>
<source></source>
<translation>Install</translation>
</message>
<message>
<location filename="mainwindow.ui" line="241"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;UOS 3a4000 使 Qemu /&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://gfdgdxi.lanzoue.com/b01rk9wza&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gfdgdxi.lanzoue.com/b01rk9wza&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; 密码:6wvf&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;Qemu / kvm Qemu&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;使 ISO &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;123 &lt;/span&gt;&lt;a href=&quot;https://www.123pan.com/s/pDSKVv-oypWv&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://www.123pan.com/s/pDSKVv-oypWv&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; 提取码:35e5&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; 提取码: me4y&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt; font-weight:600;&quot;&gt; Windows &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;: &lt;/span&gt;&lt;a href=&quot;https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; 提取码: 7s2p &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;123&lt;/span&gt;&lt;a href=&quot;https://www.123pan.com/s/pDSKVv-uCBWv.html&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://www.123pan.com/s/pDSKVv-uCBWv.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="274"/>
<source>/使</source>
<translation>Document</translation>
</message>
<message>
<location filename="mainwindow.ui" line="283"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt;使 VirtualBox&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt; X86 PC使 qemu kvm使 Windows XP Windows 7&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; text-decoration: underline;&quot;&gt;/https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ctrl&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt;qemu则是 Ctrl+Alt+G&lt;/span&gt; &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;VirtualBox &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Qemu Virtio &lt;a href=&quot;https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712191756.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;使&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712192850.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712193527.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Windows 7 Windows 7 Windows XPWindows 10DeepinUbuntu &lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;1 Oracle VM VirtualBox &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;2Windows&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Manager_20220712223602.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;3&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox_20220712223705.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;使 VirtualBox&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//__20220712224639.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1=&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/_VirtualBox Machine_20220712142929.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2VirtualBox Guest AdditionsVBoxWindowsAdditions&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143006.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143018.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4Next&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143029.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143037.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;5Install&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143044.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;6Reboot nowFinishReboot nowFinish&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143103.png&quot; /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="364"/>
<location filename="mainwindow.ui" line="482"/>
<source></source>
<translation>About</translation>
</message>
<message>
<location filename="mainwindow.ui" line="421"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; wine Wine Is Not An Emulator&amp;lt;Wine &amp;gt; Windows &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; C++ QtPython Virtualbox Windows Linux Windows exe &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; GPL V3 &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Gitee&lt;a href=&quot;https://gitee.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gitee.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Github&lt;a href=&quot;https://github.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://github.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Wine Wine Windows Windows exe &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;gfdgd xi&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="463"/>
<source></source>
<translation>Virtual Machine</translation>
</message>
<message>
<location filename="mainwindow.ui" line="477"/>
<source>退</source>
<translation>Exit</translation>
</message>
<message>
<location filename="mainwindow.ui" line="487"/>
<source>/</source>
<translation>Add/Replace</translation>
</message>
<message>
<location filename="mainwindow.ui" line="492"/>
<source></source>
<translation>Export</translation>
</message>
<message>
<location filename="mainwindow.ui" line="497"/>
<location filename="mainwindow.cpp" line="442"/>
<source></source>
<translation>Virtual Machine log (Installing)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="502"/>
<location filename="mainwindow.cpp" line="408"/>
<source></source>
<translation>Virtual Machine log (Running)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="507"/>
<source>X86Qemu</source>
<translation>Qemu Test (x86, qemu)</translation>
</message>
<message>
<location filename="mainwindow.ui" line="512"/>
<source> VirtualBox</source>
<translation>Stop VirtualBox with forced</translation>
</message>
<message>
<location filename="mainwindow.ui" line="517"/>
<source> Qemu</source>
<translation>Stop Qemu with forced</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="88"/>
<source>Wine </source>
<translation>Wine Runner Virtual Machine Install Tools </translation>
</message>
<message>
<location filename="mainwindow.cpp" line="90"/>
<source>&lt;p&gt;</source>
<translation>&lt;p&gt;Program Version:</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="90"/>
<source>&lt;/p&gt;&lt;p&gt;</source>
<translation>&lt;/p&gt;&lt;p&gt;Package build time:</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="90"/>
<source>&lt;/p&gt;&lt;p&gt;</source>
<translation>&lt;/p&gt;&lt;p&gt;Tools builded time:</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="92"/>
<source>&lt;hr/&gt;&lt;h1&gt;&lt;/h1&gt;</source>
<translation>&lt;hr/&gt;&lt;h1&gt;Thank&lt;/h1&gt;</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="179"/>
<location filename="mainwindow.cpp" line="186"/>
<location filename="mainwindow.cpp" line="193"/>
<location filename="mainwindow.cpp" line="200"/>
<location filename="mainwindow.cpp" line="215"/>
<location filename="mainwindow.cpp" line="222"/>
<location filename="mainwindow.cpp" line="229"/>
<location filename="mainwindow.cpp" line="248"/>
<location filename="mainwindow.cpp" line="254"/>
<location filename="mainwindow.cpp" line="263"/>
<location filename="mainwindow.cpp" line="307"/>
<location filename="mainwindow.cpp" line="322"/>
<location filename="mainwindow.cpp" line="328"/>
<location filename="mainwindow.cpp" line="332"/>
<location filename="mainwindow.cpp" line="338"/>
<location filename="mainwindow.cpp" line="357"/>
<location filename="mainwindow.cpp" line="360"/>
<location filename="mainwindow.cpp" line="364"/>
<location filename="mainwindow.cpp" line="367"/>
<location filename="mainwindow.cpp" line="392"/>
<location filename="mainwindow.cpp" line="404"/>
<location filename="mainwindow.cpp" line="438"/>
<source></source>
<translation>Tips</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="179"/>
<source> Qemu</source>
<translation>Can&apos;t find qemu, do you want to countinue to create the virtual machine?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="186"/>
<source> VBox</source>
<translation>Can&apos;t find VirtualBox, do you want to countinue to create the virtual machine?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="193"/>
<source> qemu-system-arm</source>
<translation>Can&apos;t find the qemu-system-arm, do you want to countinue to create the virtual machine?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="200"/>
<source> qemu-system-aarch64</source>
<translation>Can&apos;t find the qemu-system-aarch64, do you want to countinue to create the virtual machine?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="215"/>
<source> Windows7X86Auto.iso
Wine </source>
<translation>Can&apos;t find the Windows7X86Auto.iso, do you want to countinue to create the virtual machine?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="222"/>
<source> Windows7X64Auto.iso
Wine </source>
<translation>Can&apos;t find the Windows7X64Auto.iso, do you want to countinue to create the virtual machine?</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="229"/>
<source> UEFI
Qemu Qemu</source>
<translation>Can&apos;t find the UEFI boot, do you want to countinue to create the virtual machine?
You can get qemu efi from &quot;Install Qemu&quot; button</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="248"/>
<source>Qemu </source>
<translation>Qemu unsupport it</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="254"/>
<location filename="mainwindow.cpp" line="263"/>
<source>VirtualBox </source>
<translation>VirtualBox unsupport it</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="278"/>
<source></source>
<translation>Tips: It trying to start virtualbox now, you should view the log in the tools menu if you can&apos;t see the virtual machine window a few time late</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="307"/>
<source>
</source>
<translation>Qemu Disk is exist. Do you want to replace?
You will not recovery after you replacing!</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="311"/>
<source> Qemu </source>
<translation>Choose Qemu Disk</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="311"/>
<source>Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;(*.*)</source>
<translation>Qemu Disk(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;All files(*.*)</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="322"/>
<location filename="mainwindow.cpp" line="328"/>
<source></source>
<translation>Add error!</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="332"/>
<source></source>
<translation>Add finishing!</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="338"/>
<source></source>
<translation>Can&apos;t export because can&apos;t find the qemu disk</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="357"/>
<source></source>
<translation>Can&apos;t delete because can&apos;t find the qemu disk</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="360"/>
<source>
</source>
<translation>Do you want to delete?
It can&apos;t recovery after you deleting!</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="364"/>
<source></source>
<translation>Delete error</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="367"/>
<source></source>
<translation>Delete successfully</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="373"/>
<location filename="mainwindow.cpp" line="389"/>
<source></source>
<translation>Error</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="373"/>
<source> kvm-ok
使 sudo apt install cpu-checker </source>
<translation>Can&apos;t find the command &quot;kvm-ok&quot; and you can use command &quot;sudo apt install cpu-checker&quot; to install</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="383"/>
<source>使</source>
<translation>Use</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="389"/>
<source>使 kvm
</source>
<translation>Your system can&apos;t use kvm:
</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="392"/>
<source>使 kvm
</source>
<translation>Your system can use kvm:
</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="404"/>
<location filename="mainwindow.cpp" line="438"/>
<source></source>
<translation>Can&apos;t find the log file</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="408"/>
<source></source>
<translation>Running file</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="442"/>
<source></source>
<translation>Installed log</translation>
</message>
</context>
<context>
<name>QemuSetting</name>
<message>
<location filename="qemusetting.ui" line="14"/>
<source></source>
<translation>Setting</translation>
</message>
<message>
<location filename="qemusetting.ui" line="35"/>
<source>&lt;h3&gt;&lt;/h3&gt;</source>
<translation>&lt;h3&gt;Remote Service&lt;/h3&gt;</translation>
</message>
<message>
<location filename="qemusetting.ui" line="42"/>
<source>VNC服务端口</source>
<translation>VNC service port:</translation>
</message>
<message>
<location filename="qemusetting.ui" line="49"/>
<source> rdp </source>
<translation>Enable rdp port</translation>
</message>
<message>
<location filename="qemusetting.ui" line="56"/>
<source>MB</source>
<translation>Memory size (MB):</translation>
</message>
<message>
<location filename="qemusetting.ui" line="90"/>
<source>&lt;h3&gt;&lt;/h3&gt;</source>
<translation>&lt;h3&gt;Base setting&lt;/h3&gt;</translation>
</message>
<message>
<location filename="qemusetting.ui" line="97"/>
<source>VNC服务</source>
<translation>Enable VNC service</translation>
</message>
<message>
<location filename="qemusetting.ui" line="104"/>
<source> kvm </source>
<translation>Enable kvm</translation>
</message>
<message>
<location filename="qemusetting.ui" line="111"/>
<source>CPU核心数</source>
<translation>CPU cores:</translation>
</message>
<message>
<location filename="qemusetting.ui" line="125"/>
<source></source>
<translation>Enable sound</translation>
</message>
<message>
<location filename="qemusetting.ui" line="145"/>
<source></source>
<translation>Save</translation>
</message>
<message>
<location filename="qemusetting.ui" line="158"/>
<source></source>
<translation>Cancel</translation>
</message>
<message>
<location filename="qemusetting.ui" line="171"/>
<source>
</source>
<translation>Resetting</translation>
</message>
<message>
<location filename="qemusetting.ui" line="185"/>
<source>
Wine
</source>
<translation>Get Wine
Runner</translation>
</message>
</context>
</TS>
+61
View File
@@ -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 生态适配的大佬进行由衷的感谢!",
"如果上面有遗漏,请向我反馈补充"
]
}
-218
View File
@@ -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();
}
-48
View File
@@ -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
-132
View File
@@ -1,132 +0,0 @@
#!/bin/sh
#
# kvm-ok - check whether the CPU we're running on supports KVM acceleration
# Copyright (C) 2008-2010 Canonical Ltd.
#
# Authors:
# Dustin Kirkland <kirkland@canonical.com>
# Kees Cook <kees.cook@canonical.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3,
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -e
assert_root() {
if [ "$(id -u)" != "0" ]; then
echo "INFO: For more detailed results, you should run this as root"
echo "HINT: sudo $0"
exit 1
fi
}
verdict() {
# Print verdict
if [ "$1" = "0" ]; then
echo "KVM acceleration can be used"
exit 0
else
echo "KVM acceleration can NOT be used"
exit 1
fi
}
ARM_CPU_PART_CORTEX_A15="0xc0f" # <asm/cputype.h>
# check cpu flags for capability
case "$(uname -m)" in
armv7l)
if egrep -m1 -w '^CPU part[[:blank:]]*:' /proc/cpuinfo | \
egrep -wq "$ARM_CPU_PART_CORTEX_A15"; then
virt="ARM"
kvm_mod="kvm"
fi
;;
aarch64)
virt="ARM"
kvm_mod="kvm"
;;
ppc64le|ppc64|s390x)
# FIXME: Assume that all POWER and z/Systems are KVM capable
virt="generic"
kvm_mod="kvm"
;;
*)
virt=$(egrep -m1 -w '^flags[[:blank:]]*:' /proc/cpuinfo | egrep -wo '(vmx|svm)') || true
[ "$virt" = "vmx" ] && kvm_mod="kvm_intel"
[ "$virt" = "svm" ] && kvm_mod="kvm_amd"
;;
esac
if [ -z "$virt" ]; then
echo "INFO: Your CPU does not support KVM extensions"
assert_root
verdict 1
fi
# Now, check that the device exists
if [ -e /dev/kvm ]; then
echo "INFO: /dev/kvm exists"
verdict 0
else
echo "INFO: /dev/kvm does not exist"
echo "HINT: sudo modprobe $kvm_mod"
fi
assert_root
# Prepare MSR access
msr="/dev/cpu/0/msr"
if [ ! -r "$msr" ]; then
modprobe msr
fi
if [ -e "$msr" -a ! -r "$msr" ]; then
echo "You must be root to run this check." >&2
exit 2
fi
echo "INFO: Your CPU supports KVM extensions"
disabled=0
# check brand-specific registers
if [ "$virt" = "vmx" ]; then
BIT=$(rdmsr --bitfield 0:0 0x3a 2>/dev/null || true)
if [ "$BIT" = "1" ]; then
# and FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX clear (no tboot)
BIT=$(rdmsr --bitfield 2:2 0x3a 2>/dev/null || true)
if [ "$BIT" = "0" ]; then
disabled=1
fi
fi
elif [ "$virt" = "svm" ]; then
BIT=$(rdmsr --bitfield 4:4 0xc0010114 2>/dev/null || true)
if [ "$BIT" = "1" ]; then
disabled=1
fi
elif [ "$virt" = "ARM" ]; then
# Should also test that we booted in HYP mode, if detectable
:
elif [ "$virt" = "generic" ]; then
:
else
echo "FAIL: Unknown virtualization extension: $virt"
verdict 1
fi
if [ "$disabled" -eq 1 ]; then
echo "INFO: KVM ($virt) is disabled by your BIOS"
echo "HINT: Enter your BIOS setup and enable Virtualization Technology (VT),"
echo " and then hard poweroff/poweron your system"
verdict 1
fi
verdict 0
Executable → Regular
+12 -34
View File
@@ -1,44 +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);
if(!QProcessEnvironment::systemEnvironment().value("LANG").contains("zh_CN")){
trans->load(":/en_US.qm");
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;
}
}
a.installTranslator(trans);
// 判断是否为 !amd64(无需判断了)
/*if(GetRunCommand("arch").replace(" ", "").replace("\n", "") != QString("x86_64")){
QMessageBox::critical(NULL, "错误", "此程序不支持非 X86 架构,立即退出");
return 0;
}*/
MainWindow w;
w.show();
return a.exec();
}
Executable → Regular
+531 -406
View File
@@ -1,459 +1,584 @@
/*
* gfdgd xi
* 依照 GPLV3 开源
*/
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "buildvbox.h"
#include <QFileDialog>
#include <QDebug>
#include <QNetworkInterface>
#include <QProcess>
#include <QLoggingCategory>
#include <infoutils.h>
#include <QMessageBox>
#include <QTimer>
#include <QJsonParseError>
#include <QJsonValue>
#include <QJsonObject>
#include <QtMath>
#include <QJsonArray>
#include <QDesktopServices>
#include <QMessageBox>
#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 <QIODevice>
#include <QInputDialog>
#include "qemusetting.h"
#include "vbox.h"
#include "qemu.h"
#include <QJsonDocument>
#include <QJsonObject>
#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)
// 如果要添加其他 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应用");
}
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");
}
else{
wineBottlePath = e1->currentText();
}
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;
}
}
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;
}
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"];
}
}
// 实时读取程序返回
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);
}
MainWindow::~MainWindow()
{
ui->setupUi(this);
//QApplication a(argc, argv);
ui->tabWidget->setTabPosition(QTabWidget::West); // 标签靠左
// 选择最优虚拟机
if(!system("which qemu-system-x86_64")){
ui->vmChooser->setCurrentIndex(0);
}
if(!system("which vboxmanage")){
ui->vmChooser->setCurrentIndex(1);
}
if(!QFile::exists(QCoreApplication::applicationDirPath() + "/../RunCommandWithTerminal.py")){
ui->getQemu->setDisabled(true);
}
// 允许输出 qDebug 信息
QLoggingCategory::defaultCategory()->setEnabled(QtDebugMsg, true);
// 判断是否安装 vbox(无需判断)
/*if(system("which VBoxManage")){
if(QMessageBox::question(this, tr("提示"), "检测到您似乎没有安装 VirtualBox,立即安装?") == QMessageBox::Yes){
system("xdg-open https://www.virtualbox.org/wiki/Linux_Downloads");
}
}*/
// 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;
}
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();
}
// 设置程序标题
this->setWindowTitle(tr("Wine 运行器虚拟机安装工具 ") + versionValue.toString());
// 读取谢明列表
ui->textBrowser_2->setHtml(tr("<p>程序版本号:") + versionValue.toString() + ", " + GetRunCommand("arch") + tr("</p><p>安装包构建时间:") + buildTime.toString() + tr("</p><p>该组件构建时间:")
+ __DATE__ + " " + __TIME__ + "</p>" + ui->textBrowser_2->toHtml() +
tr("<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);
});
// 设置标签栏图标
ui->tabWidget->setTabIcon(1, QIcon::fromTheme(":/application-vnd.oasis.opendocument.text.svg"));
// 设置窗口图标
this->setWindowIcon(QIcon(":/deepin-wine-runner.svg"));
//delete ui;
}
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;
if(!stopShowTime){
ui->CPUValue->showMessage(info, 5000);
}
m_cpuAll = cpuAll;
m_cpuFree = cpuFree;
ui->retranslateUi(this);
QString MainWindow::get_home(){
return QDir::homePath();
}
QString MainWindow::GetRunCommand(QString command){
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;
/*
* 检测 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_browser_clicked()
{
// 浏览镜像文件
QString filePath = QFileDialog::getOpenFileName(this, "选择 ISO 文件", QDir::homePath(), "ISO 镜像文件(*.iso);;所有文件(*.*)");
if(filePath != ""){
ui->isoPath->setText(filePath);
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);
}
}
void MainWindow::on_install_clicked()
{
switch (ui->vmChooser->currentIndex()) {
case 0:
if(system("which qemu-system-x86_64")){
if(QMessageBox::question(this, tr("提示"), tr("您似乎没有安装 Qemu,是否继续创建虚拟机?")) == QMessageBox::No){
return;
}
}
break;
case 1:
if(system("which vboxmanage")){
if(QMessageBox::question(this, tr("提示"), tr("您似乎没有安装 VBox,是否继续创建虚拟机?")) == QMessageBox::No){
return;
}
}
break;
case 8:
if(system("which qemu-system-arm")){
if(QMessageBox::question(this, tr("提示"), tr("无法检测到 qemu-system-arm,是否继续创建虚拟机?")) == QMessageBox::No){
return;
}
}
break;
case 9:
if(system("which qemu-system-aarch64")){
if(QMessageBox::question(this, tr("提示"), tr("无法检测到 qemu-system-aarch64,是否继续创建虚拟机?")) == QMessageBox::No){
return;
}
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;
}
QFile file(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-EFI");
QFile archFile(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-ARCH");
QDir dir(QDir::homePath() + "/.config/deepin-wine-runner");
archFile.open(QIODevice::WriteOnly);
archFile.write("amd64");
archFile.close();
switch (ui->systemVersion->currentIndex()) {
case 0:
if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X86Auto.iso")){
if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 Windows7X86Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?")) == QMessageBox::No){
return;
}
catch(QString msg){
qDebug() << msg;
}
}
break;
case 1:
if(!QFile::exists(QCoreApplication::applicationDirPath() + "/Windows7X64Auto.iso")){
if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 Windows7X64Auto.iso,是否继续创建虚拟机?\n缺少该文件可能会导致虚拟机无法正常启动,尝试重新安装 Wine 运行器再试试?")) == 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;
case 3:
if(!QFile::exists("/usr/share/qemu/OVMF.fd") && !QFile::exists(QCoreApplication::applicationDirPath() + "/OVMF.fd") && ui->vmChooser->currentIndex() == 0){
if(QMessageBox::question(this, tr("提示"), tr("似乎无法找到 UEFI 固件,是否继续创建虚拟机?\nQemu 固件可以在“安装 Qemu”处安装")) == QMessageBox::No){
return;
}
}
if(!dir.exists()){
dir.mkpath(QDir::homePath() + "/.config/deepin-wine-runner");
}
if(!QFile::exists(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-EFI")){
// 写入用于识别的空文件
file.open(QIODevice::WriteOnly);
file.write("1");
file.close();
}
break;
case 4:
case 5:
case 6:
case 7:
if(ui->vmChooser->currentIndex() == 0){
QMessageBox::warning(this, tr("提示"), tr("Qemu 不支持该选项!"));
return;
}
break;
case 8:
if(ui->vmChooser->currentIndex() == 1){
QMessageBox::warning(this, tr("提示"), tr("VirtualBox 不支持该选项!"));
return;
}
archFile.open(QIODevice::WriteOnly);
archFile.write("armhf");
archFile.close();
break;
case 9:
if(ui->vmChooser->currentIndex() == 1){
QMessageBox::warning(this, tr("提示"), tr("VirtualBox 不支持该选项!"));
return;
}
archFile.open(QIODevice::WriteOnly);
archFile.write("aarch64");
archFile.close();
break;
default:
if(ui->vmChooser->currentIndex() == 0 && QFile::exists(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-EFI")){
QFile::remove(QDir::homePath() + "/.config/deepin-wine-runner/QEMU-EFI");
}
}
buildvbox(ui->isoPath->text(), ui->systemVersion->currentIndex(), ui->vmChooser->currentIndex());
ui->tabWidget->setCurrentIndex(1);
stopShowTime = 1;
ui->CPUValue->showMessage(tr("提示:目前已经尝试开启虚拟机,如果在一段时间后依旧还没看到虚拟机窗口开启,请在菜单栏查看虚拟机日志"), 10000);
return;
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());
}
void MainWindow::on_getvbox_clicked()
{
QDesktopServices::openUrl(QUrl("https://www.virtualbox.org/wiki/Linux_Downloads"));
}
void MainWindow::on_getQemu_clicked()
{
system(("python3 '" + QCoreApplication::applicationDirPath() + "/../RunCommandWithTerminal.py' pkexec '" + QCoreApplication::applicationDirPath() + "/../QemuSystemInstall.sh'").toLatin1());
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());
}
void MainWindow::on_vmChooser_currentIndexChanged(int index)
{
ui->qemuSetting->setDisabled(index);
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 ");
}
void MainWindow::on_qemuSetting_clicked()
{
QemuSetting *show = new QemuSetting();
show->show();
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_addQemuDisk_triggered()
{
if(QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
if(QMessageBox::question(this, tr("提示"), tr("磁盘文件已存在,是否覆盖?\n覆盖后将无法恢复!")) == QMessageBox::No){
return;
}
}
QString path = QFileDialog::getOpenFileName(this, tr("选择 Qemu 镜像"), QDir::homePath(), tr("Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;所有文件(*.*)"));
qDebug() << path;
if(path == ""){
return;
}
QDir dir(QDir::homePath() + "/Qemu/Windows");
if(!dir.exists()){
dir.mkpath(QDir::homePath() + "/Qemu/Windows");
}
if(QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
if(!QFile::remove(QDir::homePath() + "/Qemu/Windows/Windows.qcow2") | !QFile::copy(path, QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
QMessageBox::critical(this, tr("提示"), tr("添加错误!"));
return;
}
}
else{
if(!QFile::copy(path, QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
QMessageBox::critical(this, tr("提示"), tr("添加错误!"));
return;
}
}
QMessageBox::information(this, tr("提示"), tr("添加完成!"));
}*/
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_delQemuDisk_triggered()
{
if(!QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
QMessageBox::information(this, tr("提示"), tr("不存在磁盘文件,无法导出"));
return;
}
std::system(("xdg-open \"" + QDir::homePath() + "/Qemu/Windows/\"").toUtf8());
}
void MainWindow::on_addQemuDiskButton_clicked()
{
MainWindow::on_addQemuDisk_triggered();
}
void MainWindow::on_saveQemuDiskButton_clicked()
{
MainWindow::on_delQemuDisk_triggered();
catch(QString msg){
qDebug() << msg;
}
void MainWindow::on_delQemuDiskButton_clicked()
{
if(!QFile::exists(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
QMessageBox::information(this, tr("提示"), tr("不存在磁盘文件,无法移除"));
return;
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(QMessageBox::question(this, tr("提示"), tr("是否删除?\n删除后将无法恢复!")) == QMessageBox::No){
return;
}
if(!QFile::remove(QDir::homePath() + "/Qemu/Windows/Windows.qcow2")){
QMessageBox::critical(this, tr("提示"), tr("移除失败"));
return;
if(QDir("/opt/exagear/images").exists()){
for(QString k: QDir("/opt/exagear/images").entryList()){
if(QFileInfo("/opt/exagear/images/" + k).isDir()){
continue;
}
QMessageBox::information(this, tr("提示"), tr("移除成功"));
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);
}
void MainWindow::on_kvmTest_clicked()
{
if(system("which kvm-ok")&& !QFile::exists(QCoreApplication::applicationDirPath() + "/kvm-ok")){
QMessageBox::critical(this, tr("错误"), tr("未识别到命令 kvm-ok\n可以使用命令 sudo apt install cpu-checker 安装"));
return;
}
QString kvm_ok_path = "kvm-ok";
if(!system("which kvm-ok")){
kvm_ok_path = "kvm-ok";
}
else if(QFile::exists(QCoreApplication::applicationDirPath() + "/kvm-ok")){
kvm_ok_path = QCoreApplication::applicationDirPath() + "/kvm-ok";
}
qDebug() << tr("使用") << kvm_ok_path;
QProcess process;
process.start(kvm_ok_path);
process.waitForStarted();
process.waitForFinished();
if(process.exitCode()){
QMessageBox::critical(this, tr("错误"), tr("您的系统不支持使用 kvm\n") + process.readAll());
return;
catch(QString msg){
qDebug() << msg;
}
QMessageBox::information(this, tr("提示"), tr("您的系统支持使用 kvm\n") + process.readAll());
}
void MainWindow::on_actionVMLog_triggered(){}
void MainWindow::on_actionVMRunlLog_triggered()
{
QFile file("/tmp/windows-virtual-machine-installer-for-wine-runner-run.log");
if(!file.exists()){
QMessageBox::information(this, tr("提示"), tr("没有日志文件"));
return;
}
file.open(QIODevice::ReadOnly);
QInputDialog::getMultiLineText(this, tr("运行日志"), tr("虚拟机运行日志"), file.readAll());
file.close();
}
void MainWindow::on_actionVMTest_triggered()
{
// 运行 Demo
if(QFile::exists(QCoreApplication::applicationDirPath() + "/test.qcow2")){
// 优先使用本地的磁盘
system(("qemu-system-i386 --hda '" + QCoreApplication::applicationDirPath() + "/test.qcow2' -rtc base=localtime > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1").toUtf8());
return;
}
// 写入 disk 文件
QFile file(":/TestDisk/test.qcow2");
// 计算随机数
QFile writeFile("/tmp/indows-virtual-machine-installer-for-wine-runner-test-disk.qcow2");
file.open(QIODevice::ReadOnly);
writeFile.open(QIODevice::WriteOnly);
writeFile.write(file.readAll());
file.close();
writeFile.close();
system("qemu-system-i386 --hda /tmp/indows-virtual-machine-installer-for-wine-runner-test-disk.qcow2 -rtc base=localtime > /tmp/windows-virtual-machine-installer-for-wine-runner-run.log 2>&1");
}
void MainWindow::on_actionVMInstallLog_triggered()
{
QFile file("/tmp/windows-virtual-machine-installer-for-wine-runner-install.log");
if(!file.exists()){
QMessageBox::information(this, tr("提示"), tr("没有日志文件"));
return;
}
file.open(QIODevice::ReadOnly);
QInputDialog::getMultiLineText(this, tr("安装日志"), tr("虚拟机安装日志"),file.readAll());
file.close();
}
void MainWindow::on_action_StopVirtualBox_triggered()
{
vbox vmControl("");
vmControl.Stop();
}
void MainWindow::on_action_StopQemu_triggered()
{
qemu vmControl("");
vmControl.Stop();
}
Executable → Regular
+53 -56
View File
@@ -1,68 +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 on_vmChooser_currentIndexChanged(int index);
void on_qemuSetting_clicked();
void on_addQemuDisk_triggered();
void on_delQemuDisk_triggered();
void on_addQemuDiskButton_clicked();
void on_saveQemuDiskButton_clicked();
void on_delQemuDiskButton_clicked();
void on_kvmTest_clicked();
void on_actionVMLog_triggered();
void on_actionVMRunlLog_triggered();
void on_actionVMTest_triggered();
void on_actionVMInstallLog_triggered();
void on_action_StopVirtualBox_triggered();
void on_action_StopQemu_triggered();
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:
bool stopShowTime = 0;
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
Executable → Regular
+27 -479
View File
@@ -6,519 +6,67 @@
<rect>
<x>0</x>
<y>0</y>
<width>1058</width>
<height>512</height>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>Wine 运行器虚拟机安装工具</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>
</property>
<property name="currentIndex">
<number>0</number>
</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>
<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>
<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>
<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 系统(不支持自动安装,传统启动,推荐 Windows 7 及以下)</string>
</property>
</item>
<item>
<property name="text">
<string>其他 Windows 系统(不支持自动安装,UEFI 启动,推荐 Windows 8 及以上)</string>
</property>
</item>
<item>
<property name="text">
<string>安装 WIndows 11(不支持自动安装)</string>
</property>
</item>
<item>
<property name="text">
<string>安装其他 Windows XP(支持自动安装,只支持 VirtualBox</string>
</property>
</item>
<item>
<property name="text">
<string>安装其他 Windows (支持自动安装,传统启动,只支持 VirtualBox</string>
</property>
</item>
<item>
<property name="text">
<string>安装其他 Windows(支持自动安装,UEFI 启动,只支持 VirtualBox</string>
</property>
</item>
<item>
<property name="text">
<string>安装 arm32 系统(只支持 Qemu</string>
</property>
</item>
<item>
<property name="text">
<string>安装 arm64 系统(只支持 Qemu</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="kvmTest">
<property name="text">
<string>kvm 测试</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="qemuSetting">
<property name="text">
<string>Qemu虚拟机设置</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addQemuDiskButton">
<property name="text">
<string>添加/覆盖Qemu磁盘</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="saveQemuDiskButton">
<property name="text">
<string>导出Qemu磁盘</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="delQemuDiskButton">
<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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,需要安装/降级到以下链接的版本:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;蓝奏云:&lt;/span&gt;&lt;a href=&quot;https://gfdgdxi.lanzoue.com/b01rk9wza&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gfdgdxi.lanzoue.com/b01rk9wza&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; 密码:6wvf&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;诚通网盘:&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;123 网盘链接:&lt;/span&gt;&lt;a href=&quot;https://www.123pan.com/s/pDSKVv-oypWv&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://www.123pan.com/s/pDSKVv-oypWv&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;迅雷网盘:&lt;/span&gt;&lt;a href=&quot;https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; 提取码:35e5&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;百度网盘:&lt;/span&gt;&lt;a href=&quot;https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; 提取码: me4y&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;诚通网盘:&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;(如果下载这个,系统版本选第一项,一般推荐这个)&lt;/span&gt;&lt;a href=&quot;ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;(如果下载这个,系统版本选第二项)&lt;/span&gt;&lt;a href=&quot;ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt; font-weight:600;&quot;&gt;常用 Windows 软件:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;百度网盘:链接: &lt;/span&gt;&lt;a href=&quot;https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; 提取码: 7s2p &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;诚通网盘:&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;123网盘:&lt;/span&gt;&lt;a href=&quot;https://www.123pan.com/s/pDSKVv-uCBWv.html&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://www.123pan.com/s/pDSKVv-uCBWv.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;&lt;/body&gt;&lt;/html&gt;</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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;给小白的一段话&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了,&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt;只限使用 VirtualBox&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt;如果你是用非 X86 PC,那暂时只能使用 qemu(没 kvm),且跨架构的性能损失很大,推荐使用 Windows XP 而非 Windows 7&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; text-decoration: underline;&quot;&gt;(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt;qemu则是 Ctrl+Alt+G&lt;/span&gt; &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Qemu 可以安装 Virtio 以优化体验,下载链接:&lt;a href=&quot;https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;安装是否需要人工进行操作?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;如果您下载的镜像本程序支持,则大部分不用,已经尽量省去了让新手头疼的虚拟机程序安装,创建、设置虚拟机,虚拟磁盘分区,寻找原版镜像文件等内容&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712191756.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;但有些设置依旧需要人工自行设置,例如安装界面密钥的输入、系统的激活(涉及版权问题,不会考虑省略)、增强功能的安装、需要使用的软件等等&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712192850.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712193527.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;什么样的镜像本程序(可能)不支持自动安装?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;非 Windows 7 镜像可能不支持自动安装(纯的 Windows 7 企业版镜像可能不支持自动安装),不保证系统能自动安装成功,例如 Windows XP、Windows 10、Deepin、Ubuntu 等等&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;默认的虚拟机设置不习惯怎么改?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;1、打开启动器,打开 Oracle VM VirtualBox 程序&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;2、选择名字为“Windows”的虚拟机,然后在右边点击设置&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Manager_20220712223602.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;3、在这里修改即可&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox_20220712223705.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;安装加强功能有什么好处?(只限使用 VirtualBox&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1、支持鼠标自由从虚拟机和实体机切换&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2、支持虚拟机根据窗口大小自动设置分辨率&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3、支持文件共享、剪切板共享、文件拖放&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4、支持无缝模式&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_选择区域_20220712224639.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;如何安装加强功能?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1、点击“设备”=》“加强功能”&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图_VirtualBox Machine_20220712142929.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2、打开“计算机”,找到名为“VirtualBox Guest Additions”的光盘,双击进入,然后双击打开名为“VBoxWindowsAdditions”的程序&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712143006.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3、在弹出的界面点击“是”&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712143018.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4、一直点“Next”&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712143029.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712143037.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;5、全部选择,然后点击“Install”进行安装&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712143044.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;6、等待安装完毕后,选择“Reboot now”然后点击“Finish”重启此虚拟机即可安装成功(选择“Reboot now”并点“Finish”会自动重新启动)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/截图/截图_VirtualBox Machine_20220712143103.png&quot; /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>
<item row="0" column="1">
<widget class="QTextBrowser" name="returnText">
<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>
<string notr="true">background-color: black;
color: white;</string>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;此为 wine 运行器附属组件(虽然违背了“Wine Is Not An Emulator”&amp;lt;Wine 不是一个模拟器&amp;gt;的原意),旨在能更加完美、简单的运行 Windows 应用&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;本程序基于 C++ Qt、Python 和 Virtualbox 制作,通过运行安装 Windows 操作系统的虚拟机实现在 Linux 运行 Windows exe 程序的功能。&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;基于 GPL V3 协议开源&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;项目地址:&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Gitee&lt;a href=&quot;https://gitee.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gitee.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Github&lt;a href=&quot;https://github.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://github.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;该组件制作者:gfdgd xi&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="openLinks">
<bool>false</bool>
&lt;p style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Mono'; font-size:11pt;&quot;&gt;在此可以看到wine安装应用时的终端输出内容&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Mono'; font-size:11pt;&quot;&gt;=============================================&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Mono'; font-size:11pt;&quot;&gt;如果解决了你的问题,请不要吝啬你的star哟!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Mono'; font-size:11pt;&quot;&gt;地址:&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Mono'; font-size:11pt;&quot;&gt;https://gitee.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Mono'; font-size:11pt;&quot;&gt;https://github.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Mono'; font-size:11pt;&quot;&gt;https://sourceforge.net/projects/deep-wine-runner&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<item row="1" column="0">
<widget class="QWidget" name="leftDown" native="true"/>
</item>
</layout>
</widget>
<widget class="QStatusBar" name="CPUValue">
<property name="statusTip">
<string/>
</property>
</widget>
<widget class="QMenuBar" name="menuBar">
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1058</width>
<width>800</width>
<height>36</height>
</rect>
</property>
<widget class="QMenu" name="menuVM">
<widget class="QMenu" name="menu">
<property name="title">
<string>虚拟机</string>
<string>程序</string>
</property>
<addaction name="actionVMInstallLog"/>
<addaction name="actionVMRunlLog"/>
<addaction name="separator"/>
<addaction name="actionVMTest"/>
<addaction name="separator"/>
<addaction name="action_StopVirtualBox"/>
<addaction name="action_StopQemu"/>
<addaction name="action"/>
</widget>
<addaction name="menuVM"/>
<addaction name="menu"/>
</widget>
<action name="action">
<property name="text">
<string>退出</string>
</property>
</action>
<action name="action_2">
<property name="text">
<string>关于</string>
</property>
</action>
<action name="addQemuDisk">
<property name="text">
<string>导入/覆盖</string>
</property>
</action>
<action name="delQemuDisk">
<property name="text">
<string>导出</string>
</property>
</action>
<action name="actionVMInstallLog">
<property name="text">
<string>虚拟机安装日志</string>
</property>
</action>
<action name="actionVMRunlLog">
<property name="text">
<string>虚拟机运行日志</string>
</property>
</action>
<action name="actionVMTest">
<property name="text">
<string>虚拟机测试(X86、Qemu</string>
</property>
</action>
<action name="action_StopVirtualBox">
<property name="text">
<string>强制停止 VirtualBox</string>
</property>
</action>
<action name="action_StopQemu">
<property name="text">
<string>强制停止 Qemu</string>
<string>退出程序</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
-350
View File
@@ -1,350 +0,0 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/gfdgd_xi/Desktop/deep-wine-runner/VM-source/mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1058, 512)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralWidget = QtWidgets.QWidget(MainWindow)
self.centralWidget.setObjectName("centralWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralWidget)
self.horizontalLayout.setContentsMargins(11, 11, 11, 11)
self.horizontalLayout.setSpacing(6)
self.horizontalLayout.setObjectName("horizontalLayout")
self.tabWidget = QtWidgets.QTabWidget(self.centralWidget)
self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.verticalLayout = QtWidgets.QVBoxLayout(self.tab)
self.verticalLayout.setContentsMargins(11, 11, 11, 11)
self.verticalLayout.setSpacing(6)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setSpacing(6)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label = QtWidgets.QLabel(self.tab)
self.label.setObjectName("label")
self.horizontalLayout_2.addWidget(self.label)
self.isoPath = QtWidgets.QLineEdit(self.tab)
self.isoPath.setObjectName("isoPath")
self.horizontalLayout_2.addWidget(self.isoPath)
self.browser = QtWidgets.QPushButton(self.tab)
self.browser.setObjectName("browser")
self.horizontalLayout_2.addWidget(self.browser)
self.verticalLayout.addLayout(self.horizontalLayout_2)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setSpacing(6)
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.label_2 = QtWidgets.QLabel(self.tab)
self.label_2.setObjectName("label_2")
self.horizontalLayout_3.addWidget(self.label_2)
self.systemVersion = QtWidgets.QComboBox(self.tab)
self.systemVersion.setObjectName("systemVersion")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.systemVersion.addItem("")
self.horizontalLayout_3.addWidget(self.systemVersion)
self.horizontalLayout_3.setStretch(1, 1)
self.verticalLayout.addLayout(self.horizontalLayout_3)
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setSpacing(6)
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.label_4 = QtWidgets.QLabel(self.tab)
self.label_4.setObjectName("label_4")
self.horizontalLayout_7.addWidget(self.label_4)
self.vmChooser = QtWidgets.QComboBox(self.tab)
self.vmChooser.setDuplicatesEnabled(False)
self.vmChooser.setObjectName("vmChooser")
self.vmChooser.addItem("")
self.vmChooser.addItem("")
self.horizontalLayout_7.addWidget(self.vmChooser)
self.horizontalLayout_7.setStretch(1, 1)
self.verticalLayout.addLayout(self.horizontalLayout_7)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setSpacing(6)
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_4.addItem(spacerItem)
self.getQemu = QtWidgets.QPushButton(self.tab)
self.getQemu.setObjectName("getQemu")
self.horizontalLayout_4.addWidget(self.getQemu)
self.kvmTest = QtWidgets.QPushButton(self.tab)
self.kvmTest.setObjectName("kvmTest")
self.horizontalLayout_4.addWidget(self.kvmTest)
self.qemuSetting = QtWidgets.QPushButton(self.tab)
self.qemuSetting.setObjectName("qemuSetting")
self.horizontalLayout_4.addWidget(self.qemuSetting)
self.addQemuDiskButton = QtWidgets.QPushButton(self.tab)
self.addQemuDiskButton.setObjectName("addQemuDiskButton")
self.horizontalLayout_4.addWidget(self.addQemuDiskButton)
self.saveQemuDiskButton = QtWidgets.QPushButton(self.tab)
self.saveQemuDiskButton.setObjectName("saveQemuDiskButton")
self.horizontalLayout_4.addWidget(self.saveQemuDiskButton)
self.delQemuDiskButton = QtWidgets.QPushButton(self.tab)
self.delQemuDiskButton.setObjectName("delQemuDiskButton")
self.horizontalLayout_4.addWidget(self.delQemuDiskButton)
self.getvbox = QtWidgets.QPushButton(self.tab)
self.getvbox.setObjectName("getvbox")
self.horizontalLayout_4.addWidget(self.getvbox)
self.install = QtWidgets.QPushButton(self.tab)
self.install.setObjectName("install")
self.horizontalLayout_4.addWidget(self.install)
self.verticalLayout.addLayout(self.horizontalLayout_4)
self.textBrowser_3 = QtWidgets.QTextBrowser(self.tab)
self.textBrowser_3.setOpenLinks(False)
self.textBrowser_3.setObjectName("textBrowser_3")
self.verticalLayout.addWidget(self.textBrowser_3)
self.tabWidget.addTab(self.tab, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.tab_3)
self.horizontalLayout_5.setContentsMargins(11, 11, 11, 11)
self.horizontalLayout_5.setSpacing(6)
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.textBrowser = QtWidgets.QTextBrowser(self.tab_3)
self.textBrowser.setUndoRedoEnabled(False)
self.textBrowser.setOpenLinks(False)
self.textBrowser.setObjectName("textBrowser")
self.horizontalLayout_5.addWidget(self.textBrowser)
self.tabWidget.addTab(self.tab_3, "")
self.tab_2 = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tab_2.sizePolicy().hasHeightForWidth())
self.tab_2.setSizePolicy(sizePolicy)
self.tab_2.setObjectName("tab_2")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.tab_2)
self.horizontalLayout_6.setContentsMargins(11, 11, 11, 11)
self.horizontalLayout_6.setSpacing(6)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
self.verticalLayout_3.setSpacing(6)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.label_3 = QtWidgets.QLabel(self.tab_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
self.label_3.setSizePolicy(sizePolicy)
self.label_3.setMinimumSize(QtCore.QSize(200, 200))
self.label_3.setMaximumSize(QtCore.QSize(200, 200))
self.label_3.setStyleSheet("border-image: url(:/deepin-wine-runner.png);")
self.label_3.setText("")
self.label_3.setObjectName("label_3")
self.verticalLayout_3.addWidget(self.label_3)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem1)
self.horizontalLayout_6.addLayout(self.verticalLayout_3)
self.textBrowser_2 = QtWidgets.QTextBrowser(self.tab_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.textBrowser_2.sizePolicy().hasHeightForWidth())
self.textBrowser_2.setSizePolicy(sizePolicy)
self.textBrowser_2.setOpenLinks(False)
self.textBrowser_2.setObjectName("textBrowser_2")
self.horizontalLayout_6.addWidget(self.textBrowser_2)
self.tabWidget.addTab(self.tab_2, "")
self.horizontalLayout.addWidget(self.tabWidget)
MainWindow.setCentralWidget(self.centralWidget)
self.CPUValue = QtWidgets.QStatusBar(MainWindow)
self.CPUValue.setStatusTip("")
self.CPUValue.setObjectName("CPUValue")
MainWindow.setStatusBar(self.CPUValue)
self.menuBar = QtWidgets.QMenuBar(MainWindow)
self.menuBar.setGeometry(QtCore.QRect(0, 0, 1058, 36))
self.menuBar.setObjectName("menuBar")
self.menuVM = QtWidgets.QMenu(self.menuBar)
self.menuVM.setObjectName("menuVM")
MainWindow.setMenuBar(self.menuBar)
self.action = QtWidgets.QAction(MainWindow)
self.action.setObjectName("action")
self.action_2 = QtWidgets.QAction(MainWindow)
self.action_2.setObjectName("action_2")
self.addQemuDisk = QtWidgets.QAction(MainWindow)
self.addQemuDisk.setObjectName("addQemuDisk")
self.delQemuDisk = QtWidgets.QAction(MainWindow)
self.delQemuDisk.setObjectName("delQemuDisk")
self.actionVMInstallLog = QtWidgets.QAction(MainWindow)
self.actionVMInstallLog.setObjectName("actionVMInstallLog")
self.actionVMRunlLog = QtWidgets.QAction(MainWindow)
self.actionVMRunlLog.setObjectName("actionVMRunlLog")
self.actionVMTest = QtWidgets.QAction(MainWindow)
self.actionVMTest.setObjectName("actionVMTest")
self.menuVM.addAction(self.actionVMInstallLog)
self.menuVM.addAction(self.actionVMRunlLog)
self.menuVM.addSeparator()
self.menuVM.addAction(self.actionVMTest)
self.menuBar.addAction(self.menuVM.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
self.vmChooser.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Wine 运行器虚拟机安装工具"))
self.label.setText(_translate("MainWindow", "镜像路径:"))
self.isoPath.setPlaceholderText(_translate("MainWindow", "请选择系统镜像"))
self.browser.setText(_translate("MainWindow", "浏览……"))
self.label_2.setText(_translate("MainWindow", "系统版本:"))
self.systemVersion.setCurrentText(_translate("MainWindow", "Windows 7 32 位(支持自动安装)"))
self.systemVersion.setItemText(0, _translate("MainWindow", "Windows 7 32 位(支持自动安装)"))
self.systemVersion.setItemText(1, _translate("MainWindow", "Windows 7 64 位(支持自动安装)"))
self.systemVersion.setItemText(2, _translate("MainWindow", "其它 Windows 系统(不支持自动安装,传统启动,推荐 Windows 7 及以下)"))
self.systemVersion.setItemText(3, _translate("MainWindow", "其他 Windows 系统(不支持自动安装,UEFI 启动,推荐 Windows 8 及以上)"))
self.systemVersion.setItemText(4, _translate("MainWindow", "安装 WIndows 11(不支持自动安装)"))
self.systemVersion.setItemText(5, _translate("MainWindow", "安装其他 Windows XP(支持自动安装,只支持 VirtualBox)"))
self.systemVersion.setItemText(6, _translate("MainWindow", "安装其他 Windows (支持自动安装,传统启动,只支持 VirtualBox)"))
self.systemVersion.setItemText(7, _translate("MainWindow", "安装其他 Windows(支持自动安装,UEFI 启动,只支持 VirtualBox"))
self.systemVersion.setItemText(8, _translate("MainWindow", "安装 arm32 系统(只支持 Qemu)"))
self.systemVersion.setItemText(9, _translate("MainWindow", "安装 arm64 系统(只支持 Qemu)"))
self.label_4.setText(_translate("MainWindow", "虚拟机(建议默认):"))
self.vmChooser.setCurrentText(_translate("MainWindow", "qemu/kvm"))
self.vmChooser.setItemText(0, _translate("MainWindow", "qemu/kvm"))
self.vmChooser.setItemText(1, _translate("MainWindow", "VirtualBox"))
self.getQemu.setText(_translate("MainWindow", "安装 Qemu"))
self.kvmTest.setText(_translate("MainWindow", "kvm 测试"))
self.qemuSetting.setText(_translate("MainWindow", "Qemu虚拟机设置"))
self.addQemuDiskButton.setText(_translate("MainWindow", "添加/覆盖Qemu磁盘"))
self.saveQemuDiskButton.setText(_translate("MainWindow", "导出Qemu磁盘"))
self.delQemuDiskButton.setText(_translate("MainWindow", "移除Qemu磁盘"))
self.getvbox.setText(_translate("MainWindow", "获取VirtualBox"))
self.install.setText(_translate("MainWindow", "安装"))
self.textBrowser_3.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Noto Sans CJK SC\'; font-size:10.5pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">UOS 3a4000 用户在使用 Qemu 时可能会出现虚拟机无法正常开机的问题,需要安装/降级到以下链接的版本:</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">蓝奏云:</span><a href=\"https://gfdgdxi.lanzoue.com/b01rk9wza\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://gfdgdxi.lanzoue.com/b01rk9wza</span></a><span style=\" font-size:11pt;\"> 密码:6wvf</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">诚通网盘:</span><a href=\"http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061</span></a><span style=\" font-size:11pt;\"> (访问密码: 2061)</span></p>\n"
"<hr />\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">注:Qemu 跨架构效率较低,如无特殊情况不建议跨架构/不开硬件加速(如 kvm)运行 Qemu</span></p>\n"
"<hr />\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">如何安装系统?使用迅雷或者网盘下载以下任意一个链接的 ISO 镜像然后在上面选择即可:</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">123 网盘链接:</span><a href=\"https://www.123pan.com/s/pDSKVv-oypWv\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://www.123pan.com/s/pDSKVv-oypWv</span></a></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">迅雷网盘:</span><a href=\"https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5</span></a><span style=\" font-size:10pt;\"> 提取码:35e5</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">百度网盘:</span><a href=\"https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y</span></a><span style=\" font-size:10pt;\"> 提取码: me4y</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">诚通网盘:</span><a href=\"http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061</span></a><span style=\" font-size:10pt;\"> (访问密码: 2061)</span></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">(如果下载这个,系统版本选第一项,一般推荐这个)</span><a href=\"ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/</span></a></p>\n"
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">(如果下载这个,系统版本选第二项)</span><a href=\"ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/</span></a></p>\n"
"<hr />\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt; font-weight:600;\">常用 Windows 软件:</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">百度网盘:链接: </span><a href=\"https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p</span></a><span style=\" font-size:11pt;\"> 提取码: 7s2p </span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">诚通网盘:</span><a href=\"http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061</span></a><span style=\" font-size:11pt;\"> (访问密码: 2061)</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">123网盘:</span><a href=\"https://www.123pan.com/s/pDSKVv-uCBWv.html\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://www.123pan.com/s/pDSKVv-uCBWv.html</span></a></p>\n"
"<hr /></body></html>"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "设置"))
self.tabWidget.setTabToolTip(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "设置"))
self.textBrowser.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Noto Sans CJK SC\'; font-size:10.5pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">给小白的一段话</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">其实本质上跑完安装程序就没有然后了,顶多如果想要运行舒服一点点,可以安装加强功能,直接拉到最底下看就可以了,<span style=\" font-weight:600; font-style:italic; text-decoration: underline;\">只限使用 VirtualBox</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600; font-style:italic; text-decoration: underline;\">如果你是用非 X86 PC,那暂时只能使用 qemu(没 kvm),且跨架构的性能损失很大,推荐使用 Windows XP 而非 Windows 7</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">如果爱折腾的话,下面的都看看也无所谓的,想看往下翻就可以了</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-weight:600; text-decoration: underline;\">(这里的帮助更新可能不会那么及时,更详细/新的帮助可以看:https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">(如果鼠标被锁定到里面了按下键盘右边的“Ctrl”键就可以了,<span style=\" font-weight:600; font-style:italic; text-decoration: underline;\">qemu则是 Ctrl+Alt+G</span> </p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">VirtualBox 可以安装增强功能以优化体验,安装方法往下翻即可查询</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Qemu 可以安装 Virtio 以优化体验,下载链接:<a href=\"https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/</span></a></p>\n"
"<hr />\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:26pt; font-weight:600;\"><br /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">安装是否需要人工进行操作?</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">如果您下载的镜像本程序支持,则大部分不用,已经尽量省去了让新手头疼的虚拟机程序安装,创建、设置虚拟机,虚拟磁盘分区,寻找原版镜像文件等内容</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712191756.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">但有些设置依旧需要人工自行设置,例如安装界面密钥的输入、系统的激活(涉及版权问题,不会考虑省略)、增强功能的安装、需要使用的软件等等</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712192850.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712193527.png\" /></p>\n"
"<hr />\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">什么样的镜像本程序(可能)不支持自动安装?</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">非 Windows 7 镜像可能不支持自动安装(纯的 Windows 7 企业版镜像可能不支持自动安装),不保证系统能自动安装成功,例如 Windows XP、Windows 10、Deepin、Ubuntu 等等</p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<hr />\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">默认的虚拟机设置不习惯怎么改?</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">1、打开启动器,打开 Oracle VM VirtualBox 程序</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">2、选择名字为“Windows”的虚拟机,然后在右边点击设置</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Manager_20220712223602.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">3、在这里修改即可</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox_20220712223705.png\" /></p>\n"
"<hr />\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">安装加强功能有什么好处?(只限使用 VirtualBox</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">1、支持鼠标自由从虚拟机和实体机切换</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">2、支持虚拟机根据窗口大小自动设置分辨率</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">3、支持文件共享、剪切板共享、文件拖放</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">4、支持无缝模式</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_选择区域_20220712224639.png\" /></p>\n"
"<hr />\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:26pt; font-weight:600;\">如何安装加强功能?</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">1、点击“设备”=》“加强功能”</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图_VirtualBox Machine_20220712142929.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">2、打开“计算机”,找到名为“VirtualBox Guest Additions”的光盘,双击进入,然后双击打开名为“VBoxWindowsAdditions”的程序</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143006.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">3、在弹出的界面点击“是”</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143018.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">4、一直点“Next”</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143029.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143037.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">5、全部选择,然后点击“Install”进行安装</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143044.png\" /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:11pt;\">6、等待安装完毕后,选择“Reboot now”然后点击“Finish”重启此虚拟机即可安装成功(选择“Reboot now”并点“Finish”会自动重新启动)</span></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><img src=\":/picture/截图/截图_VirtualBox Machine_20220712143103.png\" /></p></body></html>"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "安装/使用帮助"))
self.textBrowser_2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Noto Sans CJK SC\'; font-size:10.5pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">此为 wine 运行器附属组件(虽然违背了“Wine Is Not An Emulator”&lt;Wine 不是一个模拟器&gt;的原意),旨在能更加完美、简单的运行 Windows 应用</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">本程序基于 C++ Qt、Python 和 Virtualbox 制作,通过运行安装 Windows 操作系统的虚拟机实现在 Linux 运行 Windows exe 程序的功能。</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">基于 GPL V3 协议开源</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">项目地址:</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"> Gitee<a href=\"https://gitee.com/gfdgd-xi/deep-wine-runner\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://gitee.com/gfdgd-xi/deep-wine-runner</span></a></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"> Github<a href=\"https://github.com/gfdgd-xi/deep-wine-runner\"><span style=\" font-size:11pt; text-decoration: underline; color:#0082fa;\">https://github.com/gfdgd-xi/deep-wine-runner</span></a></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">此组件也有非常大的缺点,就是相比于 Wine,会需要占用大量的空间、安装需要大量的时间、某些情况下需要相比于 Wine 需要消耗更多的系统资源,但可以更加完美、流畅的运行 Windows 应用,会尽量减少因为缺少或未实现导致的 Windows exe 程序运行异常</p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">该组件制作者:gfdgd xi</p>\n"
"<hr />\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "关于"))
self.menuVM.setTitle(_translate("MainWindow", "虚拟机"))
self.action.setText(_translate("MainWindow", "退出"))
self.action_2.setText(_translate("MainWindow", "关于"))
self.addQemuDisk.setText(_translate("MainWindow", "导入/覆盖"))
self.delQemuDisk.setText(_translate("MainWindow", "导出"))
self.actionVMInstallLog.setText(_translate("MainWindow", "虚拟机安装日志"))
self.actionVMRunlLog.setText(_translate("MainWindow", "虚拟机运行日志"))
self.actionVMTest.setText(_translate("MainWindow", "虚拟机测试(X86、Qemu"))
-199
View File
@@ -1,199 +0,0 @@
/*
* gfdgd xi
*/
#include "qemu.h"
#include <QDir>
#include <QFile>
#include <QCoreApplication>
#include "command.h"
#include <QMessageBox>
#include <QProcess>
#include <QDebug>
#include <iostream>
using namespace std;
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, int cpuNum, int coreNum){
// commandOption += "-smp " + QString::number(number) + " ";
// 调整调用方法
//qDebug() << number << " " << cpuNum << " " << coreNum;
qDebug() << "Socket: " << cpuNum;
qDebug() << "Core: " << coreNum;
qDebug() << "Threads: " << number;
commandOption += "-smp " + QString::number(number) + ",sockets=" + QString::number(cpuNum) + ",cores=" + QString::number(coreNum / cpuNum) + ",threads=" + QString::number(number / cpuNum / coreNum) + " ";
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::MountMainDisk(QString diskPath){
commandOption += " --hda '" + diskPath + "' ";
return 0;
}
int qemu::StartArmhf(){
qDebug() << commandOption;
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
return system(("qemu-system-arm -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
}
return system(("qemu-system-arm --boot d -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
}
int qemu::StartAarch64(){
qDebug() << commandOption;
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "aarch64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
return system(("qemu-system-aarch64 --boot d -display vnc=:5 -display gtk --enable-kvm -cpu host -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
}
return system(("qemu-system-aarch64 --boot d -display vnc=:5 -display gtk -cpu max -M virt " + commandOption + " -device virtio-gpu-pci -device nec-usb-xhci,id=xhci,addr=0x1b -device usb-tablet,id=tablet,bus=xhci.0,port=1 -device usb-kbd,id=keyboard,bus=xhci.0,port=2 > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
}
int qemu::StartLoong64(){
}
int qemu::Start(bool unShown){
qDebug() << commandOption;
if(Command().GetCommand("arch").replace("\n", "").replace(" ", "") == "x86_64" && !system((QCoreApplication::applicationDirPath() + "/kvm-ok").toUtf8())){
return system(("qemu-system-x86_64 --boot d -display vnc=:5 -display gtk --enable-kvm -cpu host " + commandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
}
return system(("qemu-system-x86_64 --boot d -display vnc=:5 -display gtk -nic model=rtl8139 " + commandOption + " > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1 &").toLatin1());
}
int qemu::Stop(){
system("killall qemu-system-x86_64 -9");
system("killall qemu-system-aarch64 -9");
system("killall qemu-system-arm -9");
system("killall kvm -9");
return 0;
}
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;
}
int qemu::UseAarch64EFI(){
if(QFile::exists("/usr/share/qemu-efi-aarch64/QEMU_EFI.fd")){
commandOption += "--bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ";
return 0;
}
if(QFile::exists(QCoreApplication::applicationDirPath() + "/QEMU_AARCH64_EFI.fd")){
commandOption += "--bios '" + QCoreApplication::applicationDirPath() + "/QEMU_AARCH64_EFI.fd' ";
return 0;
}
return 1;
}
int qemu::UseArmhfEFI(){
if(QFile::exists("/usr/share/AAVMF/AAVMF32_CODE.fd")){
commandOption += "--bios /usr/share/AAVMF/AAVMF32_CODE.fd ";
return 0;
}
if(QFile::exists(QCoreApplication::applicationDirPath() + "/AAVMF32_CODE.fd")){
commandOption += "--bios '" + QCoreApplication::applicationDirPath() + "/AAVMF32_CODE.fd' ";
return 0;
}
return 1;
}
int qemu::UseLoongarch64EFI(){
}
int qemu::UseOtherEFI(QString fdFilePath){
}
int qemu::EnabledUEFI(bool status){
if(!status){
return 0;
}
if(QFile::exists("/usr/share/qemu/OVMF.fd")){
commandOption += "--bios /usr/share/qemu/OVMF.fd ";
return 0;
}
if(QFile::exists(QCoreApplication::applicationDirPath() + "/OVMF.fd")){
commandOption += "--bios '" + QCoreApplication::applicationDirPath() + "/OVMF.fd' ";
return 0;
}
return 1;
}
int qemu::MountMainISO(QString isoPath){
commandOption += "--cdrom '" + isoPath + "' ";
return 0;
}
int qemu::AutoInstall(QString iso){
return 0;
}
void qemu::SetMore(QString option){
commandOption += option + " ";
}
-59
View File
@@ -1,59 +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 cpuNum, int coreNum);
int SetMemory(int memory);
int SetRemote(bool setting);
int SetRemoteConnectSetting(int port=5540);
int Start(bool unShown=false);
int StartArmhf();
int StartAarch64();
int StartLoong64();
int MountMainDisk(QString diskPath);
int Stop();
int Delete();
int SetDisplayMemory(int memory);
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();
int EnabledUEFI(bool status);
int AutoInstall(QString iso);
int MountMainISO(QString isoPath);
int UseAarch64EFI();
int UseArmhfEFI();
int UseLoongarch64EFI();
int UseOtherEFI(QString fdFilePath);
void SetMore(QString option);
QString commandOption = "";
private:
};
#endif // QEMU_H
-130
View File
@@ -1,130 +0,0 @@
#include "qemusetting.h"
#include "ui_qemusetting.h"
#include <QMessageBox>
#include <QDesktopServices>
#include <QUrl>
#include <QJsonObject>
#include <QJsonDocument>
#include <QFile>
#include "infoutils.h"
#include <QDir>
#include <sys/sysinfo.h>
#include <QDebug>
QemuSetting::QemuSetting(QWidget *parent) :
QWidget(parent),
ui(new Ui::QemuSetting)
{
ui->setupUi(this);
// 判断是否安装了 Wine 运行器
ui->getrunner->setHidden(QFile::exists(QCoreApplication::applicationDirPath() + "/../mainwindow.py"));
// 设置变量
if(QFile::exists(QDir::homePath() + "/.config/deepin-wine-runner/QemuSetting.json")){
// 读取配置文件
QFile file(QDir::homePath() + "/.config/deepin-wine-runner/QemuSetting.json");
file.open(QIODevice::ReadOnly);
QJsonParseError error;
QJsonDocument document = QJsonDocument::fromJson(file.readAll(), &error);
file.close();
if(error.error != QJsonParseError::NoError){
QMessageBox::critical(this, "错误", error.errorString());
}
else {
QJsonObject object = document.object();
qDebug() << QJsonDocument(object).toJson();
ui->enableKvm->setChecked(object.value("EnableKVM").toBool());
ui->enableRdp->setChecked(object.value("EnableRDP").toBool());
ui->enableVnc->setChecked(object.value("EnableVNC").toBool());
ui->enableSound->setChecked(object.value("EnableSound").toBool());
ui->memoryNumber->setValue(object.value("Memory").toInt());
ui->vncNumber->setValue(object.value("VNC").toInt());
ui->cpuNumber->setValue(object.value("CPU").toInt());
}
}
else {
// 默认
this->SetDefaultValue();
}
}
void QemuSetting::SetDefaultValue(){
long memory = 0;
long memoryAll = 0;
long swap = 0;
long swapAll = 0;
infoUtils::memoryRate(memory, memoryAll, swap, swapAll);
ui->memoryNumber->setValue(memoryAll / 3 / 1024);
ui->vncNumber->setValue(5);
ui->cpuNumber->setValue(get_nprocs());
ui->enableKvm->setChecked(true);
ui->enableRdp->setChecked(true);
ui->enableVnc->setChecked(true);
ui->enableSound->setChecked(true);
}
QemuSetting::~QemuSetting()
{
delete ui;
}
void QemuSetting::on_buttonBox_accepted()
{
QMessageBox::information(NULL, "", "");
acceptDrops();
}
void QemuSetting::on_save_clicked()
{
QJsonParseError error;
QJsonDocument document = QJsonDocument::fromJson("{}", &error);
if(error.error != QJsonParseError::NoError){
QMessageBox::critical(this, "错误", error.errorString());
return;
}
QJsonObject object = document.object();
//object.insert("1", QJsonValue("aa"));
object.insert("EnableKVM", ui->enableKvm->isChecked());
object.insert("EnableRDP", ui->enableRdp->isChecked());
object.insert("EnableVNC", ui->enableVnc->isChecked());
object.insert("EnableSound", ui->enableSound->isChecked());
object.insert("Memory", ui->memoryNumber->value());
object.insert("VNC", ui->vncNumber->value());
object.insert("CPU", ui->cpuNumber->value());
qDebug() << QJsonDocument(object).toJson();
// 读取配置文件
QDir dir(QDir::homePath() + "/.config/deepin-wine-runner/");
if(!dir.exists()){
dir.mkpath(QDir::homePath() + "/.config/deepin-wine-runner/");
}
QFile file(QDir::homePath() + "/.config/deepin-wine-runner/QemuSetting.json");
file.open(QIODevice::WriteOnly);
file.write(QJsonDocument(object).toJson());
file.close();
QMessageBox::information(this, "提示", "保存完成!");
}
void QemuSetting::on_cancel_clicked()
{
delete this;
}
void QemuSetting::on_getrunner_clicked()
{
QDesktopServices::openUrl(QUrl("https://gitee.com/gfdgd-xi/deep-wine-runner/"));
}
void QemuSetting::on_enableVnc_stateChanged(int arg1)
{
// 控件的开启/关闭
ui->vncNumber->setEnabled(ui->enableVnc->isChecked());
}
void QemuSetting::on_setDefault_clicked()
{
if(QMessageBox::question(this, "提示", "你确定要重置为默认?重置后将无法恢复") == QMessageBox::No){
return;
}
QFile::remove(QDir::homePath() + "/.config/deepin-wine-runner/QemuSetting.json");
this->SetDefaultValue();
QMessageBox::information(this, "提示", "设置完成!");
}
-39
View File
@@ -1,39 +0,0 @@
#ifndef QEMUSETTING_H
#define QEMUSETTING_H
#include <QWidget>
#include <QCheckBox>
#include <QSpinBox>
namespace Ui {
class QemuSetting;
}
class QemuSetting : public QWidget
{
Q_OBJECT
public:
explicit QemuSetting(QWidget *parent = nullptr);
~QemuSetting();
private slots:
void on_buttonBox_accepted();
void on_save_clicked();
void on_cancel_clicked();
void on_getrunner_clicked();
void on_enableVnc_stateChanged(int arg1);
void on_setDefault_clicked();
private:
void SetDefaultValue();
Ui::QemuSetting *ui;
};
#endif // QEMUSETTING_H
-210
View File
@@ -1,210 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QemuSetting</class>
<widget class="QWidget" name="QemuSetting">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>496</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>设置</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="9" column="1">
<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 row="4" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&lt;h3&gt;远程服务&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>VNC服务端口:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="enableRdp">
<property name="text">
<string>开启 rdp 服务映射</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>内存大小(MB):</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="memoryNumber">
<property name="maximum">
<number>999999999</number>
</property>
</widget>
</item>
<item row="8" column="1">
<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>
<item row="6" column="1">
<widget class="QSpinBox" name="vncNumber">
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>&lt;h3&gt;基础设置&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="enableVnc">
<property name="text">
<string>开启VNC服务</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="enableKvm">
<property name="text">
<string>开启 kvm 加速</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>CPU核心数:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="cpuNumber">
<property name="maximum">
<number>999999999</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="enableSound">
<property name="text">
<string>开启声音</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QPushButton" name="save">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>保存</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="setDefault">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>重置
默认</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="getrunner">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>获取
Wine
运行器</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>
</layout>
</widget>
<resources/>
<connections/>
</ui>
+14
View File
@@ -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;
}
+22
View File
@@ -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
+69
View File
@@ -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>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Noto Sans CJK SC'; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;如果您觉得 Wine 运行器对你有帮助,可以请作者喝杯茶&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;微信:&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/Icon/QR/Icon/QR/Wechat.png&quot; width=&quot;256&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;支付宝:&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/Icon/QR/Icon/QR/Alipay.jpg&quot; width=&quot;256&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;QQ&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/Icon/QR/Icon/QR/QQ.png&quot; width=&quot;256&quot; /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</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>
BIN
View File
Binary file not shown.
-22
View File
@@ -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;
}
-50
View File
@@ -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()
-289
View File
@@ -1,289 +0,0 @@
mov ax,0xb800
mov es,ax
; 清屏
mov cx,80*25
clean:
mov di,cx
add di,di
mov byte [es:di],''
add di,1
mov byte [es:di],0x0F
loop clean
; 显示上方白条
; 移除(0,0)的S字符
mov byte [es:0x00],''
mov cx,80*2-1
mov di,0
push cx
headtitle:
mov di,cx
mov byte [es:di],0xF0
; 写入空字符
add di,di
mov byte [es:di],''
;inc cx
;sub cx,1
loop headtitle
xor di,di
pop cx
; 显示下方白条
tailtitle:
mov di,cx
add di,80*2*24
mov byte [es:di],0xF0
; 写入空字符
mov di,cx
add di,di
add di,80*2*24
mov byte [es:di],''
loop tailtitle
; 在第一行写入文本
jmp near showHeadText
headText: db 'Wine Runner Webiste:http://gitee.com/gfdgd-xi/deep-wine-runner'
showHeadText:
; 虽然可以简单粗暴的用 movsw,但是会出现问题
mov cx,showHeadText-headText
mov ax,0x7c0
mov ds,ax ; 定位到汇编程序所在的内存地址
showHeadTextLoop:
mov dx,cx
mov di,cx
add di,di
mov si,headText
sub dx,1
add si,dx
; inc si
; mov al,1000
mov al,[ds:si]
mov byte [es:di],al
loop showHeadTextLoop
jmp near showTailText
tailText: db '2020~Now gfdgd xi'
showTailText:
mov cx,showTailText-tailText
mov ax,0x7c0
mov ds,ax
showTailTextLoop:
mov dx,cx
mov di,cx
add di,di
add di,80*2*24
mov si,tailText
sub dx,1
add si,dx
mov al,[ds:si]
mov byte [es:di],al
loop showTailTextLoop
; 显示中部提示文本
jmp near showCenterText
centerTextScreenSize:
; 第一位是行数
; 第二位是单行偏移量
db 1, -1
centerText:
db 'Mode: Real Mode Demo', 0x0A
db 'Bit: 16', 0x0A
db 'Virtual Machine: qemu-system-i386'
db 0x03 ; 结束符
showCenterText:
centerTextLong equ showCenterText-centerText
mov cx,centerTextLong
xor ax,ax
loopShowCenterText:
jmp near addScreenLineFinish
addScreenLine:
; 如果检测到换行符
mov dx, [centerTextScreenSize]
add dx,1
mov [centerTextScreenSize], dx
dec cx
mov al,-1
mov [centerTextScreenSize+1],al
; 行数+1,偏移量设为 -1(从头开始)
;ret
addScreenLineFinish:
; 偏移量 + 1
mov al,[centerTextScreenSize+1]
add al,1
mov [centerTextScreenSize+1],al
mov di,centerText
add di,centerTextLong
sub di,cx
mov bl,[di]
; 判断是不是结束符
cmp bl,0x03
je showCenterTextEnd
; 判断是不是换行符
cmp bl,0x0A
je addScreenLine ; 换行符检测
xor ah,ah ; 清空高位
add al,al
mov di,ax
; 计算显示位置
xor dx,dx
mov dl,[centerTextScreenSize]
mov ax,80
mul dx
mov dx,2
mul dx
add ax,2
add di,ax
; 显示
mov byte [es:di], bl
loop loopShowCenterText
showCenterTextEnd:
;mov ax,[cs:0x100]
;mov dx,[cs:0x102]
; mov bx,16
; div bx
; mov ds,ax
; mov es,ax
;xor di,di
;mov si,1
;xor ds,ds
;mov bx,512
;xor bx,bx
;call read_hard_disk_0
get_data:
mov di,80*2*25-2
; 读取秒
mov al,0x00
call read_time
mov byte [es:di-4],':'
mov byte [es:di-2],ah
mov byte [es:di],al
; 读取分钟
mov al,0x02
call read_time
mov byte [es:di-10],':'
mov byte [es:di-8],ah
mov byte [es:di-6],al
; 读取小时
mov al,0x04
call read_time
mov byte [es:di-14],ah
mov byte [es:di-12],al
; 读取日
mov al,0x07
call read_time
mov byte [es:di-22],'.'
mov byte [es:di-20],ah
mov byte [es:di-18],al
; 读取月
mov al,0x08
call read_time
mov byte [es:di-28],'.'
mov byte [es:di-26],ah
mov byte [es:di-24],al
; 读取年
mov al,0x09
call read_time
mov byte [es:di-32],ah
mov byte [es:di-30],al
hlt ; 使用停机指令降低 CPU 使用率
jmp near get_data
read_time:
out 0x70,al
in al,0x71
call bcd_to_ascii
ret
; 用于编码转换:BCD=》ASCII
; 输入:AL=bcd码
; 输出:AX=ascii
bcd_to_ascii:
mov ah,al
and al,0x0f
add al,0x30
shr ah,4
and ah,0x0f
add ah,0x30
ret
;poweroff:
; 关机
; mov ax,5307H ; 高级电源管理功能,设置电源状态
; mov bx,0001H ; 设备ID1:所有设备
; mov cx,0003H ; 状态,3:表示关机
; int 15h
end:
times 510-($-$$) db 0
db 0x55,0xaa
; 后面部分暂时废弃
read_hard_disk_0: ; 从硬盘读取一个逻辑扇区
; 输入:DI:SI=起始逻辑扇区号
; DS:BX=目标缓冲区地址
push ax
push bx
push cx
push dx
mov dx,0x1f2
mov al,1
out dx,al ; 读取的扇区数
inc dx ; 0x1f3
mov ax,si
out dx,al ; LBA地址7~0
inc dx ; 0x1f4
mov al,ah
out dx,al ; LBA地址15~8
inc dx ; 0x1f5
mov ax,di
out dx,al ; LBA地址23~16
inc dx ; 0x1f6
mov al,0xe0 ; LBA28模式,主盘
or al,ah ; LBA地址27~24
out dx,al
inc dx ; 0x1f7
mov al,0x20 ; 读命令
out dx,al
.waits:
in al,dx ; 此时 dx 为 0x1f7,此时为命令端口也是状态窗口
and al,0x88
cmp al,0x08
jnz .waits
; 内部操作期间,会将 0x1f7 端口第 7 位设置为“1”,准备就绪后会将此位清零,并将第 3 位设为 1
mov cx,256 ; 总计要读取的/字/数
mov dx,0x1f0
.readw:
in ax,dx
mov [bx],ax
add bx,2
loop .readw
pop dx
pop cx
pop bx
pop ax
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-8
View File
@@ -1,8 +0,0 @@
<RCC>
<qresource prefix="/">
<file>zh_CN.qm</file>
<file>zh_CN.ts</file>
<file>en_US.qm</file>
<file>en_US.ts</file>
</qresource>
</RCC>
-113
View File
@@ -1,113 +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, int cpuNum, int coreNum){
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 + "\" > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1").toLatin1());
}
return system(("\"" + managerPath + "\" startvm \"" + name + "\" > /tmp/windows-virtual-machine-installer-for-wine-runner-install.log 2>&1").toLatin1());
}
int vbox::Stop(){
return system(("\"" + managerPath + "\" controlvm \"" + name + "\" poweroff").toLatin1());
}
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());
}
int vbox::EnabledUEFI(bool status){
if(status){
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --firmware=efi").toLatin1());
}
return system(("\"" + managerPath + "\" modifyvm \"" + name + "\" --firmware=bios").toLatin1());
}
int vbox::AutoInstall(QString iso){
return system(("vboxmanage unattended install '" + name + "' '--iso=" + iso + "'").toLatin1());
}
-47
View File
@@ -1,47 +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 cpuNum, int coreNum);
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();
int EnabledUEFI(bool status);
int AutoInstall(QString iso);
private:
};
#endif // VBOX_H
-144
View File
@@ -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
View File
@@ -1 +0,0 @@
<クd箆!ソ`。スン
-597
View File
@@ -1,597 +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>Wine </source>
<oldsource>Windows </oldsource>
<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="89"/>
<source> Windows Windows 7 </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="94"/>
<source> Windows UEFI Windows 8 </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="99"/>
<source> WIndows 11</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="104"/>
<source> Windows XP VirtualBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="109"/>
<source> Windows VirtualBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="114"/>
<source> WindowsUEFI VirtualBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="119"/>
<source> arm32 Qemu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="124"/>
<source> arm64 Qemu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="136"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="143"/>
<location filename="mainwindow.ui" line="153"/>
<source>qemu/kvm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="158"/>
<source>VirtualBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="183"/>
<source> Qemu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="190"/>
<source>kvm </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="197"/>
<source>Qemu虚拟机设置</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="204"/>
<source>/Qemu磁盘</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="211"/>
<source>Qemu磁盘</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="218"/>
<source>Qemu磁盘</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="225"/>
<source>VirtualBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="241"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;UOS 3a4000 使 Qemu /&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://gfdgdxi.lanzoue.com/b01rk9wza&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gfdgdxi.lanzoue.com/b01rk9wza&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; 密码:6wvf&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58662214-c46520?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;Qemu / kvm Qemu&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;使 ISO &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;123 &lt;/span&gt;&lt;a href=&quot;https://www.123pan.com/s/pDSKVv-oypWv&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://www.123pan.com/s/pDSKVv-oypWv&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.xunlei.com/s/VNKMz3wgbYHg6JIh50ZKIc7pA1?pwd=35e5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; 提取码:35e5&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.baidu.com/s/19WbvinITCQJFZpAdZutrjg?pwd=me4y&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; 提取码: me4y&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58662220-3590cf?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso|2653276160|7503E4B9B8738DFCB95872445C72AEFB|/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt; font-weight:600;&quot;&gt; Windows &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;: &lt;/span&gt;&lt;a href=&quot;https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://pan.baidu.com/s/1D1NSy7k7XBnOZL_tNTnG6g?pwd=7s2p&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; 提取码: 7s2p &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;http://ctfile.gfdgdxi.top/d/31540479-58659214-0732a8?p=2061&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt; (访问密码: 2061)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;123&lt;/span&gt;&lt;a href=&quot;https://www.123pan.com/s/pDSKVv-uCBWv.html&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://www.123pan.com/s/pDSKVv-uCBWv.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="283"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt;使 VirtualBox&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt; X86 PC使 qemu kvm使 Windows XP Windows 7&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600; text-decoration: underline;&quot;&gt;/https://gitee.com/gfdgd-xi/deep-wine-runner/wikis 或 https://gitee.com/gfdgd-xi/wine-runner-wiki&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ctrl&lt;span style=&quot; font-weight:600; font-style:italic; text-decoration: underline;&quot;&gt;qemu则是 Ctrl+Alt+G&lt;/span&gt; &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;VirtualBox &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Qemu Virtio &lt;a href=&quot;https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-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;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712191756.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;使&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712192850.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712193527.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Windows 7 Windows 7 Windows XPWindows 10DeepinUbuntu &lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;1 Oracle VM VirtualBox &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;2Windows&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Manager_20220712223602.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;3&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox_20220712223705.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;使 VirtualBox&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//__20220712224639.png&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:26pt; font-weight:600;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;1=&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture/_VirtualBox Machine_20220712142929.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;2VirtualBox Guest AdditionsVBoxWindowsAdditions&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143006.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;3&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143018.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;4Next&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143029.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143037.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;5Install&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143044.png&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:11pt;&quot;&gt;6Reboot nowFinishReboot nowFinish&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;img src=&quot;:/picture//_VirtualBox Machine_20220712143103.png&quot; /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="421"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans CJK SC&apos;; font-size:10.5pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; wine Wine Is Not An Emulator&amp;lt;Wine &amp;gt; Windows &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; C++ QtPython Virtualbox Windows Linux Windows exe &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; GPL V3 &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Gitee&lt;a href=&quot;https://gitee.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://gitee.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Github&lt;a href=&quot;https://github.com/gfdgd-xi/deep-wine-runner&quot;&gt;&lt;span style=&quot; font-size:11pt; text-decoration: underline; color:#0082fa;&quot;&gt;https://github.com/gfdgd-xi/deep-wine-runner&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Wine Wine Windows Windows exe &lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;gfdgd xi&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="463"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="487"/>
<source>/</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="492"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="497"/>
<location filename="mainwindow.cpp" line="442"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="502"/>
<location filename="mainwindow.cpp" line="408"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="507"/>
<source>X86Qemu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="512"/>
<source> VirtualBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="517"/>
<source> Qemu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="75"/>
<location filename="mainwindow.ui" line="79"/>
<source>Windows 7 32 </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="84"/>
<source>Windows 7 64 </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="232"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="274"/>
<source>/使</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="364"/>
<location filename="mainwindow.ui" line="482"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="477"/>
<source>退</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="88"/>
<source>Wine </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="90"/>
<source>&lt;p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="90"/>
<source>&lt;/p&gt;&lt;p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="90"/>
<source>&lt;/p&gt;&lt;p&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="92"/>
<source>&lt;hr/&gt;&lt;h1&gt;&lt;/h1&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="179"/>
<location filename="mainwindow.cpp" line="186"/>
<location filename="mainwindow.cpp" line="193"/>
<location filename="mainwindow.cpp" line="200"/>
<location filename="mainwindow.cpp" line="215"/>
<location filename="mainwindow.cpp" line="222"/>
<location filename="mainwindow.cpp" line="229"/>
<location filename="mainwindow.cpp" line="248"/>
<location filename="mainwindow.cpp" line="254"/>
<location filename="mainwindow.cpp" line="263"/>
<location filename="mainwindow.cpp" line="307"/>
<location filename="mainwindow.cpp" line="322"/>
<location filename="mainwindow.cpp" line="328"/>
<location filename="mainwindow.cpp" line="332"/>
<location filename="mainwindow.cpp" line="338"/>
<location filename="mainwindow.cpp" line="357"/>
<location filename="mainwindow.cpp" line="360"/>
<location filename="mainwindow.cpp" line="364"/>
<location filename="mainwindow.cpp" line="367"/>
<location filename="mainwindow.cpp" line="392"/>
<location filename="mainwindow.cpp" line="404"/>
<location filename="mainwindow.cpp" line="438"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="179"/>
<source> Qemu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="186"/>
<source> VBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="193"/>
<source> qemu-system-arm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="200"/>
<source> qemu-system-aarch64</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="215"/>
<source> Windows7X86Auto.iso
Wine </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="222"/>
<source> Windows7X64Auto.iso
Wine </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="229"/>
<source> UEFI
Qemu Qemu</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="248"/>
<source>Qemu </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="254"/>
<location filename="mainwindow.cpp" line="263"/>
<source>VirtualBox </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="278"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="307"/>
<source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="311"/>
<source> Qemu </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="311"/>
<source>Qemu镜像(*.qcow2 *.img *.raw *.qcow *.qed *.vdi *.vhdx *.vmdk);;(*.*)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="322"/>
<location filename="mainwindow.cpp" line="328"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="332"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="338"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="357"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="360"/>
<source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="364"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="367"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="373"/>
<location filename="mainwindow.cpp" line="389"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="373"/>
<source> kvm-ok
使 sudo apt install cpu-checker </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="383"/>
<source>使</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="389"/>
<source>使 kvm
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="392"/>
<source>使 kvm
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="404"/>
<location filename="mainwindow.cpp" line="438"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="408"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="442"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>QemuSetting</name>
<message>
<location filename="qemusetting.ui" line="14"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="35"/>
<source>&lt;h3&gt;&lt;/h3&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="42"/>
<source>VNC服务端口</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="49"/>
<source> rdp </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="56"/>
<source>MB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="90"/>
<source>&lt;h3&gt;&lt;/h3&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="97"/>
<source>VNC服务</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="104"/>
<source> kvm </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="111"/>
<source>CPU核心数</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="125"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="145"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="158"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="171"/>
<source>
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qemusetting.ui" line="185"/>
<source>
Wine
</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
-27
View File
@@ -1,27 +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>
<file>application-vnd.oasis.opendocument.text.svg</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>
<qresource prefix="/TestDisk">
<file>test.qcow2</file>
</qresource>
</RCC>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1006 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 KiB