How to create an uicontrol with selectable but non-editable text.

I want to allow user copy a text (or it's part) into clipboard in usual manner (selecting by mouse and pressing Ctrl-C). How to make it? A 'text' style uicontrol doesn't permit selection. Оn the other hand, an 'edit' style permits selection and copying to clipbord but also allows editing what is not desirable.

回答 (2 件)

bbb_bbb
bbb_bbb 2018 年 4 月 25 日
編集済み: bbb_bbb 2018 年 4 月 25 日

2 投票

found "simple" solution:
javatxt = findjobj(editui);
javatxt.Editable=0;
where editui - an 'edit' style uicontrol,
findjobj - a function that Find java objects contained within a specified java container or Matlab GUI handle

1 件のコメント

Ameer Hamza
Ameer Hamza 2018 年 4 月 25 日
Worth mentioning that findjobj is not a MATLAB built-in function. It is available FEX::findjobj here.

サインインしてコメントする。

Walter Roberson
Walter Roberson 2018 年 4 月 25 日

0 投票

Hack the Java objects underlying the uicontrol.
But first experiment with setting the uicontrol enable property to 'disable'. The result is a uicontrol that can still scroll but not be edited. I do not recall whether it is selectable.

2 件のコメント

bbb_bbb
bbb_bbb 2018 年 4 月 25 日
set(textui, 'Enable', 'off') - gives non-selectable text.
Dennis
Dennis 2018 年 4 月 25 日

If it is okay to copy the entire text you could create a ButtonDownFcn that copies the string to clipboard.

function copytxt (hobj,~)
      mystring=get(hObj,'String'); 
      clipboard('copy',mystring)
end

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeEnvironment and Settings についてさらに検索

質問済み:

2018 年 4 月 25 日

コメント済み:

2018 年 4 月 25 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by