建设工程规划许可证在哪个网站查询,网站开发亿码酷流量,杭州网站建站,python编程软件安装教程展开全部功能62616964757a686964616fe78988e69d8331333361303733#xff1a;窗口最小化后或者点击“hide”按钮将窗口隐藏到托盘。通常最小化的窗口会在任务栏上显示一个按钮。当用户按一下这个按钮#xff0c;窗口就还原了。这是一个被大多数桌面环境#xff0c;比如Window…展开全部功能62616964757a686964616fe78988e69d8331333361303733窗口最小化后或者点击“hide”按钮将窗口隐藏到托盘。通常最小化的窗口会在任务栏上显示一个按钮。当用户按一下这个按钮窗口就还原了。这是一个被大多数桌面环境比如WindowsKDEGNOME所采用的普遍设计。不过因为任务栏通常只是桌面边上一小行容纳不了很多按钮用户通常希望把那些不常用的程序隐藏起来只在通知栏显示一个小图标要使用的时候再点击那个小图标恢复窗口。这种作法最典型的例子是QQ和Winamp。最基本的思路是拦截窗口的最小化事件changeEvent(),通过重写changeEvent()即可。“hide”按钮的方式是通过信号--槽来实现。--------------------------------------------------------------------void TrayMenu::createActions(){//创建托盘项action_show new QAction(this);action_quit new QAction(this);action_login_home new QAction(this);action_help new QAction(this);action_about new QAction(this);action_check_update new QAction(this);action_setting new QAction(this);//设置托盘项图标action_show-setIcon(QIcon(:/icon/open));action_login_home-setIcon(QIcon(:/icon/home));action_help-setIcon(QIcon(:/icon/help));action_about-setIcon(QIcon(:/icon/about));action_check_update-setIcon(QIcon(:/icon/update));action_setting-setIcon(QIcon(:/icon/set));action_quit-setIcon(QIcon(:/icon/quit));//加载图片和提示QIcon icon(:/images/sysTray.png);systemTray new QSystemTrayIcon(this);systemTray-setIcon(icon);systemTray-setToolTip(Hello, this is system tray!);注意这里特别提醒如果你的应用程序要移植到别的机器上而且这个机器没有装QtQIcon的图片格式最好用png而不要用ico等格式否则托盘图标不能显示会很麻烦。//设置托盘想文本action_show-setText(QString(显示));action_quit-setText(QString(退出));action_login_home-setText(QString(登录网页));action_help-setText(QString(帮助));action_about-setText(QString(关于));action_check_update-setText(QString(检查更新));action_setting-setText(QString(设置));//添加菜单项this-addAction(action_show);this-addAction(action_setting);this-addAction(action_login_home);this-addSeparator();this-addAction(action_help);this-addAction(action_about);this-addAction(action_check_update);this-addSeparator();this-addAction(action_quit);action_setting-setVisible(false);//设置信号连接(这里仅列举连接显示窗口的信号)QObject::connect(action_show, SIGNAL(triggered(bool)), this, SIGNAL(showWidget()));}LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent){QSystemTrayIcon *system_tray new QSystemTrayIcon();//放在托盘提示信息、托盘图标system_tray -setToolTip(QString(我就是托盘));system_tray -setIcon(QIcon(:/icon/login));TrayMenu *tray_menu new TrayMenu();system_tray-setContextMenu(tray_menu);//点击托盘执行的事件connect(system_tray , SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason)));connect(tray_menu, SIGNAL(showWidget()), this, SLOT(showNormal()));//显示托盘system_tray-show();//托盘显示提示信息system_tray-showMessage(QString(托盘标题), QString(托盘显示内容));}void LoginDialog::iconIsActived(QSystemTrayIcon::ActivationReason reason){switch(reason){//点击托盘显示窗口case QSystemTrayIcon::Trigger:{showNormal();break;}//双击托盘显示窗口case QSystemTrayIcon::DoubleClick:{showNormal();break;}default:break;}}OK这样我们的托盘功能就Over了另//关闭到托盘void Widget::closeEvent(QCloseEvent *e){e-ignore();this-hide();}//最小化到托盘void Widget::changeEvent(QEvent *e){if((e-type()QEvent::WindowStateChange)this-isMinimized()){QTimer::singleShot(100, this, SLOT(close()));}}或者(me)//点击窗口的“最小化按钮会调用此函数(系统默认)---已实现void maxLinksGuard::changeEvent(QEvent * event ){if(event-WindowStateChange){switch(this-windowState()){//点击“最小化”按钮case Qt::WindowMinimized:this-hide();this-setWindowFlags(Qt::Tool);//隐藏任务栏上图标systemTray-show();//显示托盘systemTray-showMessage(windowTitle(),Here is system,double click will show!);//提示event-ignore();break;default:break;}}}//托盘图标事件--------已实现void maxLinksGuard::iconActivated(QSystemTrayIcon::ActivationReason reason){switch (reason){//单击托盘case QSystemTrayIcon::Trigger:{if(!this-isVisible()){this-setWindowFlags(Qt::Window); //显示之前恢复showNormal();}else{hide();}break;}//双击托盘---貌似不起作用case QSystemTrayIcon::DoubleClick:{if(!this-isVisible()){this-setWindowFlags(Qt::Window); //显示之前恢复showNormal();}else{hide();}break;}case QSystemTrayIcon::MiddleClick:{break;}default: ;}}//点击窗口的“关闭”按钮触发closeEvent事件(关闭应用程序)----已实现void maxLinksGuard::closeEvent(QCloseEvent *event){if (this-isVisible()){QMessageBox::critical(NULL,QObject::tr(Prompt:),QObject::tr(Are you sure you want to kill/stop the MaxLinksGuard?));event-ignore();}else{event-accept();}}已赞过已踩过你对这个回答的评价是评论收起