问题描述
我在Ubuntu 14.04上使用gtkmm,但在将我的自定义图标显示在系统托盘上时遇到了一些麻烦。
我正在使用GtkStatusIcon
,并进行从文件到自定义图标的设置,该图标称为icon.png。添加调试语句时没有看到错误,但是在系统托盘中也没有看到该图标。是否需要在Tray.cpp中将set_from_file()
添加到另一个步骤?
这是我的代码。
Tray.h
#ifndef GTKMM_TRAY_H
#define GTKMM_TRAY_H
#include <gtkmm.h>
#include <unistd.h>
using namespace std;
class Tray : public Gtk::StatusIcon
{
public:
Tray();
~Tray();
private:
virtual void on_statusicon_popup(guint button,guint activate_time);
virtual void on_statusicon_activated();
};
Tray.cpp
#include "Tray.h"
Tray::Tray()
{
set_from_file("/home/user/icons/icon.png");
signal_activate().connect(sigc::mem_fun(*this,&Tray::on_statusicon_activated));
signal_popup_menu().connect(sigc::mem_fun(*this,&Tray::on_statusicon_popup));
set_visible(true);
}
Tray::~Tray() {}
void Tray::on_statusicon_popup(guint button,guint activate_time)
{
printf("popup!");
}
void Tray::on_statusicon_activated()
{
printf("active!");
}
main.cpp
#include <gtkmm/main.h>
#include "Tray.h"
int main(int argc,char *argv[])
{
Gtk::Main kit(argc,argv);
Tray tray;
Gtk::Main::run();
return 0;
}
请让我知道我在做错什么。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)