qt5图标 linux,c-Qt 5.3 QSystemTrayIcon无法正常工作[Linux]

所以我写了一些Qt5应用程序,想用QSystemTrayIcon添加系统托盘图标.完成编码后,我编译并运行了它,但没有出现系统任务栏图标,因此我进行了测试,添加了一行代码,以显示信息提示框,但确实如此,但它位于左上角,而不是系统托盘.

无论如何,我尝试了Qt4.8,编译了相同的代码,并且在这里工作得很好.

我正在使用带有最新更新的Arch Linux,XFCE4作为DE和Qt 5.3.0-3.我使用Qt Creator制作了该应用程序.

我编写了一个具有相同行为的示例应用程序.

所以这是代码:

MainWindow.h

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

Q_OBJECT

QSystemTrayIcon *trayIcon;

QMenu *trayMenu;

public:

explicit MainWindow(QWidget *parent = 0);

~MainWindow();

private slots:

void on_pushButton_clicked();

private:

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

trayMenu = new QMenu(this);

trayMenu->addAction("Test");

trayIcon = new QSystemTrayIcon(this);

trayIcon->setIcon(QIcon(":/ui_conf.png"));

trayIcon->setContextMenu(trayMenu);

trayIcon->show();

trayIcon->showMessage("Well...", "Here I should be I guess?");

ui->pushButton->setIcon(QIcon(":/ui_conf.png"));

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::on_pushButton_clicked()

{

this->close();

}

main.cpp

#include "mainwindow.h"

#include

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

MainWindow w;

w.show();

return a.exec();

}

提前致谢!

解决方法:

您可以在Qt应用中尝试gtk代码,以创建工作系统任务栏图标/菜单.

标签:linux,c-4,qt

来源: https://codeday.me/bug/20191121/2052901.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值