设置 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 样式的按钮。但我怀疑是否值得为此花时间。