QT6程序全屏和隐藏鼠标指针笔记

操作系统:uBuntu20.04.3
Qt版本:Qt6.22

使用Qt在触摸屏下编程,通常需要让程序运行于全屏模式,并隐藏鼠标指针。从Qt5.5开始,QWSServer类已经不再支持,无法在用该类的QWSServer::setCursorVisible(false);方法对指针进行隐藏。

本文记录了两种用不同方式实现UI来实现全屏显示和隐藏鼠标指针的方法

一、widget实现UI

文件:main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    
    /* 隐藏鼠标指针 */
    QApplication::setOverrideCursor(QCursor(Qt::BlankCursor));

    MainWindow w;
    
    /* 全屏显示 */
    w.showFullScreen();
    return a.exec();
}

二、QML实现UI

文件:main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QCursor>

int main(int argc, char *argv[])
{
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
    QGuiApplication app(argc, argv);

    /* 隐藏鼠标指针 */
    app.setOverrideCursor(QCursor(Qt::BlankCursor));
	/* 也可以使用静态调用 */
	/* QGuiApplication::setOverrideCursor(QCursor(Qt::BlankCursor)); */
    
    QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                     &app, [url](QObject *obj, const QUrl &objUrl) {
        if (!obj && url == objUrl)
            QCoreApplication::exit(-1);
    }, Qt::QueuedConnection);
    engine.load(url);

    return app.exec();
}

文件main.qml

/* 若是Qt5,请增加导入库的版本 */
import QtQuick.Window
import QtQuick.Controls


ApplicationWindow {
    visible: true
    /* 全屏显示 */
    visibility: Window.FullScreen
    title: qsTr("Hello World")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值