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/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

发表回复

登录后才能评论