menu toolbar

Fragment中Toolbar的Menu创建过程 Fragment中使用Toolbar的menu创建过程简析。 阅读详情

 给菜单加热键的函数:gtk_widget_add_accelerator()
/*
 * Build menubar
*/
static GtkWidget *
build_menubar(GtkWidget *window, AppUIData * app_ui_data)
{
    GtkWidget* menubar;  
    GtkWidget* filemenu;  
    GtkWidget* editmenu;  
    GtkWidget* helpmenu;  
    GtkWidget* rootmenu;  
    GtkWidget* menuitem;  
    GtkAccelGroup* accel_group;   



    accel_group = gtk_accel_group_new();  
    gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);  

    menubar = gtk_menu_bar_new();  
    //文件  
    rootmenu = gtk_menu_item_new_with_mnemonic("_File");  

    filemenu = gtk_menu_new();  
    //open
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, accel_group);  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_document_open), app_ui_data);  

    //save
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_SAVE, accel_group);  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_document_save), app_ui_data);  

    //separator  
    menuitem = gtk_separator_menu_item_new();  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    
    //recent open
        const gchar *exts[] = { PDFV_FILE_EXTENSION_DOT, NULL };
    menuitem =
    comapp_recent_new("osso_pdf_viewer", "application/pdf", exts,
        TRUE);
    app_ui_data->recent_menu = menuitem;
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "recent_selected",
        G_CALLBACK(on_recent_item_cb), app_ui_data);
    //separator  
    menuitem = gtk_separator_menu_item_new();  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);

    //exit  
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, accel_group);  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_close), app_ui_data);  
    //  
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu), filemenu);  
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), rootmenu);

    //view   
    rootmenu = gtk_menu_item_new_with_mnemonic("_view");  

    filemenu = gtk_menu_new();  
    //zoom in
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_IN, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_i, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_screen_zoom_in), app_ui_data);  
    //zoom out
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_screen_zoom_out), app_ui_data);      

    //separator  
    menuitem = gtk_separator_menu_item_new();  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);
    
    //zoom page
