标签: tray

Tkinter:如何制作系统托盘应用程序?

我有一个小应用程序.我希望我的目标用户(Windows,Linux)能够从系统托盘启动和退出应用程序.我打算使用Tkinter,因为它占地面积小,但我不知道如何实现它.

tkinter可以做到这一点,还是有更好的选择.我需要一个不会将我的1MB程序更改为5MB程序的GUI库.

请样品代码将不胜感激

谢谢

python user-interface system tkinter tray

8
推荐指数
1
解决办法
9093
查看次数

为什么我的图标在带有TTrayIcon的托盘栏上很难看?

我最近在Delphi 2007中发现了TTrayIcon组件.使用的代码非常简单.

procedure TForm1.FormCreate(Sender: TObject);
begin
 AppTrayIcon := TTrayIcon.Create(nil);
 AppTrayIcon.OnDblClick := OnAppTrayIconDblClick;
 Application.OnMinimize := OnApplicationMinimize;
 Application.OnRestore := OnApplicationRestore;
end;

procedure TForm1.OnApplicationRestore(Sender: TObject);
begin
 AppTrayIcon.Visible := False;
 ShowWindow(Application.Handle, SW_SHOW);
 Application.BringToFront;
end;

procedure TForm1.OnApplicationMinimize(Sender: TObject);
begin
 AppTrayIcon.Visible := True;
 ShowWindow(Application.Handle, SW_HIDE);
end;

procedure TForm1.OnAppTrayIconDblClick(Sender: TObject);
begin
 Application.Restore;
end;
Run Code Online (Sandbox Code Playgroud)

由于没有分配图标,Delphi使用Application.Icon,即图标:http://artbyloveland.com/icon.ico此图标包括以下尺寸:64x64,48x48,32x32,24x24和16x16.

现在,在我的Windows Vista上,一切都很好.

在像Windows Server 2003这样的非主题Windows上,结果全部搞砸了:

搞砸了图标

编辑: 起初,我认为这是因为alpha通道.所以我尝试在不使用alpha通道的情况下制作ico文件的版本.我也按照Ken的建议尝试了GreenFish Icon Editor; 我选择了每种颜色深度和每种尺寸.在这两种情况下,最终结果都更好.但是,ico文件中根本不存在黑色笔划.

搞砸了图标2

delphi alpha blur tray

8
推荐指数
2
解决办法
1312
查看次数

使用WPF管理工具的Windows服务

我正在尝试使用C#在.net中创建一个在用户登录之前运行的Windows服务...然后当用户登录时,符号应出现在系统托盘中(时钟旁边)以显示用户服务正在运行..通过双击该符号,应该向用户显示配置实用程序(用wpf编写),这样他就可以配置服务,从中读取数据等等.

是否有可能在一个应用程序中执行此操作?

在此先感谢任何帮助!

windows wpf service system tray

6
推荐指数
1
解决办法
1432
查看次数

如何使用电子获得完美尺寸的托盘图标?

我试过 32x32、64x64,我试过使用 Photoshop 将另一个应用程序的图标编辑到我的图标中以保持其大小,但它从来不适合我。似乎我的图标是双倍大小的,我无法看到整个图标。

这是图标:

图标

macos tray electron electron-vue

6
推荐指数
3
解决办法
5127
查看次数

使用pygtk的简单托盘图标应用程序

我正在python中编写一个webmail检查器,我希望它只是坐在托盘图标上,并在有新电子邮件时发出警告.至于gtk代码,有人能指出我正确的方向吗?

我已经编码了检查新电子邮件所需的位,但它现在是CLI.

python trayicon pygtk tray

5
推荐指数
1
解决办法
3953
查看次数

C#靠近托盘(如msn messenger)

我有#.net应用程序.所以我创建了一个位于托盘中的notifyIcon.我想要做的是当用户点击表单上的"x"按钮时,我希望它靠近托盘.他们应该只能使用托盘图标中的上下文菜单退出程序.

所以我所做的是,在表单关闭事件中,我检查表单是否可见.如果它的可见的,我把它设置为不可见,并设置showInTaskbar为假(模拟最小化到托盘),如果表单是不可见已经,那么他们可能从托盘关闭,所以我将退出在这种情况下的程序.

