qt窗口最小化之后无法打开
转自: https://blog.csdn.net/qiangzi4646/article/details/79743604
http://www.cnblogs.com/lingdhox/p/3316910.html
https://bbs.csdn.net/topics/391955966
http://www.cnblogs.com/lingdhox/p/3316910.html
https://blog.csdn.net/mengxinmoses/article/details/8177171
方法1 重写changeEvent
//头文件申明
void changeEvent(QEvent *e); //函数实现
void myWidgetWindow::changeEvent(QEvent *e)
{
switch (e->type())
{
case QEvent::WindowStateChange:
{
this->update();
this->repaint();
e->ignore();
break;
}
default:
break;
}
}
方法2 重写showEvent
//头文件申明
void showEvent(QShowEvent *e); //函数实现
void myWidgetWindow::showEvent(QShowEvent *e)
{
this->setAttribute(Qt::WA_Mapped);
QWidget::showEvent(e);
}
对无边框的QT窗体设置点击任务栏按钮最小化和还原事件
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);
--------------------------------------------------------------------------------------------------------------------------------------------------------
程序运行现象是这样的,一个包含有QTableWidget的窗体,Item上使用setCellWidget方法嵌入的自定义的widget,上面显示下载进度条、按钮等等。当下载任务进行的时候,进度条是动态显示完成百分比的,此时将其最小化。当任务完成后,重新还原该窗体,进度条还保留在最小化时的程度,直到其它列表操作后才瞬间刷新到应该的样子。
判断问题原因是Qt窗体在最小化并没有进行实际上的update操作,直到它show出来后才进行刷新的,这样能够比较节省资源,提高运行效率和速度。本例中窗体在还原时虽然刷新,但是其中的QTableWidget却没有收到update的操作,这样就导致了显示内容不正常。 解决的办法是在Qt窗体中处理changeEvent(QEvent *e),当e->type()== QEvent::WindowStateChange 时控制QTableWidget刷新界面。
例如:
void CloudStore::changeEvent(QEvent *e)
{
qDebug()<< "CloudStore::changeEvent()";
switch (e->type()) {
case QEvent::WindowStateChange:
if(m_usualAppTable){ //m_usualAppTable 即为QtableWidget
m_usualAppTable->update();
}
}
this->repaint();
e->ignore();
default:
break;
}
}
-------------------------------------------------------------------------------------------
qt窗口最小化之后无法打开的更多相关文章
- QT:窗口最小化时显示一个小浮标
有些窗口在自身最小化时要在桌面上显示一个小浮标,让用户利用这个小浮标进行各种操作(例如迅雷的悬浮窗一样),我试着用QT实现一下这个功能. PS:本来以为这个功能很简单,却搞了我两个晚上,泪奔... 思 ...
- 转 原生js canvas实现苹果电脑mac OS窗口最小化效果
http://www.17sucai.com/pins/demo-show?id=2459 http://www.17sucai.com/pins/demo-show?id=2458 很多资料 ,前 ...
- delphi代码实现窗口最小化,最大化,关闭消息发送
分类: 代码实现窗口最小化,最大化,关闭 var hwnd: hwnd;//句柄 PostMessage(hwnd,WM_SYSCOMMAND, SC_MINIMIZE,0); //最小化Post ...
- C# WinForm窗口最小化到系统托盘
* C# WinForm窗口最小化到系统托盘http://hi.baidu.com/kfxtgtqyapouyze/item/8ccfdcd5a174a7312a35c7c3 主要功能:(1).程序启 ...
- wpf 窗口最小化后,触发某事件弹出最小化窗口并置顶
//如果窗口最小化了弹出并置顶----事件触发调用 ShowWindowAsync(new System.Windows.Interop.WindowInteropHelper(CommonHelpe ...
- WPF实现窗口最小化到托盘,并且实现右击菜单
原版是从网上找了一位大神的,自己只是用了一点适合自己的. 具体实现 1.首先已经确认WPF中没有实现最小化托盘的类与方法,用到了winform中的程序集 using Drawing = System. ...
- WinForm 之 窗口最小化到托盘及右键图标显示菜单
Form最小化是指整个Form都缩小到任务栏上,但是窗体以Form的标题栏形式显示在任务栏上, 若是想让Form以Icon的形式显示在任务栏右下角,则需要给Form添加一个NotifyIcon控件. ...
- NSIS检测到窗口最小化闪烁提示
#检测到窗口为最小化时闪烁提示 !include nsDialogs.nsh #编写:水晶石 Name "IsIconic Example" OutFile "IsIco ...
- C# 实现WinForm窗口最小化到系统托盘代码,并且判断左右鼠标的事件
1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小 ...
随机推荐
- ZJOI-2017 R1游记
无实力非既得利益的$xrdog$作为一名外卡选手去参加ZJOI2017啦... Day 0: 颓?(细节待填坑..) Day 1: 上午我来到讲课现场发现讲课内容是:搜索专题 QwQ不太清醒的我一下 ...
- JavaSE习题 第九章 输入输出流
问答题 1.如果准备读取一个文件的内容,应该使用FileInputStream还是FileOutputStream? FileInputStream 2.FileInputStream流的read() ...
- format格式化函数
注意:列表索引设置参数,‘0’是必须的.
- Missing artifact com.oracle:ojdbc6:jar:10.2.0.4.0问题解决 ojdbc包pom.xml出错
遇到的问题:ojdbc.jar包出错 原因:因为oracle的ojdbc.jar是收费的,所以maven的中央仓库中没有这个资源,只能通过配置本地库才能加载到项目中去. 解决办法: (前提是安装好了m ...
- leecode第七十题(爬楼梯)
class Solution { public: int climbStairs(int n) { vector<unsigned long long> num;//斐波那契数列 num. ...
- x1c 6th usb-c 接口灯常亮,电源无法充电
症状: 左侧能充电的那个usb-c 红灯始终常亮.拔下电源线也亮着. 系统里电源是始终显示正在充电,即使拔掉外接电源也显示连着外接电源正在充电! ——最吓人的是,用U盘启动进PE,想重装win10,结 ...
- Asp.net core 学习笔记 (Excel 读写)
EPPlus 已经支持 .net core 了 https://www.nuget.org/packages/EPPlus https://github.com/JanKallman/EPPlus 写 ...
- Nginx的安装和使用(Linux)
关于什么是Nginx,Nginx的优势和使用范围这里就不多说了.其实它就是一个web服务器.这篇文章主要是说Nginx的安装和使用. 安装方式有yum安装和源码安装,这里主要讲源码安装 1.安装依赖, ...
- The MySQL Server
mysqld is the MySQL server. configuring the server. The mysql server, mysqld,has many command option ...
- 机器学习基石(台湾大学 林轩田),Lecture 1: The Learning Problem
课程的讲授从logo出发,logo由四个图案拼接而成,两个大的和两个小的.比较小的两个下一次课程就可能会解释到它们的意思,两个大的可能到课程后期才会解释到它们的意思(提示:红色代表使用机器学习危险,蓝 ...