Как сделать динамический графический интерфейс, который соответственно регулирует его размер - PullRequest
0 голосов
/ 01 февраля 2019

В MATLAB GUI я хочу, чтобы окно становилось длиннее или короче в зависимости от количества входов.Количество входов может быть изменено, и каждое имя входа будет одно под другим.Я хочу, чтобы это получилось наиболее подходящим.Я не мог найти, как изменить размер окон по коду.

Входные данные будут выглядеть следующим образом:

inputA
inputB
inputC
inputD
inputE
...

Кроме того, я могу согласиться сделать это, настроив текст вводаразмеры в зависимости от размера окна (размер окна может быть постоянным)

Наконец, я хочу узнать, как получить размер окна графического интерфейса, когда единицами измерения являются символы или пиксели.Я думаю, что он должен иметь разные размеры при изменении единиц.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Вы можете установить размер окна рисунка, изменив его свойство 'Position'.Первые два значения - это координаты x и y левого нижнего угла (относительно левого нижнего угла экрана), а последние два значения - ширина и высота.Это свойство можно прочитать, чтобы получить текущую позицию и размер.Например:

h = figure; % this is where you create you GUI in
h.Position(3) = 50; % set the width to 50 pixels.

Если вы хотите использовать другую единицу измерения вместо пикселей по умолчанию, установите свойство 'Units':

h.Units = 'characters'; % now the position will be given in relation to the size of the font.

Другие возможные единицы включают 'centimeters', 'inches' и 'points'.

0 голосов
/ 02 февраля 2019

После создания графического интерфейса вы можете изменить размер окна в зависимости от количества элементов, используя такой код, как

pos = get(gcf, 'position');
set(gcf, 'position', [ pos(1:3) pos(4)*nItems]);

Вы также измените размер своего графического интерфейса в окне.Допустим, h - это дескриптор контейнера, в который вы помещаете свой текст, и он показывает только один элемент.Вы изменили текст и теперь хотите изменить размер графического интерфейса и сохранить размер фигуры таким же.

pos = get(h, 'extent');
set(h, 'extent', [ pos(1:3) pos(4)*nItems]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...