Compare commits

..

2 Commits

2 changed files with 36 additions and 3 deletions

View File

@@ -35,7 +35,7 @@ void MainWindow::init() {
setWindowTitle("AHNU上号器"); setWindowTitle("AHNU上号器");
setWindowIcon(QIcon(":/images/logo.png")); setWindowIcon(QIcon(":/images/logo.png"));
setWindowFlags(windowFlags() & ~Qt::WindowMaximizeButtonHint & ~Qt::WindowMinimizeButtonHint); setWindowFlags(windowFlags() & ~Qt::WindowMaximizeButtonHint & ~Qt::WindowMinimizeButtonHint);
setFixedSize(400, 178); setFixedSize(400, 200);
manager.setProxy(QNetworkProxy::NoProxy); manager.setProxy(QNetworkProxy::NoProxy);
@@ -190,6 +190,8 @@ void MainWindow::testOnline() {
void MainWindow::setAutoRun(bool isStart) { void MainWindow::setAutoRun(bool isStart) {
QString appName = QApplication::applicationName(); // 获取应用名称 QString appName = QApplication::applicationName(); // 获取应用名称
#ifdef Q_OS_WIN
QSettings settings(RegKey, QSettings::NativeFormat); // 创建QSettings对象 QSettings settings(RegKey, QSettings::NativeFormat); // 创建QSettings对象
if (isStart) { if (isStart) {
@@ -199,12 +201,43 @@ void MainWindow::setAutoRun(bool isStart) {
} else { } else {
settings.remove(appName); // 从注册表中删除 settings.remove(appName); // 从注册表中删除
} }
#elifdef Q_OS_LINUX
QString autostartDir = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/autostart";
QDir dir(autostartDir);
if (!dir.exists())
dir.mkpath(autostartDir);
QString desktopFilePath = autostartDir + "/" + appName + ".desktop";
if (isStart) {
QFile desktopFile(desktopFilePath);
if (desktopFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
QTextStream out(&desktopFile);
out << "[Desktop Entry]\n";
out << "Type=Application\n";
out << "Exec=" << QApplication::applicationFilePath() << "\n";
out << "Icon=ahnu\n";
out << "Hidden=false\n";
out << "NoDisplay=false\n";
out << "X-GNOME-Autostart-enabled=true\n";
out << "Name=" << appName << "\n";
desktopFile.close();
}
} else {
QFile::remove(desktopFilePath);
}
#endif
} }
bool MainWindow::isAutoRunEnabled() { bool MainWindow::isAutoRunEnabled() {
#ifdef Q_OS_WIN
QSettings settings(RegKey, QSettings::NativeFormat); QSettings settings(RegKey, QSettings::NativeFormat);
QString appPath = QDir::toNativeSeparators(QApplication::applicationFilePath()); QString appPath = QDir::toNativeSeparators(QApplication::applicationFilePath());
return settings.value(QApplication::applicationName()).toString().split(" ")[0] == appPath; return settings.value(QApplication::applicationName()).toString().split(" ")[0] == appPath;
#elifdef Q_OS_LINUX
QString desktopFilePath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/autostart/" + QApplication::applicationName() + ".desktop";
return QFile::exists(desktopFilePath);
#endif
} }
void MainWindow::on_selfStartup_checkStateChanged() { void MainWindow::on_selfStartup_checkStateChanged() {

View File

@@ -73,13 +73,13 @@
<number>5</number> <number>5</number>
</property> </property>
<property name="leftMargin"> <property name="leftMargin">
<number>80</number> <number>60</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>10</number> <number>10</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>80</number> <number>60</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">