Вывод класса из matlab.ui.container.GridLayout - PullRequest
2 голосов
/ 08 ноября 2019

Я все еще играюсь с 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

Напротив, если я получаю класс из 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

Может кто угоднообъяснить это поведение и / или знает способ показать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...