随着接触Qt的时间的增加,也逐渐的发现了Qt 的一些不人信话的一些地方,不由的想起一句话,也不知道是在哪里看到的了“一切变成语言都是垃圾,就C++还可以凑合用”大致意思是这样。最近项目的祝界面框架都基本写完了,那自我感觉良好,感觉自己QML牛逼的不得了了,全部用的都是自己YY出来的空间,今天小伙伴在同伴代码后,用到了我的模块,给我说了一个BUG,

我一听,卧槽,BUG!BUG!BUG!,你确定是我的问题吗,你要确定好了啊,是不是你的环境问题,我这怎么没有这个问题。

大致说一下背景,项目在开发完成后呢,大部分和默认情况呢,都是全屏运行,界面呢,都属出自本宝宝的手哈,所以了,在QML中了,我默认是调用的QML的“showFullScreen()”

而小伙伴反应是在全屏下,我的空间是被遮住了,在主界面的后面显示,每次都需要调出资源管理器来显示我的界面,这就不爽了,我这里怎么就没有了

再次和小伙伴干起来,是不是你用的不对,你没有看我写的Demo么,没有看么,我的怎么没有问题,奈何,MMP,我是公司唯一一个使用两个显示器 的,每次程序都是运行在我的扩展屏上面,这个问题是没有出现,但是当我运行在主屏上面的时候,就会发现这样的问题了,赶紧害羞的修BUG

“showFullScreen()”这个函数呢,英文字面意思就是全屏显示程序,这个函数默认是调用了系统的“FullScreen”,如下图

接着跳转到帮助文档看FullScreen,如下

后面的届时我复制下来

The window occupies one entire screen, is not resizable, and there is no titlebar. On some platforms which do not support showing multiple simultaneous windows, this can be the usual visibility when the window is not hidden.

这是原文,

有道翻译结果

大致意思了,就是这个FunnScreen函数了,在某些平台上面,只能支持一个界面全屏显示,也就是说,当某个界面在全屏显示的状态下,其他界面是被遮盖的。参考这个BUG的出现,那我才,windows就是其中一个了,很遗憾,那么,怎么办了,其实如果可以用Dialog就可以轻松解决了,奈何我搞了一下午,就是不能把Dialog的边框去掉,这里需要有牛逼的小伙伴给我指点一下,QML下的Dialog怎么把边框给去掉了。但是呢,总得先把这个BUG给解决了,不然老板给和我谈谈人生了。所以,这里需要祭出我今天新学习的神器了,Popup

这是一些Popup的一些布局显示,那么我理解了,就是中间的白色区域,就可以显示我们要弹出的内容了,剩下的那些,都是对这个Popup的美化。

下面上测试代码

import QtQuick 2.5
import QtQuick.Controls 2.1
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0
import QtQuick.Window 2.2
ApplicationWindow {
id:root
visible: true
width: 800
height: 600
title: qsTr("测试程序") Rectangle
{
width: 100
height: 30
anchors.right: parent.right
anchors.top: parent.top
color: "#FF0000" MouseArea
{
anchors.fill: parent
onClicked: {
if(root.width != Screen.width)
{
showFullScreen()
test.text = "ShoeNurmal"
}
else
{
showNormal()
test.text = "ShowFullScreen"
}
}
}
Text {
id: test
anchors.centerIn: parent
text: qsTr("ShowFullScreen")
}
} Rectangle
{
width: 100
height: 30
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: 50
color: "#FFFF00" MouseArea
{
anchors.fill: parent
onClicked: {
if(textpopup.text == 'Popup')
{
myPopup.open()
textpopup.text = "Popup close" }
else
{
myPopup.close()
textpopup.text = "Popup"
}
}
}
Text {
id: textpopup
anchors.centerIn: parent
text: qsTr("Popup")
}
} Popup
{
id:myPopup
width: 400
height: 300
x:(root.width-width)/2
y:(root.height-height)/2
modal: true
focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent Rectangle
{
// width: 400
// height: 300
anchors.fill: parent
Text {
id: mytext
font.pixelSize: 24
text: qsTr("Popup 内容显示模块")
}
}
} }

运行测试截图

非全屏

全屏

抱歉,我不知道怎么能截下来,每次截图会把这个状态改变了,只能用相机拍下来了

目前完美解决了这个我自己洗的BUG

现在,我真的是在写BUG,哈哈

欢迎大家指正

