81 lines
2.2 KiB
C++
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();
|
|||
|
}
|