Qt5.9的全能開發引擎

一、Qt5.9安裝

Qt5.9 是用於 C++ 應用程序開發的一種跨平台框架,支持 Windows、macOS、Linux、iOS 和 Android,還支持 WebAssembly、watchOS 和 tvOS。你可以訪問官網 https://www.qt.io/download 下載安裝包。安裝步驟如下:

1、選擇合適的版本來下載(開源/商業版)

2、運行安裝文件

3、勾選需要安裝的組件

4、安裝完成後,為了防止環境變量的混亂,最好將 Qt5.x.x 安裝到默認路徑下

下面是官方提供的Demo安裝演示代碼:

void Widget::install()
{
   QString demoInstaller = QDir::toNativeSeparators(QCoreApplication::applicationDirPath())
                            + "/demos/qt-installer-framework/examples/repositorymeta/meta/";
   QStringList arguments;
   arguments << "-v";
   arguments << "--all-sub-packages";
   arguments << "-r" << demoInstaller;
   arguments <setStandardOutputProcess(&m_stdoutProcess);
   connect(&m_stdoutProcess, &QProcess::readyReadStandardOutput,
           this, &Widget::readInstallerStdout);
   process->start("go", arguments);
}

二、Qt5.9代碼5.5

如果你正在使用 Qt5.5,升級到 Qt5.9,可以使你受益匪淺,可以讓你使用更多的新特性,比如增強的 Qt Quick 控件、Qt3D 渲染引擎等等。如果你要將 Qt5.5 代碼移植到 Qt5.9,應注意以下內容:

1、修改項目文件,引入新的 Qt 模塊:

# Qt5.5 項目文件:
QT       += core gui widgets

# Qt5.9 項目文件:
QT       += core gui widgets quick 3d

2、使用 Qt5.9 開發向後兼容的程序,需要使用 Qt::AA_EnableHighDpiScaling 來啟用自動縮放分辨率的功能。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); //啟用自動縮放分辨率的功能
    MainWindow w;
    w.show();
    return a.exec();
}

三、Qt5.9代碼qt5.7

Qt5.9 的代碼可以在 Qt5.7 的環境下編譯和運行。如果你的工程中使用了 Qt5.9 特性,需要在 Qt5.7 中加入需要使用的模塊。更多內容可以查看官方文檔 https://doc.qt.io/qt-5.9/qtmodules.html,下面是示例代碼:

# Qt5.7 項目文件:
CONFIG      += c++11                                           #使用 C++11 標準
QT       += core gui widgets

# Qt5.7 中加入使用 Qt5.9 模塊:
contains(QT_MAJOR_VERSION, 5) {
    # Qt5.9 特性
    QT += quick 3d
}

四、Qt5.9環境變量配置

在 Windows 上安裝 Qt5.9 後,默認是沒有加入環境變量的,需要在系統環境變量中加入 QT_HOME 和 PATH 變量。在 Linux 或 macOS 上不需要,只要修改 .bashrc 文件即可。

1、Windows :

QT_HOME : C:\Qt\Qt5.9.4\5.9.4\msvc2015_64   #默認路徑
PATH : %QT_HOME%\bin;

2、Linux 和 macOS :

# Linux:
echo "export QT_HOME=/opt/Qt/5.9.4/gcc_64" >> ~/.bashrc
echo "export PATH=\$PATH:\$QT_HOME/bin" >> ~/.bashrc
source ~/.bashrc

# macOS :
echo "export QT_HOME=/usr/local/Qt/5.9.4/clang_64" >> ~/.bash_profile
echo "export PATH=\$PATH:\$QT_HOME/bin" >> ~/.bash_profile
source ~/.bash_profile

五、Qt5.9.7如何創建桌面快捷方式

在 Windows 上使用 Qt5.9.7 創建桌面快捷方式,可以使用 QWinTaskbarButton 類。下面是示例代碼:

