SysTray

  1 //SysTray.cpp
  2
  3
  4 #include "vcf/ApplicationKit/ApplicationKit.h"
  5 #include "vcf/ApplicationKit/SystemTray.h"
  6 #include "vcf/ApplicationKit/DefaultMenuItem.h"
  7
  8 /**
  9 This is a simple example that demonstrates how to use the SystemTray component
 10 */
 11
 12 using namespace VCF;
 13
 14
 15
 16 class SysTrayWindow : public Window {
 17 public:
 18     SysTrayWindow() {
 19         setCaption( "SysTray" );
 20
 21         /**
 22         Create a new system tray. Passing a pointer to the
 23         "owner" (in this case the window itself) will automatically
 24         cause the new child component, the system tray, to be added
 25         to it‘s owner. When the owner is destroy, so will any children
 26         of the owner.
 27         */
 28         SystemTray* tray = new SystemTray(this);
 29
 30         /**
 31         Make the tray icon area visible
 32         */
 33         tray->showInTray();
 34
 35
 36         /**
 37         Create a new image on the fly, and add it to the tray
 38         */
 39         Image* img = GraphicsToolkit::createImage( 32, 32 );
 40         img->beginDrawing();
 41         GraphicsContext* gc = img->getImageContext();
 42         gc->rectangle( 0, 0, 32, 32 );
 43         gc->setColor( Color::getColor( "red" ) );
 44         gc->fillPath();
 45
 46         gc->circle( 16,16, 5 );
 47         gc->circle( 10,10, 5 );
 48         gc->circle( 20,15, 5 );
 49
 50         gc->setColor( Color::getColor( "blue" ) );
 51         gc->fillPath();
 52
 53
 54
 55         img->finishedDrawing();
 56
 57         /**
 58         Make the image transparent
 59         */
 60
 61         img->setIsTransparent( true );
 62         /**
 63         Sets the transparency color
 64         */
 65         img->setTransparencyColor( Color::getColor( "red" ) );
 66
 67         /**
 68         Set the image for the tray‘s icon.
 69         */
 70         tray->setIconImage( img );
 71
 72
 73         /**
 74         We are done with the image so delete it!
 75         */
 76         delete img;
 77
 78         /**
 79         Set the tooltip popup for the system tray icon
 80         */
 81         tray->setTooltipText( "Hello There!" );
 82
 83
 84
 85
 86         /**
 87         Create a popup menu with three items and attach event
 88         handlers to them
 89         */
 90
 91         PopupMenu* pm = new PopupMenu(this);
 92         MenuItem* root = pm->getRootMenuItem(); // new DefaultMenuItem( "root", NULL, pm );
 93
 94         DefaultMenuItem* hello = new DefaultMenuItem( "Hello!", root, pm );
 95         hello->MenuItemClicked += new ClassProcedure1<Event*,SysTrayWindow>(this,&SysTrayWindow::onHello,"SysTrayWindow::onHello");
 96
 97         DefaultMenuItem* about = new DefaultMenuItem( "About...", root, pm );
 98         about->MenuItemClicked += new ClassProcedure1<Event*,SysTrayWindow>(this,&SysTrayWindow::onAbout,"SysTrayWindow::onAbout");
 99
100         DefaultMenuItem* quit = new DefaultMenuItem( "Quit", root, pm );
101         quit->MenuItemClicked += new ClassProcedure1<Event*,SysTrayWindow>(this,&SysTrayWindow::onQuit,"SysTrayWindow::onQuit");
102
103         /**
104         Set the tray icon‘s popup menu
105         */
106         tray->setPopupMenu( pm );
107     }
108
109     virtual ~SysTrayWindow(){};
110
111     void onHello( Event* e ) {
112         Dialog::showMessage( "Hello There!" );
113     }
114
115     void onQuit( Event* e ) {
116         close();
117     }
118
119     void onAbout( Event* e ) {
120         Dialog::showMessage( "Simple application that demonstrates\nhow to use the system tray." );
121     }
122
123 };
124
125
126
127
128 class SysTrayApplication : public Application {
129 public:
130
131     SysTrayApplication( int argc, char** argv ) : Application(argc, argv) {
132
133     }
134
135     virtual bool initRunningApplication(){
136         bool result = Application::initRunningApplication();
137
138         Window* mainWindow = new SysTrayWindow();
139         setMainWindow(mainWindow);
140         mainWindow->setBounds( &Rect( 100.0, 100.0, 500.0, 500.0 ) );
141         mainWindow->show();
142
143         return result;
144     }
145
146 };
147
148
149 int main(int argc, char *argv[])
150 {
151     Application* app = new SysTrayApplication( argc, argv );
152
153     Application::main();
154
155     return 0;
156 }
时间: 2025-01-31 00:39:03

