当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-21 22:50 

注册: 2009-10-21 22:42
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
我对linux不是很精通,但希望可以实现一个系统托盘。希望大家可以提供一些参考资料。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-21 22:57 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
下载一个最简单的有托盘图标的程序来看

apt-get source xx

以前GNOME网站有个示例
gnome-notification-area-demo 现在好像打不开了


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-22 0:39 
头像

注册: 2007-10-29 22:12
帖子: 5353
地址: 江苏南京
系统: OSX 10.9 + Ub 1304
送出感谢: 0 次
接收感谢: 5
额,打开devhelp,选择搜索,搜GtkStatusIcon

api都在上面

当然,是gtk方式的,也兼容kde

gtk_status_icon_new()去创建

然后信号、属性

按照正常方式就可以写其他逻辑了

最后一个gtk_main()跑起来就可以了

去放狗,搜GtkStatusIcon,一大把的


_________________
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-22 8:47 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
我发过现成的。简单的。
● cat tm-托盘菜单.pl
#!/usr/bin/perl

use utf8;
use Gtk2 -init;
use Encode;

sub popM {
my ($widget, $button, $time, $menu) = @_;
if ($button == 3) {
# 组合3按键,不同的操作?
my ($x,$y,$push_in)=Gtk2::StatusIcon::position_menu($menu, $widget);
$menu->show_all();
$menu->popup(undef,undef,sub{return($x,$y,0)},undef,0,$time);
}
}

open(CFGFILE,"$ENV{HOME}/.traymenu.rc") or die "不能打开配置文件。";
my $menu = Gtk2::Menu->new();
my $item,$status_icon;
my $defaultcmd;
#$0=~s/[^\/]*?$//;
while(<CFGFILE>){
chomp;
next if /^#/;
$_=decode_utf8($_);
my($menuname,$iconfile,$command)=split(/,/);
if(!$defaultcmd){$defaultcmd=$command;}
$item = Gtk2::ImageMenuItem->new_with_label($menuname);
$item->set_image(Gtk2::Image->new_from_file($iconfile));
#$item->signal_connect('activate', sub{`$_[1]`;},$command);
$item->signal_connect('activate', sub{system($_[1]);},$command);
#如何调用进程,不等待返回。
$menu->append($item);
}
close CFGFILE;
$status_icon = Gtk2::StatusIcon->new_from_file('/home/exp/媒体/我的图片●/distributor-logo.png');
#$status_icon = Gtk2::StatusIcon->new_from_stock('gtk-home');
$item = Gtk2::ImageMenuItem->new_from_stock('gtk-quit');
$item->signal_connect('activate', sub{Gtk2->main_quit();}, $status_icon);
$menu->append($item);

$status_icon->set_tooltip("托盘菜单:脚本集合");
$status_icon->signal_connect('activate', sub{`$defaultcmd`;});
#左键点击,改菜单不行?
$status_icon->signal_connect('popup-menu', \&popM, $menu);
$status_icon->set_visible(1);

Gtk2->main();


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-22 9:51 

注册: 2006-09-07 22:51
帖子: 849
送出感谢: 0 次
接收感谢: 0 次
http://wkt55555.blog.163.com/blog/stati ... 113542862/


_________________
blog:http://wkt55555.blog.163.com/


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-22 11:39 

注册: 2009-10-21 22:42
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
可能我表达的不够清楚,我是想为一个没有系统托盘的桌面提供托盘这个功能,不是为托盘上加上一个icon。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-22 13:41 

注册: 2006-09-07 22:51
帖子: 849
送出感谢: 0 次
接收感谢: 0 次
ruirui8127 写道:
可能我表达的不够清楚,我是想为一个没有系统托盘的桌面提供托盘这个功能,不是为托盘上加上一个icon。

看看
lxde的lxpanel源码
gtk的gtkstatusicon实现方法
freedesktop的说明书:
http://www.freedesktop.org/wiki/Standar ... mtray-spec
给出了System Tray Protocol Specification的0.1,0.2版自己看看啊!
祝你好运!


_________________
blog:http://wkt55555.blog.163.com/


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-22 18:57 

注册: 2007-10-27 19:32
帖子: 31
送出感谢: 0 次
接收感谢: 0 次
在x11环境里查 xembed协议的spec

http://standards.freedesktop.org/xembed ... c-0.5.html

对应GtkSocket/GtkPlug


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 想实现系统托盘(System tray),有什么可以参考的资料吗?
帖子发表于 : 2009-10-23 15:48 

注册: 2008-10-16 16:54
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
用python的库
Py_Initialize();

PyRun_SimpleString("import pynotify\n"

"pynotify.init('my own')\n"
"n=pynotify.Notification('my','mynotify')\n"
"n.show()\n");

Py_Finalize();


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译