问题:
我试着解释我在使用 Eclipse 时遇到的问题:嗯,如我所附的屏幕截图所示,所有图标似乎都已启用。但通常有些图标是禁用的。例如:当调试器正在运行时,您无法按下恢复按钮,但恢复按钮和停止按钮看起来像是已启用的按钮。然而,其中只有一个是可点击的。
因此,总而言之,图标背后的 Eclipse 逻辑是可行的,但是当按钮被禁用(不可点击)时,Eclipse 不会改变按钮的视觉样式。
问题:
有人知道如何强制 Eclipse 在按钮被禁用时显示禁用的图标,以及在按钮被启用时显示启用的图标吗?
更多信息:
- Eclipse 版本:Eclipse Neon
- Ubuntu 版本:Ubuntu 16.04 LTS
- Java 版本:Java 8(openjdk)
我已经尝试做的事情:
我尝试使用 Eclipse Mars。但它的行为与 Neon 相同。
我尝试使用 Eclipse Luna。效果很好。所有可用的按钮都变灰了。
我向 eclipse 报告了这个错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=501878
答案1
该问题是由于在较新的 ubuntu 版本中使用带有 SWT 程序的 GTK3 引起的。
您可以在 .profile 中设置一个标志,以使 Eclipse 等 SWT 程序暂时使用 GTK2。
- 打开
.profile
位于主文件夹中的文件。 - 添加
export SWT_GTK3=0
到文件末尾。
您的文件现在应该看起来类似于此(这实际上是我的 .profile 文件):
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
### User changes
# disable GTK3 for Eclipse and other SWT programs.
export SWT_GTK3=0
# disable overlay scrollbars globally for this user.
export GTK_OVERLAY_SCROLLING=0
- 保存存档。
- 注销当前用户并重新登录。
如果您现在启动 Eclipse,您会看到禁用的图标呈灰色。
祝您编码愉快。