/* 創建快捷方式 */
void MainWindow::on_createShortcutButton_clicked()
{
    QString shortcutName = QApplication::applicationName();
    QString shortcutDir = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
    QString shortcutPath = shortcutDir + "/" + shortcutName + ".lnk";
    QString exePath = QApplication::applicationFilePath();

    QWinTaskbarButton *taskbarButton = new QWinTaskbarButton(this);
    QWinTaskbarProgress *taskbarProgress = taskbarButton->progress();

    taskbarButton->setWindow(this->windowHandle());

    QFileInfo exeFileInfo(exePath);
    const QString exeIcoPath = ":/res/" + exeFileInfo.baseName() + ".ico";
    QIcon icon(exeIcoPath);
    QFile exeIcoFile(exeIcoPath);
    if (exeIcoFile.exists() && exeIcoFile.open(QFile::ReadOnly)) {
        icon = QIcon(QPixmap::fromImage(QImage::fromData(exeIcoFile.readAll())));
    }

    QFile link(shortcutPath);
    link.open(QIODevice::WriteOnly);
    QDataStream out(&link);
    out.setVersion(QDataStream::Qt_5_0);
    out << quint32(0x0000000b) << QString("InternetShortcut") << quint32(0x00000001) << QString("") << quint16(0x0000);
    out << QString("URL") << QString("file:///" + exePath).replace("/", "\\") << quint16(0x0000);
    out << QString("IconFile") << exeIcoPath << quint16(0x0000) << qint32(0x00000000) << quint32(0x00000000) << quint32(0x00000001);
    out << QString("ShowCommand") <setVisible(true);
    taskbarProgress->setValue(0);
    taskbarProgress->resume();

    //將當前窗口添加到任務欄
    taskbarButton->show();

    //設置進度條的值
    for (int i = 0; i setValue(i);
        QTest::qWait(10);
    }
}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/195869.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-02 20:37
下一篇 2024-12-02 20:37

相關推薦

  • Java2D物理引擎簡介及應用

    本文將介紹Java2D物理引擎的基本概念、實現原理及應用案例,以及對應代碼示例。 一、物理引擎概述 物理引擎是一種計算機程序,用於模擬物理系統中的對象和其互動,如重力、碰撞、彈力等…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • 數據庫存儲引擎

    一、什麼是數據庫存儲引擎 數據庫存儲引擎是數據庫系統中的核心組件之一,它存儲、訪問和管理數據。 存儲引擎是數據庫系統中與底層存儲操作相關的部分,負責將數據存儲到物理介質上,控制數據…

    編程 2025-04-25
  • 虛幻4引擎崩潰解決方法

    一、檢查硬件和軟件 虛幻4引擎的崩潰可能是由硬件或軟件問題引起的。在解決問題之前,請先檢查您的電腦是否符合虛幻引擎的最低要求。您還應該檢查您的顯卡、內存、存儲設備和其他硬件組件是否…

    編程 2025-04-12
  • Groovy規則引擎:從入門到實踐

    一、Groovy規則引擎簡介 Groovy規則引擎是基於動態語言Groovy開發的一款規則引擎。它可以輕鬆處理不同的規則類型,如比較、條件、邏輯和算術等。Groovy規則引擎在應用…

    編程 2025-04-12
  • Vantajs – 強大的動畫引擎庫

    在現代Web開發中,動畫效果是不可或缺的,而Vantajs就是專門為動畫而生的引擎庫。使用Vantajs,您可以輕鬆創建驚人的動畫效果,包括粒子效果、波浪效果和背景動畫等。本文將詳…

    編程 2025-02-25
  • InnoDB引擎的四大特性

    InnoDB引擎是MySQL數據庫中比較流行的一個存儲引擎,它具有四大特性:ACID事務、行級鎖、MVCC多版本並發控制、可靠性架構。本文將從多個方面對這四大特性進行詳細闡述。 一…

    編程 2025-02-24
  • Wish3D:實時大規模多人在線3D遊戲客戶端開發引擎

    一、介紹 Wish3D是一個基於WebGL的實時大規模多人在線3D遊戲客戶端開發引擎。它採用了最新的WebGL 2.0技術,支持實時物理仿真、光影渲染、動態LOD、地圖編輯、角色動…

    編程 2025-02-17
  • Renders:一個高性能的網頁渲染引擎

    一、簡介 Renders是一個高性能的網頁渲染引擎,專門為Web應用程序或網站提供高效的頁面渲染服務。該渲染引擎採用了現代化的技術,可以高效地處理大量的網頁請求,同時提供了許多高級…

    編程 2025-02-17
  • three.js:一個強大的3D渲染引擎

    一、three.js是什麼? three.js是一個JavaScript 3D庫,它提供了各種功能來輕鬆創建3D和WebGL渲染器,從而在瀏覽器中呈現出驚人的3D視覺體驗。它簡化了…

    編程 2025-02-05

發表回復

登錄後才能評論