1

私はEclipse RCPアプリケーションに取り組んでいます。今日、コンテキスト メニューで画像を表示する際に問題が発生しました。私がやりたかったのは、ユーザーの評価を表す星の画像を含む列をテーブルに追加することです。Windows では、星の画像がセル全体に拡大されるのではなく、表のセルの左隅に押し付けられるため、これによりいくつかの問題が発生しますが、何とか解決します。さらに、テーブルにはコンテキスト メニューがあり、"rate" というエントリがあり、ここでも 1 から 5 (評価レベルを表す) までのさまざまな星が表示され、ユーザーはそれをクリックしてさまざまな評価を選択できます。これは Windows では問題なく動作します。ここで、Linux (Ubuntu) に切り替えて、そこでどのように機能するかを確認しました。奇妙なことに、テーブル セルの星は完全に配置されています。 表のセル内の評価は機能します http://img187.imageshack.us/img187/4427/starsratingho4.png

星の画像が表示されない http://img514.imageshack.us/img514/8673/contextmenuproblemgt1.png

コンテキスト メニューで、星の画像の画像記述子を設定するアクション クラスを使用しています。

public class RateAction extends Action {

private final int fRating;

private IStructuredSelection fSelection;



public RateAction(int rating, IStructuredSelection selection) {

    super("", AS_CHECK_BOX);

    fRating = rating;

    fSelection = selection;



    setImageDescriptor(createImageDescriptor());

}


/**
 * Creates the correct ImageDescriptor depending on the given rating
 * @return
 */
private ImageDescriptor createImageDescriptor() {
    ImageDescriptor imgDescriptor = null;
    switch (fRating) {
    case 0:
        return OwlUI.NEWS_STARON_0;
    case 1:
        return OwlUI.NEWS_STARON_1;
    case 2:
        return OwlUI.NEWS_STARON_2;
    case 3:
        return OwlUI.NEWS_STARON_3;
    case 4:
        return OwlUI.NEWS_STARON_4;
    case 5:
        return OwlUI.NEWS_STARON_5;

    default:
        break;
    }

    return imgDescriptor;
}

/*
 * @see org.eclipse.jface.action.Action#getText()
 */
@Override
public String getText() {
    //return no text, since the images of the stars will be displayed
    return "";
}

   ...

}

なぜこの奇妙な振る舞いが現れるのか誰か知っていますか?

どうもありがとう。

(奇妙な理由で、画像は表示されません。ここに直接の URL があります: http://img187.imageshack.us/img187/4427/starsratingho4.png http://img514.imageshack.us/img514/8673/ contextmenuproblemgt1.png )

//編集: いくつか試してみましたが、コンテキスト メニューにチェックボックス スタイルを使用すると画像が表示されないようです (RateAction のコンストラクターを参照)。PushButton スタイルに切り替えたとき、画像は表示されましたが、正しくスケーリングされていませんでしたが、少なくとも表示されました。

4

3 に答える 3

1

SWT 画像が表示されないのは、次の理由によるものです。

  • 画像のファイル名には大文字を使用しましたが、ソース コードでは大文字を使用しませんでした。Linux ではなく、Windows で動作します。
  • サポートされる前に、SWT の x64 バージョンを実行しようとしました。
  • VNCを使用しました。うまくいかない理由がわからない、色深度の問題?
  • Ubuntuを使用しました。イメージは Red Hat で問題なく表示されます。

これが役に立つかどうかはわかりませんが、どこを見ればよいかのヒントになるかもしれません。

于 2008-12-31T09:18:50.107 に答える
0

おそらくこれは単なるバグであり、その場合、あなたの質問に対する本当の答えはありません.

誰かがEclipse Bugzillaで以前に同様の問題を抱えていないか調べてください

それ以外の場合は、Windows では機能するが Linux では機能しない (またはその逆の) テスト ケースをできるだけ小さくして、新しいバグを提出してください。

于 2008-12-30T09:58:04.443 に答える
0

Gnome 設定のメニューでアイコンを有効にできます。

  • ターミナルを開く
  • gnome-appearance-properties を実行します
  • インターフェースタブを選択
  • [メニューにアイコンを表示する]チェック ボックスを有効にする

RCP メニューにアイコンが表示されるようになりました。

詳細については、この Eclipse Bug を参照してください: Bug 293720 - [GTK2.18] Menu icons missing

于 2010-07-29T09:52:32.930 に答える