Russian Qt Forum
Май 05, 2024, 14:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qtoolbar  (Прочитано 6866 раз)
Antoxa1985
Гость
« : Октябрь 01, 2005, 12:25 »

Доброго времени суток!

Возникла следующая проблема: необходимо создать тулбар, который бы имел ширину  равную ширине главного окна, делаю так
Код:

                m_Toolbar = new QToolBar(this);
m_Toolbar->setHorizontalStretchable(true);

m_newAct->addTo(m_Toolbar);
m_openAct->addTo(m_Toolbar);
m_saveAct->addTo(m_Toolbar);
m_Toolbar->addSeparator();
m_cutAct->addTo(m_Toolbar);
m_copyAct->addTo(m_Toolbar);
m_pasteAct->addTo(m_Toolbar);
m_Toolbar->addSeparator();
m_connectAct->addTo(m_Toolbar);

addDockWindow(m_Toolbar,DockTop);

но это дает побочный эффект - пропорционально растягиваются кнопки на тулбаре. Как бы разрулить ситуацию?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Октябрь 01, 2005, 14:17 »

засунь последним компонентом в тулбар пустой виджет и задай ему политику minimum.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Antoxa1985
Гость
« Ответ #2 : Октябрь 01, 2005, 16:08 »

как показала практика, решение оказалось достаточно простым
Код:

m_Toolbar->setStretchableWidget(new QWidget(m_Toolbar));

в тулбар вствляется widget, а потом он определяется как основа для растягивания  Улыбающийся
Записан
Antoxa1985
Гость
« Ответ #3 : Октябрь 04, 2005, 05:04 »

вот еще одна проблемка возникла
при нажатии правой кнопки на toolbar'e или menubar'e вылетает менюшка, как бы ее заменить на свою?
Записан
nEoN
Гость
« Ответ #4 : Октябрь 04, 2005, 09:04 »

Можно реализовать наследника тулбара и переопределить метод contextMenuEvent.
Или через фильтр сообщений (installEventFilter, eventFilter) перехватывать QContextMenuEvent, который посылается тулбару и выводить своё меню.
Записан
Antoxa1985
Гость
« Ответ #5 : Октябрь 04, 2005, 10:35 »

nEoN, молодец, спасибо. фильтры рулят
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 22.