增加了最小化至托盘相关代码

This commit is contained in:
Msy-msu 2023-01-15 21:13:39 +08:00
parent 84cbe95aed
commit 02f73ca641
3 changed files with 50 additions and 3 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@ -13,8 +13,9 @@ MainWidget::MainWidget(QString username,QWidget *parent) :
ui->name_list->setEditTriggers(QAbstractItemView::NoEditTriggers); //不允许编辑 ui->name_list->setEditTriggers(QAbstractItemView::NoEditTriggers); //不允许编辑
//ui->name_list->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); //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->setReadOnly(true);
ui->textEdit->setFocusPolicy(Qt::NoFocus); ui->textEdit->setFocusPolicy(Qt::NoFocus);
//防止QTextBrowser中的内容被重定向 //防止QTextBrowser中的内容被重定向
@ -235,7 +236,7 @@ void MainWidget::on_exit_btn_clicked()
zoom_down(ui->exit_btn); zoom_down(ui->exit_btn);
zoom_up(ui->exit_btn); zoom_up(ui->exit_btn);
QMessageBox::StandardButton response; QMessageBox::StandardButton response;
response = QMessageBox::question(this, "退出", tr("是否退出软件?")); response = QMessageBox::question(this, "退出", tr("确定退出软件?否则将最小化窗口"));
if(response == QMessageBox::Yes) if(response == QMessageBox::Yes)
{ {
@ -245,7 +246,8 @@ void MainWidget::on_exit_btn_clicked()
} }
else else
{ {
return; this->hide();
CreatSystemTray();
} }
} }
@ -448,6 +450,40 @@ bool MainWidget::eventFilter(QObject *target, QEvent *event)
return QWidget::eventFilter(target,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) void MainWidget::zoom_down(QPushButton* btn)
{ {
QPropertyAnimation *animalton = new QPropertyAnimation(btn,"geometry"); QPropertyAnimation *animalton = new QPropertyAnimation(btn,"geometry");

View File

@ -4,6 +4,8 @@
#include <QWidget> #include <QWidget>
#include <QListWidgetItem> #include <QListWidgetItem>
#include <QList> #include <QList>
#include <QMenu>
#include <QSystemTrayIcon>
#include <QMessageBox> #include <QMessageBox>
#include <QTime> #include <QTime>
#include <QFile> #include <QFile>
@ -58,8 +60,17 @@ public slots:
private: private:
Ui::MainWidget *ui; Ui::MainWidget *ui;
QString username; QString username;
QMenu* TrayMennu; //系统托盘右键菜单项
QSystemTrayIcon* SystemTray; //系统托盘图标
//右键菜单栏选项
QAction* ActionShow;
QAction* ActionQuit;
void zoom_up(QPushButton* btn); void zoom_up(QPushButton* btn);
void zoom_down(QPushButton* btn); void zoom_down(QPushButton* btn);
void CreatSystemTray();
}; };
#endif // MAINWIDGET_H #endif // MAINWIDGET_H