Qt控件显示,Windows判断隐藏

原创 2017年01月03日 15:00:55

最近一直在解决一个问题:Qt控件的显示与隐藏

下述内容全部是在Qt5.6上实现

以QDialog上的QFrame控件类型为例

   QFrame frame;


1.Qt判断控件是否显示使用的函数是isVisible

   (1)加入frame.isVisible返回的是false,先查看该对话框是否已经显示,比如该函数是否是在对话框调用exec前判断的。

   (2)若是在对话框显示前判断必然返回false。

   (3)当控件显示出来时,QT会发生事件showEvent(QShowEvent* event)


2.Windows判断控件是否显示使用的函数是IsWindowVisible(HWND hWnd)

   (1)这里的hWnd指的是窗口句柄,Qt控件通过winId获取(获取后需要类型转换哟)

   (2)winID是QWidget,QWindow的成员函数,所有继承他们的子类都有该函数


3.二者的联系

   (1)Windows下判断控件的显示与隐藏我至今没有搞明白,但可以肯定的是Qt-isVisible返回false,IsWindowVisible必然返回false

   (2)实际中遇到isVisible返回true,而IsWindowVisible返回false,那么需要自己手动修改了:

       a、使用ShowWindow函数:

             Function ShoWWindow(hwnd: HWND,nCmdShow;int):bool;

             其中,hWnd参数是应用程序的句柄,nCmdShow参数代表了窗体的显示状态。
             nCmdShow参数的值如下:   
             sw_hide      隐藏窗口,激活另一个窗口   
             sw_maximize   将指定的窗口最大化   
             sw_minimize   将指定的窗口最小化   
             sw_restore     还原指定的窗口   
             sw_show       以当前位置和大小激活窗口   
             sw_showdefault    以传递到createprocess函数中的startupinfo记录中指定的sw_flag方式显示窗口
             sw_showmaximized    激活并最大化指定窗口
             sw_showminimized    激活并最小化指定窗口   
             sw_showminnoactive  以最小化方式显示指定窗口,当窗口保持激活  
             sw_showna      以当前状态显示指定窗口,当前窗口保持激活  
             sw_shownoactivate    以其最近的大小和位置显示指定窗口,当前窗口保持激活 
             sw_shownormal     激活并显示指定窗口,如果该窗口被最大化或最小化,将还原其原本的大小和位置。   
             隐藏应用程序在任务栏采用sw_hide是比较合适的。
             代码如下.
             ShowWindow(Application.Handle,SW_HIDE);

             a处内容参考:  http://www.cnblogs.com/laozhao/articles/api_showwindow.html

             这里nCmdShow的值需要大写

             该方法已经验证,确实可以实现

         b、使用UpdateWindow,该方法未验证。


           



Qt5之控件的隐藏显示与移动

本例程实现控件的隐藏、显示,以及控件的移动。         对于控件的信号与槽等基础技术在这里不再累赘,直接进入关键技术点:        本例程中,当按下按钮时,列表框上移,按钮与列表框之间的...
  • CXP2205455256
  • CXP2205455256
  • 2015年04月09日 16:13
  • 12728

QT 判断当前焦点是否在某控件上

ui->pushButtonhasFocus()->hasFocus ui->treeWidget->hasFocus()
  • hailmy
  • hailmy
  • 2014年06月06日 11:30
  • 3442

Qt5之控件的隐藏显示与移动

本例程实现控件的隐藏、显示,以及控件的移动。         对于控件的信号与槽等基础技术在这里不再累赘,直接进入关键技术点:        本例程中,当按下按钮时,列表框上移,按钮与列表框之间的...
  • CXP2205455256
  • CXP2205455256
  • 2015年04月09日 16:13
  • 12728

初学Qt:初步了解Windows窗口基本控件

解决问题:本文以具体代码的形式讲解了windows基本窗口的建立过程。 使用方法:为了深入理解,本文未使用Design设计器,而是以纯代码的形式来建立窗口。 具体内容:Windows窗口的菜单栏、...
  • dashumak
  • dashumak
  • 2017年10月16日 10:22
  • 73

Qt 控件渐变隐藏消失

  • 2017年09月10日 11:57
  • 5KB
  • 下载

Qt中通过控件在Label标签中显示一张静态图片

  • 2015年11月27日 20:26
  • 1.61MB
  • 下载

在qt的MVC模式中,运用控件在delegate中显示的方法

  • 2016年01月27日 15:06
  • 6KB
  • 下载

Qt下的自定义图像显示控件

  • 2017年01月07日 16:19
  • 9.68MB
  • 下载

Qt做的曲线显示控件

  • 2011年07月19日 19:51
  • 2.12MB
  • 下载

Qt中利用OpenCV同时打开两个摄像机并显示到QLabel控件上

  • 2013年03月26日 11:46
  • 1.94MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt控件显示,Windows判断隐藏
举报原因:
原因补充:

(最多只允许输入30个字)