Setting GUI Control Default Properties by Style

조회 수: 4 (최근 30일)
Andy
Andy 2011년 5월 11일
When setting default values for GUI control properties, you can set default properties for all uicontrols:
f = figure;
set(f,'DefaultUicontrolString','Hello World');
uicontrol('parent',f,'style','text')
But can you set different sets of defaults for uicontrols with different styles? The following does NOT work, but makes my intent clear:
f = figure;
set(f,'DefaultTextBackgroundColor','gray')
set(f,'DefaultEditBackgroundColor','white')
uicontrol(f,'style','text','string','hello')
uicontrol(f,'style','edit','string','world')

채택된 답변

Matt Fig
Matt Fig 2011년 5월 12일
When I write GUIs I usually specify the minimum property descriptions necessary for each style, then at the end of my initialization code I call a custom function to set my standard defaults.
This function takes no arguments (except optionally a figure handle for limiting the search), but uses FINDALL to parse through each style of uicontrol and assign the defaults like fontsize, backgroundcolor, etc.
It sounds like you could benefit from writing such a function too!

추가 답변 (1개)

Daniel Shub
Daniel Shub 2011년 5월 11일
You cannot control the properties like you want. You could create a new function (or even class) that mimics uicontrols, but would allow you to specify default values. One problem with your example is if you create a text box control and then change it to an edit box control would the background color change?
  댓글 수: 1
Andy
Andy 2011년 5월 12일
What is the benefit of being able to turn uicontrols of one style into another? In any case, if you create a text box and change it to an edit box, I would expect it to keep the text box default properties. (Otherwise changing the style would be the same as destroying the control and creating a new one.)
Is it common in GUI toolkits for inherently different controls to be combined into one like this? (I don't think so, but I don't know many other GUI toolkits.) Why is this done in MATLAB?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by