首页 > 编程语言 >Qt 编写的qml程序全屏时,挡住系统虚拟键盘的解决办法

Qt 编写的qml程序全屏时,挡住系统虚拟键盘的解决办法

时间:2024-02-27 14:46:36浏览次数:27  
标签:engine ... Qt tlwWindow url qml 全屏

官方有提到该问题。尤其是使用qml时,一定会出现这个遮挡问题。
https://doc.qt.io/qt-5/windows-issues.html

 默认的qml工程的解决代码如下:

 1 ...
 2 #include <QWindow>
 3 #include <QtPlatformHeaders/QWindowsWindowFunctions>
 4 ...
 5 
 6 int main(int argc, char *argv[])
 7 {
 8 ...
 9     QQmlApplicationEngine engine;
10     const QUrl url(QStringLiteral("qrc:/qml/main.qml"));
11     QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
12                      &app, [url](QObject *obj, const QUrl &objUrl) {
13         if (!obj && url == objUrl)
14             QCoreApplication::exit(-1);
15     }, Qt::QueuedConnection);
16     engine.load(url);
17     
18     auto tlwWindow = (QWindow*)engine.rootObjects().first();
19     QWindowsWindowFunctions::setHasBorderInFullScreen(tlwWindow, true);
20 ...
21 }

 

标签:engine,...,Qt,tlwWindow,url,qml,全屏
From: https://www.cnblogs.com/ybqjymy/p/18036836

相关文章

  • Qt 虚拟键盘qtvirtualkeyboard遮挡QLineEdit问题
    1.通过修改虚拟键盘源码qtvirtualkeyboard-everywhere-src-5.14.2\src\virtualkeyboard\desktopinputselectioncontrol.cpp:1591voidDesktopInputSelectionControl::updateVisibility()2{3staticintoriginalY=0;4if(!m_enabled){5//if......
  • Android 《设置全屏隐藏状态栏》
    @OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//全屏去状态栏(在setContentView之前)requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().addFlags(WindowManager.La......
  • Qt Virtual Keyboard C++集成与实现(QWidget)
    一.设置1.配置所需语言1).通过QtCreator配置打开Qt工程文件,点开左侧 Projects->Build->BuildSteps->qmake->Additionalarguments在 Additionalarguments 增加配置参数:CONFIG+="lang-ar_ARlang-da_DKlang-de_DElang-en_GBlang-es_ESlang-fa_FAlang-fi_FIlang-fr......
  • Qt Virtual Keyboard C++集成与实现(解决模态对话框键盘失效问题)
    一.Qt模态对话框先让我们来看看对话框的几种特性:1.Qt::NonModaThewindowisnotmodalanddoesnotblockinputtootherwindows.2.Qt::WindowModalThewindowismodaltoasinglewindowhierarchyandblocksinputtoitsparentwindow,allgrandparentwin......
  • Qt QML 虚拟键盘(VirtualKeyboard )
    简介Qt官方开源了一个虚拟键盘的示例,该示例提供两种使用方式:一种用于桌面平台,另一种用于嵌入式平台,示例采用嵌入式平台方式显示。它们区别是前者脱离窗口应用于全局,后者依附于窗口。示例在QtCreator软件可以找到:或在以下Qt安装目录找到:C:\Qt\{你的Qt版本}\Examples......
  • Qt Virtual Keyboard 自适应位置
    一.实现inputcontex.h增加如下内容:1Q_PROPERTY(QRectFinputItemGeometryREADinputItemGeometry)2QRectFinputItemGeometry();inputcontex.cpp增加如下内容:1QRectFInputContext::inputItemGeometry()2{3QWidget*pInputItem=(QWidget*)inputItem();4......
  • Qt Virtual Keyboard实现自适应悬浮键盘(多种方法详细记录)
    项目需求实现悬浮键盘,点击QLineEdit或QTextEdit自动弹出自适应悬浮键盘,尝试了以下几种方法后选择了修改QTVirtualKeyboard源码。在这里把其他方法/想法也列出来做一下记录。项目环境:QT5.13.2VS2017方法1:调用windows自带系统软件盘介绍windows自带软键盘分为......
  • Qt QML使用虚拟键盘示例(附完整源码)
    使用"虚拟键盘"注意(例子的Qt版本:5.12.4)注意一:     /*必须在main.cpp开始处加入如下代码,否则无法使用"虚拟键盘"*/     qputenv(“QT_IM_MODULE”,QByteArray(“qtvirtualkeyboard”)); 注意二:     键盘大小是根据宽度自动计算的,所以,应用程序应该只设置Inpu......
  • Qt 常用基础设置
    //右键菜单无效setContextMenuPolicy(Qt::NoContextMenu);//设置窗口背景透明setAttribute(Qt::WA_TranslucentBackground);//设置外框隐藏setWindowFlag(Qt::FramelessWindowHint);//设置无焦点setFocusPolicy(Qt::NoFocus);//设置lineEdit未输入字时显示文字l......
  • uniapp nvue页面 map地图全屏设置
    因为nvue页面:100vh以及百分比不可用,所以1,可以获取当前屏幕高度然后赋值<map:latitude="latitude":longitude="longitude":style="'height:'+windowHeight*2+'rpx;'"></map>const{windowWidth,windowHeight,appName}=......