Qt-QML-Popup,弹层界面编写的更多相关文章

  1. Vue自定义Popup弹窗组件|vue仿ios、微信弹窗|vue右键弹层

    基于vue.js构建的轻量级Vue移动端弹出框组件Vpopup vpopup 汇聚了有赞Vant.京东NutUI等Vue组件库的Msg消息框.Popup弹层.Dialog对话框.Toast弱提示.Ac ...

  2. vant - 弹框 【Popup 弹出层】【DatetimePicker 时间选择】

    [HelloWorld.vue] <template> <div class="hello"> <van-row class="m-head ...

  3. C语言 C++1X STL QT免费视频课程 QT5界面开发美化 式样表 QML

    C/C++/QT界面开发界面美化视频课程系列 课程1   C语言 C++1X STL QT免费视频课程 QT5界面开发美化 式样表 QML 返回顶部 课程1   C语言 C++1X STL QT免费视 ...

  4. 利用UiWatchers 监听解决安卓自动化各种自动化各种非期待弹窗,弹层,升级,广告,对话框,来电等问题

    app自动化时,各种不期待的弹层弹窗,升级广告等时有飞出,由于弹窗具有不定时,不定页面等很多不确定性.有的弹窗很不友好,不×掉,很难进行下一步操作,造成 测试用例失败.而判断是否有弹窗,弹层很麻烦.研 ...

  5. 微网站|h5弹窗|手机网站 html5 弹窗、弹层、提示框、加载条

    为了精确体验,您可通过Chrome设备模式浏览.或通过[url=]手机扫二维码进入[/url] layer mobile是为移动设备(手机.平板等webkit内核浏览器/webview)量身定做的弹层 ...

  6. 微网站|手机端html弹窗、弹层、提示框、加载条

    layer mobile是为移动设备(手机.平板等webkit内核浏览器/webview)量身定做的弹层支撑,采用Native JavaScript编写,完全独立于PC版的layer,您需要按照场景选 ...

  7. Qt QML referenceexamples attached Demo hacking

    /********************************************************************************************* * Qt ...

  8. vue+vux 父组件控制子组件弹层

    知识点用到了vue父子组件之间的传值,以及使用watch和v-model控制vux中XDialog组件. 需要注意的问题: 1.父组件向子组件传值使用的是props(单向传值),子组件创建props, ...

  9. javascript右下角弹层及自动隐藏

    在编写项目中总会需要有个右下角弹层提示公告的需求,怎么用更简单方面,更简洁代码,实现更好用户体验这个就是我们的所要做的内容.市场这块弹层很多,但功能不尽如人意.下面分享早些时候自己编写,以及现在还在应 ...

随机推荐

  1. 有gridview汇出word和excel

    private void Export(GridView _gv, string filetype, string FileName)    {        if (filetype == &quo ...

  2. 【题解】洛谷P2296 [NOIP2014TG] 寻找道路(SPFA+DFS)

    题目来源:洛谷P2296 思路 一开始看还以为是一道水题 虽然本来就挺水的 本道题的难点在于如何判断是否路径上的点都会直接或者间接连着终点 我们需要在一开始多建一个反向图 然后从终点DFS回去 把路径 ...

  3. hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others)     ...

  4. STM32之FSMC

    FSMC全称“静态存储器控制器”. 使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线. (1)当存储数据设为8位时, ...

  5. Asp.net 中 OnClientClick 与 OnClick 的区别

    OnClientClick 是客户端事件处理方法,一般采用JavaScript来进行处理,也就是直接在IE端运行,一点击就运行. OnClick 是服务器端事件处理方法,在服务器端也就是IIS中运行, ...

  6. 初学JavaScript从入门到放弃(一)JavaScript介绍、变量、数据类型

    一.JavaScript介绍 1.JavaScript:轻量级的客户端脚本语音 2.目前js已经不仅仅是客户语音,基于NODE可以做服务器端程序,所以Javascript是全栈编程语音 3.js及部分 ...

  7. 动态树LCT(Link-cut-tree)总结+模板题+各种题目

    一.理解LCT的工作原理 先看一道例题: 让你维护一棵给定的树,需要支持下面两种操作: Change x val:  令x点的点权变为val Query x y:  计算x,y之间的唯一的最短路径的点 ...

  8. layui form表单 input输入框获取焦点后 阻止Enter回车自动提交

    最简单的解决办法,不影响其他操作,给提交按钮增加 type="button" 属性 完美解决 <button type="button" class=&q ...

  9. 前台页面上传data image图片,java后台接收图片保存

    最近在项目中有这么一个需求,就是上传一个视频文件,然后要获取视频文件的第一帧图片,这个可以通过canvas获取得到,得到的是一个dataURL,之后还要将这个图片上传到云,这个时候如何操作就不清楚了, ...

  10. SQL Server 2012 - 数据更新操作

    SELECT * FROM dbo.Student; --1, 插入数据 Insert ,逗号分隔可以同时插入多条 INSERT dbo.Student ( StuID, Class, StuName ...