SysTray的相关文章

Ubuntu:如何显示系统托盘图标(systray)

1. 问题说明 Ubuntu 11版本开始,默认关闭了托盘图标的显示,需要手动执行命令或额外工具配置,添加到白名单.Ubuntu 13.04更彻底,默认配置根本没有托盘图标,除了java和wine等几个系统自带的程序可以显示,其它任何应用程序都不能显示,以前的命令也不支持了,例如QQ也显示不了了. Ubuntu 14.04 取消了系统托盘白名单机制,导致使用传统系统托盘技术的程序无法显示出托盘图标,dconf-editor也无力解决这个问题.Ubuntu Unity桌面目前使用的技术是indic

Linux下Nagios的安装与配置[转]

一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒

什么是CMD

cmd是command的缩写.命令提示符是在操作系统中,提示进行命令输入的一种工作提示符.在不同的操作系统环境下,命令提示符各不相同. 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统.输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会在30秒后关机.总之,它非常有用.打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.exe 回车.它也可以执

system32下 exe文件作用

system32下EXE文件的作用说明 A accwiz.exe 辅助功能向导 ahui.exe 应用程序兼容用户界面 alg.exe 为 Internet 连接共享和 Internet 连接防火墙提供第三方协议插件的支持 append.exe 打开指定文件夹中的数据文件 arp.exe 显示和修改“地址解析协议”(ARP) 所使用的到以太网的 IP 或令牌环物理地址翻译表 asr_fmt.exe 自动恢复系统 asr_ldm.exe 逻辑磁盘管理器ASR功能 asr_pfu.exe 自动系统恢

Delphi 全面控制Windows任务栏

核心提示:使用Windows95/NT/98操作系统的用户知道:Windows正常启动后,在电脑屏幕下方出现一块 任务栏. 使用Windows95/NT/98操作系统的用户知道:Windows正常启动后,在电脑屏幕下方出现一块 任务栏.从系统功能角度而言,整个任务栏包括几个不同的子区域,从左至右依次是:开始 按钮.应用程序切换区(Application Switch Bar).任务栏通知区(Notification Area)以 及任务栏时钟.与其它Windows应用程序相同,任务栏程序(sys

盘点那些快速打开windows程序的快捷键

很多时候,快捷键带给我们的不仅仅是快速,还能带给我们一种心灵上的满足感.试想一下,别人都在中规中矩的用鼠标点,一步步慢慢调出所需要程序,而你却可以直接通过一个快捷键就完成了,是不是感觉特别有成就呢?今天就给大家整理了打开windows程序的常用快捷命令,windows系统拥护者的朋友们赶紧来转走收藏吧. 注:开始菜单中的"运行"是通向程序的快捷途径,输入特定的命令后,即可快速的打开Windows的大部分程序. winver检查Windows版本 wmimgmt.msc 打开Window

nagios监控windows主机

一,编辑Nagios的主配置文件vi /usr/local/nagios/etc/nagios.cfg把下面这行最前面的#号去掉:#cfg_file=/usr/local/nagios/etc/objects/windows.cfg保存配置文件并退出.二,安装Windows代理程序  NSClient++外部构件1.从http://sourceforge.net/projects/nscplus站点下载最新稳定版的NSClient++软件包:2.解压软件包到一个目录下,如C:\\\\\\\\NS

windows 10 系统服务列表

名称 状态 启动类型 登录为 描述ActiveX Installer (AxInstSV) 手动 本地系统 为从 Internet 安装 ActiveX 控件提供用户帐户控制验证,并基于组策略设置启用对 ActiveX 控件安装的管理.此服务根据要求启动,是否禁用 ActiveX 控件的安装取决于默认浏览器设置.AllJoyn Router Service 手动(触发器启动) 本地服务 路由本地 AllJoyn 客户端的 AllJoyn 消息.如果停止此服务,则自身没有捆绑路由器的 AllJoy

Qt系统托盘

Qt的系统托盘的使用,可比mfc中好多了!他封装了一个专门的QSystemTrayIcon类,建立系统托盘图标.其实在Qt提供的示例程序已经很不错了,$QTDIR\examples\desktop\systray在这里简单的实现一个系统托盘功能,对其系统托盘类的使用做以演示. #include <QtGui>class Window: public QWidget{    Q_OBJECT        public:    Window(); private:    void showMes