//    menuitem = gtk_image_menu_item_new_with_label("Zoom Page");  
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_FIT, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_f, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_screen_zoom_page), app_ui_data);      

    //zoom width
    menuitem = gtk_image_menu_item_new_with_label("Fit Width");  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_w, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_screen_zoom_width), app_ui_data);

    //separator  
    menuitem = gtk_separator_menu_item_new();  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    //fullscreen  
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_FULLSCREEN, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_F11, 0, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_screen_full_screen), app_ui_data);  
    //  
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu), filemenu);  
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), rootmenu);  

    //GO  
    rootmenu = gtk_menu_item_new_with_mnemonic("_Go");  

    filemenu = gtk_menu_new();  
     //previous
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_BACK, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_Left, 0, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_page_previous), app_ui_data);

    //next
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_FORWARD, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_Right, 0, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_page_next), app_ui_data);      

    //separator  
    menuitem = gtk_separator_menu_item_new();  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);

    //first page
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_GOTO_FIRST, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_Home, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_page_first), app_ui_data);
    //last
    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_GOTO_LAST, accel_group);  
    gtk_widget_add_accelerator(menuitem, "activate", accel_group, GDK_End, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_page_last), app_ui_data);

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu), filemenu);  
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), rootmenu);

    //help
    rootmenu = gtk_menu_item_new_with_mnemonic("_Help");  

    filemenu = gtk_menu_new();  

    menuitem = gtk_image_menu_item_new_from_stock(GTK_STOCK_HELP, accel_group);  
    gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), menuitem);  
    g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(on_tools_help), app_ui_data);  

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(rootmenu), filemenu);  
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar), rootmenu);
    return menubar;
}
/**
    Builds main toolbar.
    Uses ui manager created toolbar as a basis and adds
    any custom widgets to it.

    AppUIData ui_manager needs to be initialized.
    
    @param ui_manager UI manager
    @param actions Initialized action group
    @return initialized toolbar if successfull; NULL otherwise
*/
static GtkToolbar *
build_toolbar(GtkActionGroup * actions, AppUIData * app_ui_data)
{
    GtkToolbar *toolbar = NULL;
    GtkToolItem *tool_item;
    GtkWidget *label, *image, *box;
    GtkWidget *button;
    GtkAction *action;
    gint i, nitems;

    /* Get toolbar widget from ui manager */
//    toolbar =
//        GTK_TOOLBAR(gtk_ui_manager_get_widget
//                    (app_ui_data->ui_manager, "/ToolBar"));

    toolbar = gtk_toolbar_new();
    image =  gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_SMALL_TOOLBAR );
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Open a pdf file", NULL, image, (GtkSignalFunc)on_document_open, app_ui_data);
    gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));


    image = gtk_image_new_from_stock(GTK_STOCK_GOTO_FIRST, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Go to first page", NULL, image, (GtkSignalFunc)on_page_first, app_ui_data);
    
    image = gtk_image_new_from_stock(GTK_STOCK_GO_BACK, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Open a pdf file", NULL, image, (GtkSignalFunc)on_page_previous, app_ui_data);



    /* Create "current page" widget */
    GtkWidget *entry = gtk_entry_new_with_max_length(6);
    gtk_entry_set_text(entry, "0");
    gtk_entry_set_alignment(GTK_ENTRY(entry), 1.0f);
    gtk_entry_set_width_chars(GTK_ENTRY(entry),6);
    gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), entry, NULL, NULL);
    g_signal_connect(G_OBJECT(entry), "activate", G_CALLBACK(on_page_switch_to), app_ui_data);

    app_ui_data->current_page = entry;
    /* Create "total pages" widget */
    tool_item = gtk_tool_item_new();
    label = gtk_label_new(NULL);
    gtk_container_add(GTK_CONTAINER(tool_item), label);
    gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), tool_item, NULL, NULL);
    app_ui_data->total_pages = label;
    gtk_label_set_width_chars(GTK_LABEL(label), 6);

    /* Set initial page numbers */
    ui_set_current_page(app_ui_data, PDF_PAGE_INIT);
    ui_set_total_pages(app_ui_data, PDF_PAGE_INIT);

    image = gtk_image_new_from_stock(GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Go to next page", NULL, image, (GtkSignalFunc)on_page_next, app_ui_data);
    
    image = gtk_image_new_from_stock(GTK_STOCK_GOTO_LAST, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Go to last page", NULL, image, (GtkSignalFunc)on_page_last, app_ui_data);

    gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));

    image = gtk_image_new_from_stock(GTK_STOCK_ZOOM_OUT, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Zoom in", NULL, image, (GtkSignalFunc)on_screen_zoom_out, app_ui_data);
    /* create Current Zoom widget */
    tool_item = gtk_tool_item_new();
    gtk_tool_item_set_homogeneous(tool_item, FALSE);
    gtk_tool_item_set_expand(tool_item, FALSE);
    box = gtk_hbox_new(FALSE, 0);
    label = gtk_label_new(NULL);
    /* width of the widget */
    gtk_box_pack_end(GTK_BOX(box), label, TRUE, FALSE, 0);
    gtk_label_set_single_line_mode(GTK_LABEL(label), TRUE);
    gtk_widget_set_size_request(GTK_WIDGET(box), 60, -1);

    gtk_container_add(GTK_CONTAINER(tool_item), box);
    
    gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar), tool_item, NULL, NULL);
    app_ui_data->current_zoom_value = label;
    app_ui_data->current_zoom_item = GTK_WIDGET(tool_item);

    image = gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Zoom out", NULL, image, (GtkSignalFunc)on_screen_zoom_in, app_ui_data);
 
    image = gtk_image_new_from_stock(GTK_STOCK_ZOOM_FIT, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Zoom page", NULL, image, (GtkSignalFunc)on_screen_zoom_page, app_ui_data);
 
    image = gtk_image_new_from_file("/usr/share/pdf-viewer/pixmaps/stock_zoom-page-width.png");
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Zoom width", NULL, image, (GtkSignalFunc)on_screen_zoom_width, app_ui_data);
    
    gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));

    image = gtk_image_new_from_stock(GTK_STOCK_FULLSCREEN, GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_append_item(GTK_TOOLBAR(toolbar), NULL, "Fullscreen", NULL, image, (GtkSignalFunc)on_screen_full_screen, app_ui_data);

    return toolbar;
}

