diff --git a/imgs/icon.png b/imgs/icon.png index 9bf75cd..fee8ac3 100644 Binary files a/imgs/icon.png and b/imgs/icon.png differ diff --git a/mainwidget.cpp b/mainwidget.cpp index 1ec8269..de9282d 100644 --- a/mainwidget.cpp +++ b/mainwidget.cpp @@ -13,8 +13,9 @@ MainWidget::MainWidget(QString username,QWidget *parent) : ui->name_list->setEditTriggers(QAbstractItemView::NoEditTriggers); //不允许编辑 //ui->name_list->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); - ui->name_list->verticalScrollBar()->setStyleSheet("QScrollBar{width:16px;}"); + //ui->name_list->verticalScrollBar()->setStyleSheet("QScrollBar{width:16px;}"); + /****************文本显示栏初始设置********************/ ui->textEdit->setReadOnly(true); ui->textEdit->setFocusPolicy(Qt::NoFocus); //防止QTextBrowser中的内容被重定向 @@ -235,7 +236,7 @@ void MainWidget::on_exit_btn_clicked() zoom_down(ui->exit_btn); zoom_up(ui->exit_btn); QMessageBox::StandardButton response; - response = QMessageBox::question(this, "退出", tr("是否退出软件?")); + response = QMessageBox::question(this, "退出", tr("确定退出软件?否则将最小化窗口")); if(response == QMessageBox::Yes) { @@ -245,7 +246,8 @@ void MainWidget::on_exit_btn_clicked() } else { - return; + this->hide(); + CreatSystemTray(); } } @@ -448,6 +450,40 @@ bool MainWidget::eventFilter(QObject *target, QEvent *event) return QWidget::eventFilter(target,event); } +void MainWidget::CreatSystemTray() +{ + //创建菜单对象和托盘图标对象 + TrayMennu = new QMenu(this); + SystemTray = new QSystemTrayIcon(this); + + //创建菜单项 + ActionShow = new QAction(tr("Show"), this); + ActionQuit = new QAction(tr("Exit"), this); + connect(ActionShow,&QAction::triggered,[=](){ + this->show(); + SystemTray->hide(); + }); + connect(ActionQuit,&QAction::triggered,[=](){ + this->close(); + }); + connect(SystemTray,&QSystemTrayIcon::activated,[=](){ + this->show(); + SystemTray->hide(); + }); + + //添加菜单项 + TrayMennu->addAction(ActionShow); + TrayMennu->addSeparator(); + TrayMennu->addAction(ActionQuit); + + //为系统托盘设置菜单为m_pTrayMennu + SystemTray->setContextMenu(TrayMennu); + SystemTray->setIcon(QIcon(":/icon.png")); + + SystemTray->show(); + //this->setWindowFlags(Qt::Tool); +} + void MainWidget::zoom_down(QPushButton* btn) { QPropertyAnimation *animalton = new QPropertyAnimation(btn,"geometry"); diff --git a/mainwidget.h b/mainwidget.h index efa1325..fa15c1b 100644 --- a/mainwidget.h +++ b/mainwidget.h @@ -4,6 +4,8 @@ #include #include #include +#include +#include #include #include #include @@ -58,8 +60,17 @@ public slots: private: Ui::MainWidget *ui; QString username; + + QMenu* TrayMennu; //系统托盘右键菜单项 + QSystemTrayIcon* SystemTray; //系统托盘图标 + + //右键菜单栏选项 + QAction* ActionShow; + QAction* ActionQuit; + void zoom_up(QPushButton* btn); void zoom_down(QPushButton* btn); + void CreatSystemTray(); }; #endif // MAINWIDGET_H