【问题标题】:SWT TrayItem locationSWT TrayItem 位置
【发布时间】:2009-12-25 10:23:38
【问题描述】:

我使用 SWT + JFace 并希望在托盘图标附近显示我的应用程序窗口,例如 ToolTip。

有没有办法获取 TrayItem 的位置?

【问题讨论】:

    标签: swt


    【解决方案1】:

    没有平台无关的方式来执行此 AFAIK。如果您真的需要它,您可能需要根据您的 GTK 示例对底层 SWT 平台 API 进行编码。我这样做的一种可以在任何地方构建/运行的方法是使用反射来根据 SWT.getPlatform () 返回的内容调用方法。

    如果窗口是鼠标触发的(例如通过悬停),您可以考虑使用鼠标位置作为悬停的基本位置。

    【讨论】:

      【解决方案2】:

      这个我没试过,但是既然TrayItem扩展了Item,这是Widget的一个实例,为什么不试试这个:

      Tray tray = display.getSystemTray();
      TrayItem trayItem = new TrayItem(tray, SWT.NONE);
      Rectangle bounds = trayItem.getDisplay().getBounds();
      

      【讨论】:

      • 你好,保罗。谢谢你的回答!但是我尝试了一下,似乎对于托盘项目它不起作用。我找到了下一个解决方案(但它取决于平台): int itemHandle = trayItem.handle; GdkRectangle areaRectangle = new GdkRectangle(); OS.gtk_status_icon_get_geometry(itemHandle, 0, areaRectangle, 0); windowX = areaRectangle.x; windowY = areaRectangle.y;此致!亚历克斯
      猜你喜欢
      • 2011-09-21
      • 2011-01-01
      • 1970-01-01
      • 2020-11-05
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多