DOORS需求管理实战:从汽车设计案例看模块化需求拆分技巧 本文通过一个汽车设计实战案例,深入解析了如何利用DOORS进行模块化需求拆分与管理。从捕获原始用户需求到精炼为可追踪的系统需求,再到按子系统(如自动驾驶)进行模块化拆分,文章详细展示了构建需求骨架、建立可追溯性以及实施变更控制的完整流程,帮助团队在复杂系统工程中实现从混沌到秩序的高效协同。 阅读详情

相关推荐

GitLab教程(四):分支(branch)和合并(merge)

命令进行合并时,Git具备一定的智能自动化处理能力:如果一个分支仅修改了文件A,而另一个分支独立地修改了文件B,Git能够无缝整合这些更改,自动完成合并过程——即最终的代码既包含了对A文件的修改也包含了对B文件的修改。同样地,若两个分支虽然都修改了同一个文件,但涉及的是文件中互不重叠的部分,比如一个改动发生在第一行,另一个则在第二行,Git同样能巧妙地自动合并这些非冲突性修改。获取了远程分支的最新变化,或者当你想要合并本地的一个分支到当前分支时,就会用到这个命令。,默认会尝试合并远程分支到当前分支。

TracyCoder的博客 7886

Toolbar制作菜单条过程详解

Toolbar制作菜单条过程详解现在许多用户界面都使用工具栏制作菜单条,小弟最近对此感兴趣,便从网上求助,可是得到的帮助大多是BCGControlBar的源代码或者是SizableRebar的源代码,对于只希望是自己的界面具有该功能的朋友来说,这也许是不错的选择,只要看一下demo,然后直接调用别人的类库就可以了,但对于我等对此话题感兴趣,希望弄懂其来龙去脉的读者来说,直接看这些没有详细解释的

黑子工作室 1690

黑暗中的爆破(船讯网Ais爬虫暨爬虫实战js逆向学习经验分享)

船讯网 爬虫 js逆向 python

returnadsss的博客 1576

四、GTK 学习菜单

研究了半天的菜单(特指主菜单),总算有些眉目了! 菜单的创建过程: 在Gtk中,菜单首先要有一个菜单条MenuBar,使用函数gtk_menu_bar_new()创建; 其次,需要在上面放一个菜单项,这个菜单项就是 最顶上的菜单,比如浏览器上的文件菜单,这个可以使用gtk_menu_item_new_with_label或 gtk_menu_it...

diaoqiaoju7163的博客 237

Agilent N5230A矢量网络分析仪在射频器件S参数测试中的关键操作指南

本文详细介绍了Agilent N5230A矢量网络分析仪在射频器件S参数测试中的关键操作流程与技巧。内容涵盖从开机预热、校准(SOLT/ECal)、参数设置(频率、点数、功率、IFBW)到连接测量、数据保存分析的全过程,并分享了夹具去嵌入、时域分析等进阶功能与常见问题避坑指南,旨在帮助工程师获得精准可靠的散射参数测试结果。

kotlin6android的博客 402

[数据转换]将NetCDF(NC)文件转换成单个GeoTIFF文件

有时候要提取tif格式数据中的气象数据,但从气象网站上下载的却是NC格式的文件。这就需要我们将NC格式的文件转换成TIF格式的文件。

G_sea_young的博客 1004

控件之Menu toolbar statusbar Optionmenu Menubutton

