系统托盘gtk

转载 2007年10月15日 09:05:00

简介:
  "系统托盘"是一个运行在指定的 X 屏幕上的应用程序,它显示由其它正在运行的应用程序提供的小图标,以此来提供通知功能。在 Windows XP 里称之为"通知区域"。在 GNOME 桌面系统中,系统托盘显示在桌面上的菜单栏(gnome-panel)上,如果你的菜单栏上默认没有"系统托盘",那么可以通过右键点菜单栏->添 加到菜单栏...,然后选择"系统通知区域“来添加。

前言:
  在 GNOME 系统中,系统通知功能分两部分实现:
  1)系统菜单栏的上的通知区域,这个是在 gnome-panel/applets/notification_area , 这相当于系统通知的服务端,所有通知图标都会显示在这块区域里
  2)应用程序端,GNOME 环境中所有使用了系统通知功能的程序,都自己包含了来自 libegg 中的两个实现系统通知功能应用程序端接口的库:eggtrayicon.c, eggtrayicon.h。 libegg 是一个包含了许多没有纳入但可能在末来某个时候被纳入到 GNOME 正式发行的包里的功能库。(eggtrayicon.c和eggtrayicon.h见附件)

实现你自己的通知功能图标
  现在就需要在咱们已经的代码里调用 eggtrayicon.h 里的函数来实现我们的通知功能了。
  1. 首先在你的源码里引用头文件 eggtrayicon.h
  2. 调用 GtkWidget *egg_tray_icon_new(void) 来创建一个通知图标控件,如 tray_icon.
  3. 在 tray_icon 加入自己的控件
CODE: [Copy to clipboard]
  #include "eggtrayicon.h"

  void
  create_tray (tray_demo * tray)
  {
      GtkWidget *image;
      GtkWidget *event_box;
      GtkTooltips *tooltips;
      EggTrayIcon *tray_icon;

      tooltips = gtk_tooltips_new ();
      tray_icon = egg_tray_icon_new ("Tray icon demo");
      event_box = gtk_event_box_new ();
      gtk_container_add (GTK_CONTAINER (tray_icon), event_box);
      g_signal_connect (G_OBJECT (event_box), "button-press-event",
                  G_CALLBACK (tray_button_press_event_cb), tray);
      gtk_tooltips_set_tip (GTK_TOOLTIPS(tooltips), event_box, _("Try a left/right click"),NULL);

      image = load_image (GCN_ICON);
      gtk_container_add (GTK_CONTAINER (event_box), image);

      gtk_widget_show_all (GTK_WIDGET (tray_icon));

      return;
  } 

如何使用GTK让系统显示托盘图标

使用下面的演示代码时,注意图标的路径,否则不能显示托盘图标。如果编译不成功,请注意编译命令中的字符是否是英文的字符。 介绍: 这篇文章解释了GtkStatusIcon部件的使用,这个G...
  • hushiwei1993
  • hushiwei1993
  • 2017年06月14日 12:10
  • 224

gtk托盘图标程序

http://www.codeproject.com/KB/cross-platform/GTKTrayIcon.aspx //trayicon.c#include gtk/gtk.h>static ...
  • dux003
  • dux003
  • 2009年10月25日 00:57
  • 1218

windows服务+托盘控制程序

最近写windows服务需要有界面交互,反复查阅资料发现windows服务中是无法做界面弹出的。 最后敲定方案为:windows服务+子进程 的控制方式,其中windows服务中运行服务处理事务,在...
  • chenzy1900
  • chenzy1900
  • 2016年11月07日 23:01
  • 686

Delphi 最小化程序到任务栏托盘 增加右键PopMenu

在做中间层时,中间层往往不需要点击关闭时立刻关闭,而是最小化到托盘。故而特意隐藏关闭按钮功能。        1)隐藏退出功能 用PopMenu退出菜单代替              1.增加pop...
  • yangjian900109
  • yangjian900109
  • 2016年04月02日 11:25
  • 2016

vc托盘图标的实现以及托盘右键菜单的响应

#define  UM_SHOW_TORY_ICON WM_USER + 200 + 1      // 用于响应托盘图标消息 void addToTray() { HINSTANCE ...
  • qingzai_
  • qingzai_
  • 2015年02月28日 17:41
  • 1470

MFC系统托盘的实现

通常电脑里边的软件,当你打开后会在电脑最右下角的任务栏上生成一个系统托盘,当你点击最小化或者点击关闭按钮后,若想恢复窗口,可以左键双击或者单机这个系统图标,同时鼠标右键点击,又会有其他的菜单弹出,比如...
  • u013051748
  • u013051748
  • 2015年05月10日 16:34
  • 1405

C#软件开发实例.私人订制自己的屏幕截图工具(三)托盘图标及菜单的实现

概述 添加托盘图标功能主要是为了添加菜单功能,可以通过托盘图标来管理程序;托盘菜单包括“打开保存目录、录制Flash动画、录制GIF动画、延时5秒截图、截图、设置、退出”等功能。 系统托盘 系统托盘是...
  • testcs_dn
  • testcs_dn
  • 2014年04月09日 13:20
  • 4637

【进程处理】4,刷新任务栏托盘区,清除异常关闭进程的残留图标

1,目的 之前介绍了枚举进程并关闭进程的方法,可是有一个问题,使用TerminateProcess关闭的进程如果生成过托盘图标,这个图标就会停留在右下角的托盘区(因为该进程来不及执行自己的图标清理...
  • dpsying
  • dpsying
  • 2014年02月28日 15:49
  • 7126

Win32 API 实现系统托盘程序

托盘程序就是运行在Windows系统托盘的程序,就是在桌面右下角的显示区域的一个小图标。通常托盘程序带有几种功能:托盘菜单,托盘图标,气泡提示,托盘提示。例如QQ收到消息后,会在系统右下角显示闪动QQ...
  • cwqcwk1
  • cwqcwk1
  • 2013年11月05日 17:53
  • 4008

VC 获取托盘图标信息

//本例以获取程序托盘图标位置为例 //根据需要还可以获取不少信息 参考:http://www.cnblogs.com/daxingxing/archive/2012/02/06/2340384....
  • wzsy
  • wzsy
  • 2015年08月25日 17:29
  • 1494
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:系统托盘gtk
举报原因:
原因补充:

(最多只允许输入30个字)