不过,我的问题是,如果窗口是可见的,但他们右键单击托盘图标,并创下出口的上下文菜单上,我需要退出程序,而不是减少.

我该如何解决这个问题?

c# minimize tray

5
推荐指数
1
解决办法
2546
查看次数

C++ MFC 如何将应用程序发送到托盘

我编写了一个小应用程序,它在后台执行一些操作。

因为它不需要用户的注意,我想将应用程序发送到系统托盘中,当有人单击它时,窗口应该再次弹出。

问题是,我编写了一个 MFC 程序(对话框),它可以完成我想要它做的所有事情。现在我需要找到一种方法将其发送到托盘中。

类型:MFC(对话框窗口) 语言:C++ IDE:Visual Studio 2012

你对我如何做到这一点有什么想法吗?或者你知道一个不错的教程或我需要的函数/类吗?

我已经在 codeprojects.com 和 google 上搜索过,但似乎没有太多相关内容。谢谢。

编辑1:

我尝试过这样的事情:

HWND hMainWindow = this->GetSafeHwnd();
HICON hProgramIcon = this->GetIcon(false);
char szTip[16] = "Tracker"; 
nidTrayIcon.cbSize = sizeof(nidTrayIcon); 
nidTrayIcon.hIcon = hProgramIcon; 
nidTrayIcon.hWnd = hMainWindow; 
nidTrayIcon.uCallbackMessage = (WM_USER + 1); 
nidTrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nidTrayIcon.uID = 0x0200; 
strcpy_s((char*)nidTrayIcon.szTip,16, szTip2);
nidTrayIcon.szTip[strlen(szTip)] = '\0'; 
Shell_NotifyIcon(NIM_ADD, &nidTrayIcon);
Run Code Online (Sandbox Code Playgroud)

如果我运行此代码,我的应用程序将关闭并显示代码“0x03”(找不到路径...)

编辑2:

this->ShowWindow(SW_HIDE);
Run Code Online (Sandbox Code Playgroud)

也不起作用。同样的问题。

c++ mfc background dialog tray

5
推荐指数
1
解决办法
6752
查看次数

如何将托盘设置在 xmonad 的所有工作区中?

我正在尝试将托盘添加到我的 xmonad 和 xmobar 桌面设置中。

这是我.xinitrc之前添加的exec xmonad

trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --width 18 --height 22 --transparent true --tint 0x000000 &
Run Code Online (Sandbox Code Playgroud)

有了它,我只能在第一个工作区看到它,并且默认情况下它是选中的。

我曾经试图忽略它

          ,[ className =? "Trayer" --> doIgnore]
          ,[ resource  =? "trayer" --> doIgnore]
Run Code Online (Sandbox Code Playgroud)

但这毫无意义,在第一个工作区仍然选择了托盘(我看到了选择边框)......

这是我目前的xmonad.hshttps : //github.com/Heather/xmonad/blob/master/xmonad.hs

xmonad 版本是 0.11

haskell xmonad tray

5
推荐指数
1
解决办法
2759
查看次数

在左侧打开应用程序窗口,单击 Ubuntu 18 / Gnome

使用 Gnome 安装了全新的 Ubuntu 18.04,然后安装了 Skype 和 Slack。现在在我的系统托盘(通知区域,应用程序列表,...)我有这个正在运行的应用程序的图标。当我单击应用程序图标时,我看到的是上下文菜单而不是应用程序窗口。如何在不将 Gnome 更改为 metacity/classic 等的情况下返回旧行为(打开应用程序而不是上下文菜单)?是否可以使用 gnome 调整工具?

ubuntu menu tray

5
推荐指数
0
解决办法
164
查看次数

是否可以使用node-webkit创建后台应用程序?

我想创建一个完整的后台运行应用程序,它只显示在系统托盘中,并且没有任何"窗口".我尝试将"window"属性设置为false,但这不起作用.有没有办法使用node-webkit创建一个完全后台守护进程风格的应用程序?

tray background-process node-webkit

4
推荐指数
2
解决办法
3411
查看次数