Tkinter 为菜单提供了 Menu 类,该类既可代表菜单条,也可代表菜单,还可代表上下文菜单(右键菜单)。 简单来说,Menu 类就可以搞定所有菜单相关内容。 程序可调用 Menu 的构造方法来创建菜单,在创建菜单之后可通过如下方法添加菜单项: add_command():添加菜单项。 add_checkbutton():添加复选框菜单项。 add_radiobutton():添加单选钮菜...

u011878611的博客 498

【openEuler容器镜像部署指南】

【代码】【List集合排序 】

weixin_43878094的博客 1112

工具栏ToolBar和菜单栏Menu入门

一:Ext.toolbar.ToolBar是工具栏的基础组件,相当于容器,在其中可以放置各种工具栏元素:按钮、文字和菜单组件。 Eg: //简单的工具栏 var toolbar=new Ext.toolbar.Toolbar({ renderTo:'toolbar', width:300 }); //向工具栏中...

玉无瑕 965

Centos 7 Linux 离线安装使用 MySQL 5.7:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统下离线安装 MySQL 5.7 的完整流程,包括环境准备、安装包下载、用户与目录配置、数据库初始化、服务启动与自启设置、root 密码修改、远程访问开启及防火墙配置等关键步骤,并提供了本地与远程客户端(如 Navicat、DBeaver)的连接使用方法,适合无网络环境下的数据库部署参考。

寒水馨 · 轻量级技术文档 · hanshuixin.org 6113

Allegro如何进行四层板板层设计

板层的设计

weixin_42499230的博客 3193

GTK+:“菜单” (menubar)和“工具栏”(toolbars)

GTK+:“菜单” (menubar)和“工具栏”(toolbars) 在这个部分的GTK+程序设计教程中,我们使用“菜单”和“工具栏”。 “菜单”( menubar) 是GUI程序中最为常见的部分之一。各种各样的命令和功能都可以借以“菜单”来实现。 当我们习惯在终端(console)中启动应用程序的时候,必须要记得很多复杂的命令和参数 ,在本章节中我们将 这一切都转化为可见的操作。菜单和工...

weixin_30673611的博客 505

图机器学习(1)——图论基础

图 (Graph) 是一种描述实体间关系的数学结构,几乎在各个领域都有应用。例如,社交网络就是图,其中用户之间的连接取决于一个用户是否“关注”另一个用户。图论,即对图的研究,一直以来广受关注,包含了大量算法、性质分析方法和数学模型,以解析复杂系统的行为特征。本节将介绍图数据结构的核心概念,通过理论阐述与实例演示相结合的方式,理解基础理论用以实践应用。重点介绍用于创建、操作和研究复杂网络结构与功能的 Python 库。

盼小辉丶的博客 9136

Fragment中toolbar添加Menu

