Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: mikl2002 от Март 01, 2005, 14:27



Название: Изменение StatusBar в дизайнере
Отправлено: mikl2002 от Март 01, 2005, 14:27
Как изменить StatusBar  в qt дизайнере, например добавить labels?
Или это можно делать только в run-time?


Название: Изменение StatusBar в дизайнере
Отправлено: Racheengel от Март 01, 2005, 15:19
никак ИМХО


Название: Изменение StatusBar в дизайнере
Отправлено: Admin от Март 01, 2005, 15:24
да никак

а было бы круто
напихать туда всяких ComboBox :)


Название: Изменение StatusBar в дизайнере
Отправлено: Racheengel от Март 01, 2005, 15:59
надо свой дизайнер делать :)


Название: Изменение StatusBar в дизайнере
Отправлено: Admin от Март 01, 2005, 17:01
свой делать - подход не правильный

лучше этот доработать
например у меня в линуксе после закрытия дизайнер всегда падает


Название: Изменение StatusBar в дизайнере
Отправлено: Zigmar от Март 01, 2005, 22:04
Цитата: "Admin"

например у меня в линуксе после закрытия дизайнер всегда падает

А посмотреть callstack и послать багрепорт? Кстати, я никогда про такое не слышал.


Название: Изменение StatusBar в дизайнере
Отправлено: Admin от Март 01, 2005, 22:35
лениво
баг то не критический

мне он жить не мешает!!!


Название: Re: Изменение StatusBar в дизайнере
Отправлено: Hellenna от Март 02, 2005, 00:13
Цитата: "mikl2002"
Как изменить StatusBar  в qt дизайнере, например добавить labels?
Или это можно делать только в run-time?

QStatusBar::addWidget(...)
насколько помню, можно добавить практически все что угодно.


Название: Re: Изменение StatusBar в дизайнере
Отправлено: mikl2002 от Март 02, 2005, 06:05
Цитата: "Hellenna"
Цитата: "mikl2002"
Как изменить StatusBar  в qt дизайнере, например добавить labels?
Или это можно делать только в run-time?

QStatusBar::addWidget(...)
насколько помню, можно добавить практически все что угодно.

Это только в Run-time как я уже писал  :(


Название: Изменение StatusBar в дизайнере
Отправлено: Racheengel от Март 02, 2005, 12:45
Цитата: "Admin"
свой делать - подход не правильный

лучше этот доработать
например у меня в линуксе после закрытия дизайнер всегда падает


да "фирменный" дизайнер кривоват и не очень юзабелен, это же ужо обсуждалось :) если переделывать - так с нуля.


Название: Re: Изменение StatusBar в дизайнере
Отправлено: Cyrax от Декабрь 18, 2007, 22:43
Все QLabel'ы, которые должны добавляться в QStatusBar - где они должны создаваться ?
Согласно идеологии построения приложения, все виджеты объявляются и создаются (методом setupUi) в файле ui_имякласса.h, который создаётся uic-ом. В QtDesigner'е создать QLabel'ы на QStatusBar'е невозможно (можно их разместить только на centralwidget'е).
Если эти QLabel'ы вручную дописать в файл ui_имякласса.h (расположить на QStatusBar'е), то при пересборке проекта uic перезапишет этот файл. И поскольку в файле имякласса.ui этих Label'ов нет, то они будут утеряны.
Напрашивается, что объявлять и создавать эти QLabel'ы нужно в у себя в классе имякласса.h/cpp, который uic не трогает.
Получается, что виджеты расположены в разных файлах...


Название: Re: Изменение StatusBar в дизайнере
Отправлено: Пантер от Декабрь 19, 2007, 12:38
 :-\ А просто в классе, наследуемом от ui создать лэйбу нельзя? И закинуть на статусбар нельзя? Неужели все должно в Дизайнере делаться???


Название: Re: Изменение StatusBar в дизайнере
Отправлено: Cyrax от Декабрь 20, 2007, 11:49
Цитировать
А просто в классе, наследуемом от ui создать лэйбу нельзя?
Это dep_mainWindow в файле ui.dep.h:
Цитировать
...
class Ui_dep_mainWindow
{
...
}

namespace Ui {
    class dep_mainWindow: public Ui_dep_mainWindow
    {
        // добавляем свои label'ы
    };
} // namespace Ui

#endif // UI_DEP_H

После работы uic'а этот файл перезапишется... со всеми нашими label'ами...


Название: Re: Изменение StatusBar в дизайнере
Отправлено: Cyrax от Декабрь 20, 2007, 12:28
3-й день уже со статусбаром... Ужас.
С помощью addPermanentWidget добавляю label, который появляется справа и не перекрывается основным текстом statusbar'а.
1. Почему QStatusBar не наследует QFrame. Ну невозможно ведь у QWidget'а рамку установить, кроме как самому рисовать. Мне бы сверху линию провести, чтобы отделить statusbar от centralwidget.
2. После добавления addPermanentWidget справа от него появляется вертикальная линия - разделитель, который ставит сам statusbar. Т.к. это не label'овский frame, то как его убрать ?
3. Допустим, нужно поставить вертикальный разделитель слева от labe'а. Устанавливаю setFrameStyle(QFrame::VLine) - вертикальная линия появляется в центре label'а. Как её разместить на левой границе label'а ?
4. Как получить доступ с стандартной надписи на statusbar'е, кроме как showMessage и clearMessage ?  Для более гибкого управления надписью, например, слева разместить bitmap или свои label'ы, которые не будут перекрываться этой стандартной надписью...


Название: Re: Изменение StatusBar в дизайнере
Отправлено: Пантер от Декабрь 20, 2007, 12:33
Во как... От статус бара никогда не просил такого. А не проще ли будет взять QToolBar или простую панель и зафигачить ее в низ окна?


Название: Re: Изменение StatusBar в дизайнере
Отправлено: Cyrax от Декабрь 20, 2007, 13:05
Цитировать
От статус бара никогда не просил такого.
Ну так в любой виндовой программе именно такие statusbar'ы и реализованы. Ничего сам не изобретаю...

Цитировать
А не проще ли будет взять QToolBar или простую панель и зафигачить ее в низ окна?
Можно, только придётся самому реализовывать вывод сообщений при фокусировке на пункты меню + другую функциональность, реализованную в statusbar'е.

А что - в стандартном statusbar'е нельзя сверху линию провести ?  Кроме как самому рисовать.
Нельзя убрать вертикальный ограничитель справа от перманентного label'а ?

з.ы. немного оффтопный вопрос: QFrame::VLine всегда только по центру label'а ?


Название: Re: Изменение StatusBar в дизайнере
Отправлено: ритт от Декабрь 20, 2007, 20:16
чтобы разделителей не было, задай статусбару setStyleSheet("QStatusBar::item {border-style:none;}");
верхний разделитель - почти так же

у меня есть похожий статус бар на тот, о котором ты говоришь - могу поделиться
только для него нет плагина к дизайнеру