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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: кнопка в произвольном месте на QToolBar  (Прочитано 2312 раз)
once_again_abc
Гость
« : Июнь 20, 2012, 07:32 »

как мне разместить мою кнопку в заданной (x,y) позиции на тулбаре? move работает только частично... положение кнопки сбрасывается каждый раз когда по ней кликаешь либо когда меняешь ориентацию тулбара.
Записан
once_again_abc
Гость
« Ответ #1 : Июнь 20, 2012, 07:57 »

самым простым вариантом (но не очень хорошим), оказалось перехватывать QEvent::LayoutRequest и восстанавливать желаемые x,y

Код:
bool event ( QEvent * pEvent ) {

    if( pEvent->type() == QEvent::LayoutRequest ) {
        m_pButton->move( x,y );
        return true;
    }

    return QToolBar::event( pEvent );
}

здесь есть недостаток:

при изменении ориентации тулбара (напр. горизонтальная - вертикальная - горизонтальная) кнопка на мгновение появляется в ее "родной" позиции, задаваемой addWidget тулбара. т.е. банальное мерцание после изменения ориентации

как все это решить красиво?
« Последнее редактирование: Июнь 20, 2012, 08:01 от once_again_abc » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #2 : Июнь 20, 2012, 11:14 »

Для добавления на тулбар сторонних виджетов нужно использовать QWidgetAction. В него добавляешь свой виджет с лейаутом, на котором уже как хочешь размещаешь свою кнопку.
Записан

Qt 5.11/4.8.7 (X11/Win)
once_again_abc
Гость
« Ответ #3 : Июнь 21, 2012, 03:48 »

Для добавления на тулбар сторонних виджетов нужно использовать QWidgetAction. В него добавляешь свой виджет с лейаутом, на котором уже как хочешь размещаешь свою кнопку.

большое спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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