首页 > 其他分享 >Qt里怎么恢复一个被最小化的窗口

Qt里怎么恢复一个被最小化的窗口

时间:2023-06-05 12:12:13浏览次数:38  
标签:窗口 Qt show windows showNormal Linux 最小化

这个需求出现在窗口最小化之后又被再次运行的时候。很多用户往往不去注意窗口是否已经存在,而是经常直接再次执行打开窗口操作。为了拦截这种情况,通常我们会去检测到窗口是否已经存在,如果存在则把它恢复正常,而不是再新创建一个。

这个操作是通过 ShowNormal() 实现的,但这个函数在windows和Linux下表现不大一样。

举例说明。比如 f 是指向窗口的指针。

if(f == NULL)
{
f = new Form();
}

f->showNormal();

在windows里,这样就可以了。但在Linux里,除了上面代码,还需要增加一句:

f->activateWindow();

只有这样窗口才会恢复出来。而且在Linux里,showNormal 和 show 表现一样,都可以通过这个方法把窗口恢复出来,但windows里则不行,必须用 showNormal。

在一本比较权威的书里看到show(),raise(),activateWindow()这三个函数连用的写法。但测试没发现raise()有什么不可或缺的作用,有它没它结果都一样。

我的测试环境,win10,ubuntu 22,qt 5.12.9。

标签:窗口,Qt,show,windows,showNormal,Linux,最小化
From: https://www.cnblogs.com/sundp/p/17457456.html

相关文章

  • bat 黑窗口隐藏
    第一种方法:bat后台运行作者ShengLeQi出自https://www.cnblogs.com/sheng-247/p/10528160.html直接让bat窗口在后台运行,在你的bat脚本最开始加上这三行:if"%1"=="hide"gotoCmdBeginstartmshtavbscript:createobject("wscript.shell").run("""%~0&q......
  • QT的特殊命名空间方式和C++对比
    Qt有以下的写法QT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACE在开始和结束关键字中间进行命名空间的创建及其内部类的声明 而C++则是直接进行创建namespaceMyNamespace{//在MyNamespace命名空间内定义的类、函数、变量等classMyC......
  • QT的类的一些知识点
    给一个例子classSerialReaderThread:publicQThread{Q_OBJECTpublic:explicitSerialReaderThread(QSerialPort*serialPort,QObject*parent=nullptr):QThread(parent),serialPort(serialPort){}protected:voidrun()override......
  • pyqt5笔记-菜单与工具栏
    目录主窗口状态栏动作组合菜单栏子菜单勾选菜单右键菜单工具栏关闭当前窗口和结束应用程序主窗口QMainWindow就是主窗口,QMainWindow提供了更多的特性,如菜单栏、工具栏、状态栏和停靠窗口等,它是为复杂的主窗口应用设计的。QMainWindow继承自QWidget,所以QMainWindow不仅可以......
  • QT--C++简学
    2.1C++语言的新特点(对于C语言来说) 赋值:直接------- intx(100) 在定义的时候就可以赋值,相当于x=100;2.2输入(cin)--------输出(cout)  2.2.1   cout<<x<<endl;  //一个变量             --------printf     cout<<x<......
  • pyqt5入门
    目录基础流程基础操作面向对象基础流程面向对象跟面向过程的区别修改默认行为,在用户关闭时弹出消息盒子进行二次确认基础流程如下,就可以实现一个最基础的窗口,但也只有一个窗口:importsysfromPyQt5.QtWidgetsimportQApplication,QWidgetif__name__=='__main__':......
  • 【VS Code 与 Qt6】QCheckBox的图标为什么不会切换?
    本篇专门扯一下有关QCheckBox组件的一个问题。老周不水字数,直接上程序,你看了就明白。#include<QApplication>#include<QWidget>#include<QPushButton>#include<QCheckBox>#include<QVBoxLayout>#include<QIcon>intmain(intargc,char**argv){QAp......
  • 记录一次QT5下多线程使用Qxlsx操作写EXCEL表文件问题
    问题表述:一个主线程和两个子线程,两个子线程进行写EXCEL表格文件,线程1写demo_1.xlsx,线程2写demo_2.xlsx,运行一段时间后程序异常退出?。代码如下://两个线程代码一样,只是写入的文件名不同QXlsx::Documentdocument("demo_x.xlsx");introwLen=document.dimension()......
  • qt 一直提示找不到 libQt5Sql.so.5 库
    报错提示: 背景:1.在ubuntu下,编译了一套开源库,用的是qt5.92.但是qt5.9特别不好用,我换成了qt5.14.2,但是担心会不会报错,因为编译开源库用到的是qt5.9的库 编译工程1.一直报上面那个错2.其他错误倒没有 解决:1.参考原文链接2.我的修改:添加变量LD_LIBRARY_PATH......
  • windows系统编译的Qt程序转到国产化麒麟linux中编译
    团队自研股票软件,关威信共总号:QStockView,下载1.1 windows系统编译的Qt程序转到国产化麒麟linux中编译(1)把Vs工程项目文件导入到Linux中首先把vs的工程拷贝到linux里面(可以用虚拟机的共享文件夹功能),把工程里面的目录Debug、GeneratedFiles、Release、Win32、x64和文件…user、......