Название: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: xintrea от Июнь 15, 2009, 14:45 Здравствуйте!
Есть такой виджет QToolBar. Когда в него добавляют QAction (или даже QToolButton), кнопка получается без границ - видна только иконка. Граница появляется если, например, навести на иконку мышкой. А нужно сделать так, чтобы кнопки были видны как кнопки, то есть всегда были видны границы. Вопрос - как это сделать? Метод setToolButtonStyle() позволяет только указать, рисовать ли иконку или где размещать текст на кнопке. Больше подходящего метода не нашел. Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: pastor от Июнь 15, 2009, 14:48 сепараторами раздели )
Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: xintrea от Июнь 15, 2009, 15:00 сепараторами раздели ) Ну это несерьёзно. Я вообще-то стал использовать QToolBar вместо QHBoxLayout+QToolButton только потому, что в QHBoxLayout нет сепараторов. Но теперь имею ситуацию - в QHBoxLayout+QToolButton нет сепараторов - в QToolBar нет границ кнопок Вот хочется скрестить ужа с ежом - чтоб и сепараторы были, и границы кнопок. Я пробовал самодельные сепараторы в QHBoxLayout рисовать, получается некрасиво и из стиля выбивается. Вот теперь думаю - как бы вытянуть сепаратор из QToolBar, и всунуть его в QHBoxLayout? ... О, придумал. Надо сделать QToolBar с минимальными границами, с одним сепаратором. И всовывать этот QToolBar в QHBoxLayout между кнопками где нужно. Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: ритт от Июнь 15, 2009, 15:25 ужос.
а не проще ли пройтись по кнопочкам и снять с них flat ? Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: xintrea от Июнь 15, 2009, 15:38 ужос. а не проще ли пройтись по кнопочкам и снять с них flat ? Можно точнее, что сделать? В QToolBar ничего про "flat" не написано. Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: xintrea от Июнь 15, 2009, 16:01 Я нашел метод setFlat у QPushButton, однако мне по ряду причин QPushButton не подходит, я пользуюсь QToolButton. А у QToolButton метода setFlat() нету. Так же и у QAction метода setFlat() тоже нет.
Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: ритт от Июнь 15, 2009, 16:25 Цитировать Я нашел метод setFlat у QPushButton... мдя, это не предусмотрел. значит, надо state сменить тулбаттонам - посмотри по коду какой из state-ов влияет на "выпуклость" кнопки и каким условием включается...Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: BRE от Июнь 15, 2009, 16:27 Я нашел метод setFlat у QPushButton, однако мне по ряду причин QPushButton не подходит, я пользуюсь QToolButton. А у QToolButton метода setFlat() нету. Так же и у QAction метода setFlat() тоже нет. У QToolButton есть свойство autoRaise. Если он установлен в true, то кнопка рисуется без границ и она будет подсвечиваться границами при наведении мышки. Если autoRaise == false, то кнопка будет с границами всегда.Кстати, сепаратор для QHBoxLayout можно сделать из QFrame, он может рисовать горизонтальные/вертикальные линии. :) Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: xintrea от Июнь 15, 2009, 16:34 Нашел
Цитировать QToolButton supports auto-raising. In auto-raise mode, the button draws a 3D frame only when the mouse points at it. The feature is automatically turned on when a button is used inside a QToolBar. Change it with setAutoRaise(). Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: xintrea от Июнь 15, 2009, 18:25 У QToolButton есть свойство autoRaise. Если он установлен в true, то кнопка рисуется без границ и она будет подсвечиваться границами при наведении мышки. Если autoRaise == false, то кнопка будет с границами всегда. А вот как бы такое провернуть с QAction? У меня приложение из двух частей состоит. В одной части QToolBar формируется из QToolButton, для них границу через autoRaise == false можно показать. А если QToolBar формируется из QAction, то как для таких кнопок границу можно показывать? Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: BRE от Июнь 15, 2009, 18:48 А вот как бы такое провернуть с QAction? У меня приложение из двух частей состоит. В одной части QToolBar формируется из QToolButton, для них границу через autoRaise == false можно показать. А если QToolBar формируется из QAction, то как для таких кнопок границу можно показывать? При использовании QAction, на toolbar'е также создается QToolButton.Попробуй получать виджет через функцию: QWidget * QToolBar::widgetForAction ( QAction * action ) const проверять, что это QToolButton и устанавливать нужные свойства. Вот рабочий код: Код
Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: BRE от Июнь 15, 2009, 21:55 IMHO, удобней делать примерно так:
Код
Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: break от Июнь 16, 2009, 00:53 Как то мне нужно было что-то подобное - на форме были прозрачные кнопочки и лабелы, под ними подложка с изображением - решил установкой в стайл-шите формы цвета и ширины бордера для QLabel и QPushButton, оказалось очень удобно - если подобной стал-шит можно задать и для тул баттонов, то достаточно прописать его в QToolBar и по идее кнопочки созданные любым способом будут с границами...
Название: Re: QToolBar - как показать границы кнопочек? По умолчанию самой кнопки не видно. Отправлено: xintrea от Июнь 16, 2009, 14:42 Всем спасиба, всё палучилось.
|