@WayMax

Как добавить элементы в QStatusBar?

Нашел в интернете только вариант:
QLabel *label1;
label1 = new QLabel();
ui->statusBar->addWidget(label1); // в левой части статусбара

QLabel *label2;
label2 = new QLabel();
ui->statusBar->addPermanentWidget(label2); // в правой части статусбара

Но получается "смешивание" кода и графики. Можно ли добавить эти 2 лейбла в режиме дизайна?

Если нельзя, и придется добавлять так, можно ли заменить #include QLabel чем-то более "универсальным"?
Например если я захочу добавить еще и ProgressBar придется дописывать #include QProgressBar, думал можно будет написать что-то вроде #include QWindow или #include QWidget, но нет.
  • Вопрос задан
  • 2074 просмотра
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
1. Подобных шероховатостей в Qt вагон и маленькая тележка. Не знаю, как статус-строка, но toolbar’ы (если они не состоят из одних кнопок, или если их много на одной форме) приходится собирать программно.
2. Нельзя. Нам нужен конструктор конкретного типа — QLabel, а значит, нам нужен хедер, где этот конструктор есть.
3. Понимайте, что даже если редактор форм идеальный, как в Embarcadero, найдутся задачи, которых он не выполняет. Это может быть хитрое поведение при изменении размеров формы, запросы компонентам «погоди обновлять меня» и «всё, теперь можно», настройки внешнего вида и многое-многое другое… Разделение кода и графики надо производить отделением в другой модуль рабочего кода, а не отделением графики в файл *.ui (или *.dfm).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы