设置 cl_gui_toolbar 中定义的工具栏按钮的宽度
Set width of toolbar button defined in cl_gui_toolbar
我有一个用 class cl_gui_toolbar
定义的工具栏,它显示在容器中(通过 class cl_gui_custom_container
创建)。我在其中添加了一些按钮和按钮组。
现在我的用户希望其中一个按钮组更大一些,因为用户可能认不出按钮在那里。有什么方法可以设置按钮组的宽度吗?
这是我当前的代码:
METHOD init_toolbar.
DATA: lt_buttons_data TYPE ttb_button,
ls_button_data TYPE LINE OF ttb_button.
go_toolbar_container = NEW cl_gui_custom_container( container_name = 'TOOLBAR_1000' ).
go_toolbar = NEW cl_gui_toolbar( parent = go_toolbar_container ).
" Some other buttons
" ...
" ...
CLEAR ls_button_data.
CLEAR lt_buttons_data.
ls_button_data-function = 'DBFILTER'.
ls_button_data-icon = '@EX@'.
ls_button_data-quickinfo = 'Quickinfo'.
ls_button_data-text = 'SmallText'.
ls_button_data-butn_type = cntb_btype_menu.
APPEND ls_button_data TO lt_buttons_data.
go_toolbar->add_button_group( data_table = lt_buttons_data ).
CLEAR ct_expand.
ct_expand = NEW cl_ctmenu( ).
ct_expand->add_function( fcode = '1' text = '1' checked = abap_false ).
ct_expand->add_function( fcode = '2' text = '2' checked = abap_false ).
ct_expand->add_function( fcode = '3' text = '3' checked = abap_false ).
CLEAR wa_ctxmenu.
wa_ctxmenu-function = 'DBFILTER'.
wa_ctxmenu-ctmenu = ct_expand.
APPEND wa_ctxmenu TO table_ctxmenu.
go_toolbar->assign_static_ctxmenu_table( table_ctxmenu = table_ctxmenu ).
ENDMETHOD.
你知道如何设置这个按钮组的宽度吗?
PS:我刚得到信息,如果没有其他方法,如果文本较长,可以替换按钮的文本(例如 "smallText")。
无法将 class CL_GUI_TOOLBAR 中的按钮宽度自定义为像素数。
解决方法:
- 输入更长的文字。也许在文本末尾输入 "non-breaking spaces"。这是 Unicode 字符 U+00A0 (
CL_ABAP_CONV_IN_CE=>UCCP( '00A0' )
).
- 而不是 CL_GUI_TOOLBAR,使用 class CL_GUI_HTML_VIEWER 来定义具有 HTML 代码和 CSS 样式的按钮。但我怀疑是否值得为此花时间。
我有一个用 class cl_gui_toolbar
定义的工具栏,它显示在容器中(通过 class cl_gui_custom_container
创建)。我在其中添加了一些按钮和按钮组。
现在我的用户希望其中一个按钮组更大一些,因为用户可能认不出按钮在那里。有什么方法可以设置按钮组的宽度吗?
这是我当前的代码:
METHOD init_toolbar.
DATA: lt_buttons_data TYPE ttb_button,
ls_button_data TYPE LINE OF ttb_button.
go_toolbar_container = NEW cl_gui_custom_container( container_name = 'TOOLBAR_1000' ).
go_toolbar = NEW cl_gui_toolbar( parent = go_toolbar_container ).
" Some other buttons
" ...
" ...
CLEAR ls_button_data.
CLEAR lt_buttons_data.
ls_button_data-function = 'DBFILTER'.
ls_button_data-icon = '@EX@'.
ls_button_data-quickinfo = 'Quickinfo'.
ls_button_data-text = 'SmallText'.
ls_button_data-butn_type = cntb_btype_menu.
APPEND ls_button_data TO lt_buttons_data.
go_toolbar->add_button_group( data_table = lt_buttons_data ).
CLEAR ct_expand.
ct_expand = NEW cl_ctmenu( ).
ct_expand->add_function( fcode = '1' text = '1' checked = abap_false ).
ct_expand->add_function( fcode = '2' text = '2' checked = abap_false ).
ct_expand->add_function( fcode = '3' text = '3' checked = abap_false ).
CLEAR wa_ctxmenu.
wa_ctxmenu-function = 'DBFILTER'.
wa_ctxmenu-ctmenu = ct_expand.
APPEND wa_ctxmenu TO table_ctxmenu.
go_toolbar->assign_static_ctxmenu_table( table_ctxmenu = table_ctxmenu ).
ENDMETHOD.
你知道如何设置这个按钮组的宽度吗?
PS:我刚得到信息,如果没有其他方法,如果文本较长,可以替换按钮的文本(例如 "smallText")。
无法将 class CL_GUI_TOOLBAR 中的按钮宽度自定义为像素数。
解决方法:
- 输入更长的文字。也许在文本末尾输入 "non-breaking spaces"。这是 Unicode 字符 U+00A0 (
CL_ABAP_CONV_IN_CE=>UCCP( '00A0' )
). - 而不是 CL_GUI_TOOLBAR,使用 class CL_GUI_HTML_VIEWER 来定义具有 HTML 代码和 CSS 样式的按钮。但我怀疑是否值得为此花时间。