qt生成应用程序图标和托盘
2014-08-13 16:47
197 查看
首先,准备一个图标,例如:zx.ico,并新建一个文本文档,在里面添加一行:
IDI_ICON1 ICON DISCARDABLE"zx.ico"
重命名为:zx.rc并保存,和你的程序图标zx.ico一起放到QT工程目录下;
然后,在QT工程文件.pro里面最后新添加一行:
RC_FILE = zx.rc
最后,在程序中添加代码:
app.seWindowIcon(QIcon("zx.ico")),保存运行就OK了。
其实,在Qt助手(assistant.exe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法,有兴趣的可以去看看,挺简单的。
IDI_ICON1 ICON DISCARDABLE"zx.ico"
重命名为:zx.rc并保存,和你的程序图标zx.ico一起放到QT工程目录下;
然后,在QT工程文件.pro里面最后新添加一行:
RC_FILE = zx.rc
最后,在程序中添加代码:
app.seWindowIcon(QIcon("zx.ico")),保存运行就OK了。
其实,在Qt助手(assistant.exe)搜索关键字"Setting the Application Icon"就可以看到在各种平台设置Qt程序图标的方法,有兴趣的可以去看看,挺简单的。
connect( quitButton, SIGNAL(clicked()), qApp, SLOT(quit()) );
a.setQuitOnLastWindowClosed(false);//设置托盘缩进后退出可以取消
QSystemTrayIcon *trayIcon;
QIcon icon = QIcon(":/tu.png");
setWindowIcon(icon);
trayIcon = new QSystemTrayIcon(this);
trayIcon->setIcon(icon);
trayIcon->setToolTip("查询系统");
createActions();//托盘响应事件
createTrayIcon();//托盘菜单
trayIcon->show();
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
if (!QSystemTrayIcon::isSystemTrayAvailable())//判断是否可以用托盘
{
QMessageBox::critical(0, QObject::tr("Systray"),
QObject::tr("I couldn't detect any system tray on this system."));
return 1;
}
void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)//鼠标事件判断
{
//触发后台图标执行相应事件
switch (reason)
{
case QSystemTrayIcon::Trigger:
//showMessage("鼠标单击!");
break;
case QSystemTrayIcon::DoubleClick:
//showMessage("鼠标双击!");
showNormal();
break;
case QSystemTrayIcon::MiddleClick:
//showMessage("鼠标中键!");
break;
default:
break;
}
}
void MainWindow::createActions() { minimizeAction = new QAction(tr("最小化 (&I)"), this); connect(minimizeAction, SIGNAL(triggered()), this, SLOT(hide())); maximizeAction = new QAction(tr("最大化 (&X)"), this); connect(maximizeAction, SIGNAL(triggered()), this, SLOT(showMaximized())); restoreAction = new QAction(tr("还原 (&R)"), this); connect(restoreAction, SIGNAL(triggered()), this, SLOT(showNormal())); quitAction = new QAction(tr("退出 (&Q)"), this); connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); } void MainWindow::createTrayIcon() { //设置右键点击时弹出的菜单 trayIconMenu = new QMenu(this); trayIconMenu->addAction(minimizeAction); trayIconMenu->addAction(maximizeAction); trayIconMenu->addAction(restoreAction); trayIconMenu->addSeparator(); trayIconMenu->addAction(quitAction); trayIcon->setContextMenu(trayIconMenu); }
void MainWindow::closeEvent(QCloseEvent *event)//关闭拦截 { if(this->isVisible()){ hide(); event->ignore(); }else event->accept(); } void MainWindow::changeEvent(QEvent* event){//最小化拦截 if(event->type()==QEvent::WindowStateChange){ if(windowState() & Qt::WindowMinimized){ QTimer::singleShot(0, this, SLOT(hide())); //mSystemTrayIcon->show(); } QMainWindow::changeEvent(event); } }
相关文章推荐
- 为QT生成的应用程序加图标 \QWindow::setWindowIcon()
- 怎样设置Qt生成的应用程序图标
- 为QT生成的应用程序加图标
- QT窗口图标和生成exe应用程序图标设置
- Qt生成应用程序图标
- 怎样设置Qt生成的应用程序图标
- QT 设置应用程序图标
- Qt/PyQt的系统托盘图标(SystemTrayIcon)实现
- 设置Qt应用程序图标
- 设置Qt应用程序图标
- QT如何生成应用程序图表,带可执行文件的的标志
- 如何给Qt 开发的应用程序加图标
- 设置Qt应用程序图标
- JAVA6新特性之---java桌面应用中生成托盘(tray)图标的简单方法
- 设置Qt应用程序图标
- 如何为应用程序添加托盘图标
- 设置Qt应用程序图标
- 设置应用程序(exe)图标 Qt4
- 为应用程序添加托盘图标的一种方法
- 设置Qt应用程序图标