窗口最小化按钮和showMinimize()有什么不同?

某某人人 2016-07-17 07:48:15
给窗口程序做了个托盘图标,托盘图标右键菜单里添加了最小化操作,
minAction = new QAction("最小化",this);
connect(minAction,&QAction::triggered,this,&MainWindow::showMinimized);

为了让窗口最小化后隐藏,加了下面一段代码:
void QWidget::changeEvent(QEvent *e){ if((e->type()==QEvent::WindowStateChange)&&this->isMinimized()) { this->hide(); }}
运行程序后发现点击窗口最小化按钮,窗口可以隐藏。但是如果使用托盘图标右键最小化,窗口在任务栏仍然显示,请问是为什么?
...全文
217 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
某某人人 2016-07-19
  • 打赏
  • 举报
回复
找到问题了,是因为窗口类用的QMainwindow,隐藏函数用的QWidget::hide()。
某某人人 2016-07-18
  • 打赏
  • 举报
回复
这个功能我已经有其他办法实现了,只是想知道为什么这样实现不行。经过调试发现用托盘图标菜单最小化以后确实执行了hide(),但是最后窗口确没有在任务栏隐藏,why?
某某人人 2016-07-18
  • 打赏
  • 举报
回复
引用 1 楼 zbw1185 的回复:
showMinimized和hide()字面上就已经显示其不同了,hide会让窗口隐藏,就像hide()控件的话,界面上就看不到这个控件了,最小化就像所有软件的最小化一样,都会在任务栏显示图标。
我问的不是showMinimized和hide()的区别,是showMinimized和最小化按钮实现的操作有什么区别。
冷静忍耐 2016-07-18
  • 打赏
  • 举报
回复
最小化操作应该就是需要在任务栏上显示的,不需要hide
画茧自缚 2016-07-17
  • 打赏
  • 举报
回复
showMinimized和hide()字面上就已经显示其不同了,hide会让窗口隐藏,就像hide()控件的话,界面上就看不到这个控件了,最小化就像所有软件的最小化一样,都会在任务栏显示图标。

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