Как выровнять текст по верхней части кнопки в графическом интерфейсе Matlab?

У меня есть графический интерфейс с большими кнопками, и я хотел бы выровнять текст на кнопке вверху, все, что я нашел, это свойство «горизонтальное выравнивание». Спасибо...


person A S    schedule 22.11.2011    source источник


Ответы (2)


Вам необходимо получить доступ к базовому компоненту Java Swing (я использую НАЙТИРАБОТУ):

figure('Menubar','none', 'Position',[200 200 300 200])
h = uicontrol('Style','pushbutton', 'String','click', ...
   'Units','normalized', 'Position',[0.3 0.3 0.5 0.5]);
jh = findjobj(h);
jh.setVerticalAlignment( javax.swing.AbstractButton.BOTTOM );

введите здесь описание изображения

person Amro    schedule 22.11.2011
comment
+1 @Amro, я думал, что когда я прокрутил вниз, это был бы ответ от Яира Альтмана. Гораздо приятнее, чем мои предложенные лайфхаки. - person Sam Roberts; 23.11.2011
comment
правда, я многому научился из блога Яира обо всем недокументированном - person Amro; 23.11.2011
comment
@Amro Спасибо, все работает! Знаете ли вы способ выравнивания только текста, а не изображения, размещенного с помощью: set(handles.button,'cdata',icon); Спасибо! - person A S; 24.11.2011
comment
@Amro, очень приятно, спасибо, для тех, кто интересуется другим способом, как я, вы можете поменять местами jh.setVerticalAlignment( javax.swing.AbstractButton.BOTTOM ); с jh.setHorizontalAlignment(javax.swing.AbstractButton.LEFT); - person MoustacheDangerous; 03.05.2017

Боюсь, я думаю, что вы не можете этого сделать - текст всегда выравнивается вертикально по середине на uicontrol. Единственные хаки, о которых я могу думать, могут достичь чего-то вроде того, что вы хотите,

  1. Добавьте дополнительные символы возврата после основного текста, чтобы настоящий текст оказался вверху, а весь текст оставался по центру.
  2. (ДЕЙСТВИТЕЛЬНО ужасно) Создайте изображение с вашим текстом прямо вверху и используйте его со свойством CData кнопки.
person Sam Roberts    schedule 22.11.2011