【问题标题】:How to create a tearoff menu using GTKAda?如何使用 GTKAda 创建撕下菜单?
【发布时间】:2009-09-07 10:55:27
【问题描述】:

问题不言自明,如何使用 GTKAda 创建可撕下的菜单?我不能让它工作。

谢谢。

【问题讨论】:

    标签: menu gtk ada


    【解决方案1】:

    如果您将代码添加到您的问题中,它会更具描述性。

    我已经编写了一些代码来演示使用 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 参数允许您在创建它时决定是否希望它是一个可撕下的菜单。该函数只是创建菜单,因此您必须稍后将其添加到菜单栏(例如)。

    【讨论】:

      【解决方案2】:

      不确定这是否是您要找的,但 GtkAda 参考手册says

      GtkAda 中的所有菜单都可以是“Tear off”菜单,即您可以将它们与其父级(菜单栏或另一个菜单)分离,以使它们始终在屏幕上可见)。

      所以听起来好像你不需要做任何事情。

      【讨论】:

      • 是的,但它们不是撕下菜单,撕下菜单是一种可以将自己与菜单栏分开并始终保持可见的菜单。
      • 感谢您的评论,我会继续关注。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多