2

GTKAda を使用してティアオフ メニューを作成する方法を教えてください。私はそれを機能させることはできません。

ありがとう。

4

2 に答える 2

2

質問にコードを追加すると、より説明的になります。

GTKAda でティアオフ メニューを使用する方法を示すコードを少し書きました。それほど難しくはありませんが、それに関するドキュメントを見つけるのは難しいかもしれません。

function CreateFileMenu(tearOff : boolean) return Gtk_Menu is
    fileMenu : Gtk_Menu;
    newFile, loadFile, saveFile, saveAs, close : Gtk_Menu_Item;
begin
    --  Create the menu:
    Gtk_New(fileMenu);

    --  Add the tear off item to the menu if required:
    if tearOff then
        declare
           tear : Gtk_Tearoff_Menu_Item;
        begin
           Gtk_New(tear);
           Append fileMenu, tear);
           Show(tear);
        end;
    end if;

    --  Create the rest of the menu items:
    Gtk_New_With_Mnemonic(newFile, "_New");
    Gtk_New_With_Mnemonic(loadFile, "_Load");
    Gtk_New_With_Mnemonic(saveFile, "_Save");
    Gtk_New_With_Mnemonic(saveAs, "Save _as...");
    Gtk_New_With_Mnemonic(close, "_Close");

    --  Add the items to the menu:
    Add(fileMenu, newFile);
    Add(fileMenu, loadFile);
    Add(fileMenu, saveFile);
    Add(fileMenu, saveAs);
    Add(fileMenu, close);

    return fileMenu;
 end CreateFileMenu;

このdeclare/begin/end構造により、実行時に変数を宣言できます。

パラメータを使用すると、boolean作成時にティアオフ メニューにするかどうかを決定できます。この関数はメニューを作成するだけなので、(たとえば) 後でメニュー バーに追加する必要があります。

于 2009-09-07T12:17:39.123 に答える
1

これがあなたが探しているものかどうかはわかりませんが、GtkAda のリファレンス マニュアルに次のように書かれています。

GtkAda のすべてのメニューは「ティアオフ」メニューにすることができます。つまり、それらを親 (メニューバーまたは別のメニュー) から切り離して、常に画面に表示しておくことができます)。

そのため、何もする必要がないかのように聞こえます。

于 2009-09-07T10:57:56.597 に答える