码了好几年的代码了,被问到Fragment中toolbar添加Menu,让人为之一愣啊,这不是嗖嗖嗖的easy的吗。。。我这么乐于助人的人,被问到问题从来都是直接给完美的代码回复,都起开,我要开始装逼了。。然后呢,结果呢,,,这脸是真打啊,啪啪的,,啊,,,,真疼!! 内容分享一下: 一、如下,,想必这个样子的都搞过了,,,, @Override public void onCreate(@Nullable Bundle savedInstanceState) { su..

m5157的博客 911

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android Menu和ToolBar相关用法

public boolean onPrepareOptionsMenu(Menu menu):选项菜单显示之前onPrepareOptionsMenu方法会被调用,你可以用此方法来根据打当时的情况调整菜单。第二个int类型的item ID参数,代表的是项目编号。第三个int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。

weixin_47402520的博客 1033

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Toolbar动态改变menu

关于Toolbar的使用网上有很多介绍了,这里不赘述了。 1.Toolbar主题一般使用系统的主题ThemeOverlay.AppCompat.Dark.ActionBar。也可以自定义主题: <style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="titleTextC

FlowLeaf 4967

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

关于在toolbar 的menu中控件或者menu的item做动画的实现

突发奇想,突然想给toobar上面的那个扫一扫标志做个动画,这样子明显一些, 但是真的开始做了,才发现原来跟平常的view做动画 有点不一样。 首先是我的menu xml文件 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/a

Xiemarc的博客 3008

在Dialog中使用Menu和Toolbar

在用VC编程时,界面制作远不如Delphi、VB轻易。我又经常用到基于Dialog编写应用程序。而在直接在Dialog利用Toolbar和Menu的资料很少。而我有机会可以总结一些经验,供大家分享,希望能得到见教。 我们先建立一个基于Dialog 的程序,我给他起了个名字叫:DlgMenuToolbar。 一、怎样往基于Dialog的程序添加manu [1.1] 先添加manu(IDR_ME...

weixin_30950237的博客 207

记一次Toolbar和Menu配合使用的坑

在重构app页面中一些布局的时候,想着统一使用AppbarLayout和Toolbar作为标题栏来控制Activity的返回,但是其中有些Activity中是有使用Menu的,所以我试着在Toolbar中添加Menu,还真有一个属性可以设置Menu,想着这么方便就直接加上了

weixin_52540561的博客 549

在activity的toolbar中使用menu

在activity的toolbar中使用menu 1 创建menu文件 在res/menu中创建 activity_detail_menu.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <

lly-Rachel的博客 281

toolbar的Menu位置居中

解决办法有很多,这里记录两种解决办法, 第一种:依旧使用menu,当时在toolbar布局中,使用ActionMenuView。第二种:直接在actionbar里编写标签。 ActionMenuView是什么东西,是我在想能不能有类似menu一样的xml标签,如果有,就可以用gravity控制他在父视图的位置了嘛,没想到敲了menu,伟大的android studio就提示出了这个标签

superwangwang的博客 3238

setSupportActionBar添加Toolbar后系统之后如何创建Menu

在正常的开发中我们会使用 setSupportActionBar(Toolbar toolbar)方法设置Toolbar,通过Toolbar我们可以添加Menu等菜单操作。那么setSupportActionBar方法到底是如何设置了ToolBar并且关联到Menu的? 首先从setSupportActionBar(mToolbar)看起。首先这个方法调用到了this.getDelegate()...

哈哈龙的博客 1140

设置toolbar menu的两种方式,以及onCreateOptionsMenu不执行的原因

toolbar设置menu菜单两种方式: 第一步:setSupportActionBar(toolbar) 第二步:supportActionBar?.setDisplayHomeAsUpEnabled(true) 第三步:override fun onCreateOptionsMenu(menu: Menu?): Boolean { DBUtils.lastUser?.let { if (it.id.toString() == it.last_authorizer_user_id)...

qq_33143459的博客 1724

android toolbar menu宽度

Android Toolbar Menu 宽度设置详解 在 Android 应用开发中,Toolbar 是一种重要的 UI 组件,通常用来展示应用的导航和操作功能。为了提升用户体验,开发者常常需要根据具体需求自定义 Toolbar 的菜单项宽度。本文将对如何设置 Toolbar 的菜单宽度进行详细解读,并提供相应的代码示例...

weixin_30548963的博客 253

Android动态修改ToolBar的Menu菜单

Android动态修改ToolBar的Menu菜单效果图实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了。 开始上货 Menu Menu下添加3个Item <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http

kongqw 3万+

menu与toolbar

vc 中menu与toolbar是有关联的。如果把toolbar中button的ID号设置为和menu中某一项相同,那么在点击toolbar时,就会调用相应的菜单而menu菜单对应的项前也会显示toolbar中的图标。 如何导入其它图标到toolbar中。在项目目录下有一个res目录。toolbar中的图标会显示成一个位图。只要按对应的位置编辑这个位图,再保存即可。回到vc中会

vinep的专栏 848
上一篇: 简单GTK+自定义控件的创建
下一篇: GObject 对象系统
gl_ding
博客等级 码龄20年 4粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值