Tag: swt

调试SWT应用程序会导致所有GTK应用程序冻结

我有一个SWT应用程序,我在eclipse中通过远程调试进行调试。 如果我在SWT应用程序的事件处理程序中设置断点,那么我的桌面会冻结。 我仍然可以通过Strg + Alt + Fx切换到文本控制台。 如果我从控制台中杀死SWT应用程序,一切都会继续工作。 因为这只发生在断点位于事件处理程序中时,我非常怀疑SWT在事件循环中阻塞导致所有内容都冻结。 我的猜测是,SWT有一些神奇的参数来“分离”应用程序,所以我可以正常调试,但我找不到它。

SWT:获得系统设备更改通知(USB设备连接/断开连接)

我正在编写一个SWT应用程序,它需要放在系统托盘中,并在用户连接某个USB设备时自动弹出(该应用程序用作其控制面板)。 在本机环境中执行此操作的方法(在这种情况下为win32,但我最终应该与平台无关)是监听WM_DEVICECHANGE事件,然后检查我的设备是否已断开连接。 谷歌搜索主题,似乎SWT实际上并没有处理这种类型的事件。 有没有人知道如何实现这一目标? 我的后备解决方案是每隔n秒对USB端口进行采样,寻找设备,但就我而言,这是一个禁止解决的问题…… 谢谢和欢呼 夏嘉曦

使用Maven构建多个体系结构SWT应用程序

我为SWT应用程序设置了一个Maven项目。 此应用程序在多个平台(OS X,Windows 64位,Windows 32位,Linux 64位和Linux 32位)上运行,我已对其进行设置,以便在运行Maven并打包时检测到该平台应用程序转到不同的目标目录。 以下是来自pom.xml的相关部分,以实现此目的: linux_x86_64 linux amd64 ${project.basedir}/target/${project.version}/linux_x86_64 win32_x86_64 linux i386 ${project.basedir}/target/${project.version}/win32_x86_64 … 用于SWT的依赖是这样的: org.eclipse swt 3.7.2.v3740 … 为了清楚起见,我在本地存储库中安装了SWT虚拟包(org.eclipse.swt_3.7.2.v3740f.jar)和所有特定于平台的虚拟包(org.eclipse.swt.gtk.linux.x86_64_3.7.2) .v3740f,org.eclipse.swt.win32.x86_64_3.7.2.v3740f等)。 我打包依赖关系的方式是使用maven-dependency-plugin的“lib”文件夹,Maven足够聪明,可以复制SWT虚拟包和我正在打包应用程序的平台特定的一个。 到现在为止还挺好… 问题是我想从一台机器编译不同平台的应用程序。 我怎么做到这一点? 我已尝试在每个配置文件中使用每个平台所需的SWT jar设置属性,如下所示(Windows 64位示例): swt.win32.x86_64 3.7.2 但是采用这种方法,特定于配置文件的SWT jar 和我正在运行Maven的特定于平台的jar被复制到“lib”目录中,最后得到三个jar: SWT-3.7.2.v3740.jar swt.gtk.linux.x86_64-3.7.2.jar swt.win32.x86_64-3.7.2.jar 有没有一种方法可以指定一个配置文件忽略我正在运行它的机器,这样我就不需要手动删除它的SWT jar了? 提前致谢。

SWT / JFace还是Eclipse RCP?

选择Eclipse Rich Client Platform作为我的应用程序的基础的原因是什么,而不仅仅是使用SWT / JFace?

用于SWT / AWT的图形可视化库

是否存在用于SWT或AWT的成熟,可靠的开源图形可视化库实现(我指的是与边缘连接的顶点集合,而不是图表和图表)? 你使用/推荐哪一个? 我看到了Zest for SWT,但找不到它的Maven资源库。 谢谢。

我可以组合SWT GridLayout和FillLayout

我有一个RCP / SWT应用程序,我正在尝试用现有的复合材料构建一个视图。 一个是FillLayout复合,另一个是GridLayout。 我想最终得到一个视图,其中GridLayout复合材料排列在FillLayout复合材料的左侧(想想垂直横幅),大约是整个视图宽度的10%,现有的FillLayout复合材料包含其他90%。 我不确定在SWT中是否可以组合布局,但我想的是像GridLayout这样的两列。 第一列包含GridLayout小部件,第二列包含FillLayout组合。 这可以在SWT中完成吗? 如果是这样,这看起来像代码? 谢谢-

具有可变行高的SWT表:在Linux上运行,但不在Mac / Windows上运行

问题:我需要一个具有可变行高的SWT表(JFace TableViewer)。 事实上,我在我的开发机器(运行Ubuntu 10.10)上解决了这个问题。 不幸的是,这在Windows和Mac上都不起作用。 最初,我以为我没有正确使用这些库。 但到现在为止,我担心我想做的事情在Windows上根本不可能。 我希望有人能说服我。 重现:我没有在这里提供我的代码,而是构建了一个重现问题的最小程序。 我从下面的Snipplet开始: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/examples/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/ Snippet049StyledCellLabelProvider.java 我修改了update()方法,为目录生成两行文本,为文件生成一行(模拟具有可变行高的环境): … if(file.isDirectory()){ cell.setText(styledString.toString()+“\ n” + styledString.toString()); cell.setImage(IMAGE1); } else { cell.setImage(IMAGE2); } … 这在Linux上可以正常工作,但在Windows上,所有行都具有相同的高度。 具体来说,只能看到一行。 接下来,我试图通过使measure()更加智能来帮助SWT。 所以我重写了这样的measure(): protected void measure(事件事件,对象元素){ if(((File)element).isDirectory()){ event.height = 32; } else { event.height = 16; } super.measure(事件,元素); } 结果:所有行都具有高度32.同样,这在Linux上按预期工作。 我担心,在Windows上,所有行的高度必须相同。 这对我来说是一个噱头。 任何人都能证实这一点,甚至更好,提供一种解决方法吗? 谢谢!

SWT按钮下拉控制

是否有一个标准的SWT控件类似于一个按钮 ,它显示一个箭头并在按下时打开一个下拉菜单 ,而不是一个仅限工具栏的控件 ? 它会是这样的: 它类似于combobox控件,除了“按钮”区域与实际按钮的行为更相似 – 它的文本不会根据您的选择而改变,单击时会显示为按下,并且项目将用于操作或导航目的而不是选择。 它也类似于可用于工具栏的控件,但我需要在常规复合材料上使用它。 这几乎可以通过使用常规按钮和弹出菜单控件来实现 – 但是,我不相信我可以通过这种方式在按钮上的文本旁边显示箭头。 无论如何,由于这种控制看起来相当普遍,我假设有一种标准方法可以将这两种东西用作一种。

如何将图标作为类路径资源添加到使用WindowBuilder创建的SWT窗口中?

我正在尝试将* .ico文件中的外部图标添加到我正在使用WindowBuilder设计窗口创建的窗口中。 我可以选择shell,它会显示一个“图像”属性字段。 这会打开图像选择器对话框: 如何使我的图标在此菜单中显示为类路径资源? 如果给出了绝对路径,则图像有效,但我不想在我的应用程序中使用该选项。 谢谢!

使用SWT显示父模式对话框

AWT / Swing允许显示应用程序模式(阻止整个应用程序)和父模式(仅阻止父项)对话框。 如何通过SWT实现同样的目标?