Как автоматически расширить ширину метки в QStatusBar - PullRequest
0 голосов
/ 22 апреля 2011

У меня есть QStatusBar.Я добавил ярлык, показывающий значок там.Теперь я хочу эмулировать поведение QStatusBar :: showMessage (), устанавливая текст в другой метке, которую я добавил как виджет в строку состояния.Мне это нужно, потому что я не могу установить заполнение стандартного сообщения в строке состояния.В противном случае значок и текст перекрываются.Теперь я хочу, чтобы QLabel, содержащий текст сообщения, расширился до полной ширины строки состояния.Как я могу это сделать?

Спасибо.

1 Ответ

1 голос
/ 23 апреля 2011

Вот что вы можете попробовать, я никогда не пробовал в строке состояния, поэтому я не знаю, работает ли она или нет, но я пробовал другие контейнеры и отлично работает.Создайте HBoxLayout, разместите строку состояния, используя ее, добавьте к ней значок и метку, и установите layoutStretch на 0, 1 (addStretch (0); addStretch (1)), 0 для значка, означающего, что он будет растягиваться, чтобы соответствоватьзначок, и 1 он растянется на все оставшееся пространство, в результате чего метка расширится до полной ширины.

Код будет выглядеть примерно так:

QHBoxLayout *layout = new QHBoxLayout(statusBar);
layout->setContentsMargins(11, 11, 11, 11);
statusBar->setLayout(layout);
layout->addStretch(0);
layout->addWidget(iconlabel);
layout->addStretch(1);
layout->addWidget(textlabel);

Извините, если есть ошибки компиляции,не могу попробовать это сейчас.Надеюсь, это поможет.

РЕДАКТИРОВАТЬ: Несмотря на то, что верхний код не работает, я не буду его удалять, потому что это правильный способ для других контейнеров.Для строки состояния это должно работать:

statusBar->addWidget(iconLabel, 0);
statusBar->addWidget(textLabel, 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...