Я все еще играюсь с uifigure
компонентами. Как я объяснил вчера , мне интересно понять matlab.ui.container.GridLayout
, чтобы в конечном итоге использовать его в качестве основы для некоторых виджетов.
Но я испытываю следующее поведение, когда получаю класс из matlab.ui.container.GridLayout
, чего я не понимаю. Я проверил это с R2019a (Linux) и R2019b (Win):
g = matlab.ui.container.GridLayout('Parent', uifigure()); b = uibutton(g)
![enter image description here](https://i.stack.imgur.com/MBokM.png)
Напротив, если я получаю класс из matlab.ui.container.GridLayout
classdef MyGrid < matlab.ui.container.GridLayout
methods
function self = MyGrid ( varargin )
self = self@matlab.ui.container.GridLayout( varargin {:} );
end
end
end
и использовать
g = MyGrid('Parent', uifigure()); b = uibutton(g)
Я получаю пустую цифру:
![enter image description here](https://i.stack.imgur.com/Hg8MT.png)
Может кто угоднообъяснить это поведение и / или знает способ показать Button в случае производного класса?
Вот еще некоторая информация:
- Установив точку останова в
matlab.ui.container.GridLayout.handleChildAdded
Я вижу, что эта функция вызывается в случае добавления кнопки в MyGrid
экземпляр - Размер
MyGrid
увеличивается при добавлении кнопки:
>> g = MyGrid('Parent', uifigure());
>> g.RowHeight = {};
>> g.ColumnWidth = {}
g =
MyGrid with properties:
RowHeight: {}
ColumnWidth: {}
Show all properties
>> b = uibutton(g);
>> g
g =
MyGrid with properties:
RowHeight: {'1x'}
ColumnWidth: {'1x'}
Show all properties
- Свойство
Visible
кнопки: on
>> b.Visible
ans =
'on'
- Свойство
Visible
сетки также on
:
>> g.Visible
ans =
'on'
- Свойство кнопки
Layout
является правильным:
>> b.Layout
ans =
GridLayoutOptions with properties:
Row: 1
Column: 1
- Свойства
Parent
в порядке:
>> f = uifigure();
>> g = MyGrid('Parent', f);
>> b = uibutton(g);
>> b.Parent == g
ans =
logical
1
>> g.Parent == f
ans =
logical
1
- Свойства
Children
тоже хороши:
>> f.Children(1) == g
ans =
logical
1
>> g.Children(1) == b
ans =
logical
1