У меня есть графический интерфейс с большими кнопками, и я хотел бы выровнять текст на кнопке вверху, все, что я нашел, это свойство «горизонтальное выравнивание». Спасибо...
Как выровнять текст по верхней части кнопки в графическом интерфейсе Matlab?
Ответы (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
+1 @Amro, я думал, что когда я прокрутил вниз, это был бы ответ от Яира Альтмана. Гораздо приятнее, чем мои предложенные лайфхаки.
- person Sam Roberts; 23.11.2011
правда, я многому научился из блога Яира обо всем недокументированном
- person Amro; 23.11.2011
@Amro Спасибо, все работает! Знаете ли вы способ выравнивания только текста, а не изображения, размещенного с помощью: set(handles.button,'cdata',icon); Спасибо!
- person A S; 24.11.2011
@Amro, очень приятно, спасибо, для тех, кто интересуется другим способом, как я, вы можете поменять местами jh.setVerticalAlignment( javax.swing.AbstractButton.BOTTOM ); с jh.setHorizontalAlignment(javax.swing.AbstractButton.LEFT);
- person MoustacheDangerous; 03.05.2017
Боюсь, я думаю, что вы не можете этого сделать - текст всегда выравнивается вертикально по середине на uicontrol
. Единственные хаки, о которых я могу думать, могут достичь чего-то вроде того, что вы хотите,
- Добавьте дополнительные символы возврата после основного текста, чтобы настоящий текст оказался вверху, а весь текст оставался по центру.
- (ДЕЙСТВИТЕЛЬНО ужасно) Создайте изображение с вашим текстом прямо вверху и используйте его со свойством
CData
кнопки.
person
Sam Roberts
schedule
22.11.2011