code_app/app/scantool/mainwindow.cpp

81 lines
2.2 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QCloseEvent>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_btnDlg = new Dialog_Button(this);
m_scanDlg = new Dialog_Scan(m_btnDlg, this);
m_trayIcon = new QSystemTrayIcon(this);
m_trayIcon->setIcon(QIcon(":images/image_rsc/png/logo.png"));
m_trayIcon->show();
m_trayIcon->setToolTip(tr("HuaGao Scan Tool"));
qRegisterMetaType<QSystemTrayIcon::ActivationReason>("QSystemTrayIcon::ActivationReason");
connect(m_trayIcon, &QSystemTrayIcon::activated, this, &MainWindow::on_trayActivated);
m_scanAction = new QAction(tr("Scan Setting"), this);
connect(m_scanAction, &QAction::triggered, this, &MainWindow::on_showScanSettingDlg);
m_btnAction = new QAction(tr("Button Setting"), this);
connect(m_btnAction, &QAction::triggered, this, &MainWindow::on_showButtonSettingDlg);
m_quitAction = new QAction(tr("Exit"), this);
connect(m_quitAction, &QAction::triggered, this, &QCoreApplication::quit); //应用程序的退出
//创建菜单,添加菜单项
m_trayIconMenu = new QMenu(this);
m_trayIconMenu->addAction(m_scanAction);
m_trayIconMenu->addAction(m_btnAction);
m_trayIconMenu->addSeparator(); //分割线
m_trayIconMenu->addAction(m_quitAction);
//给系统托盘添加右键菜单
m_trayIcon->setContextMenu(m_trayIconMenu);
}
MainWindow::~MainWindow()
{
delete m_scanDlg;
delete m_btnDlg;
delete ui;
}
void MainWindow::closeEvent(QCloseEvent *e)
{
if (m_trayIcon->isVisible()) //托盘是显示的
{
hide(); // 隐藏主窗口
e->ignore(); //忽略关闭事件,这样才不会关闭程序
}
}
void MainWindow::on_trayActivated(QSystemTrayIcon::ActivationReason reason)
{
if (QSystemTrayIcon::Trigger == reason)
{
}
else if (QSystemTrayIcon::DoubleClick == reason)
{
m_btnDlg->show();
}
else if (QSystemTrayIcon::MiddleClick == reason)
{
}
}
void MainWindow::on_showScanSettingDlg()
{
m_scanDlg->show();
}
void MainWindow::on_showButtonSettingDlg()
{
m_btnDlg->show();
}