2012-09-05 3 views
1

난 그냥QToolBar에서 동작의 모양을 사용자 정의하려면 어떻게해야합니까?

오래된 도구 버튼이 그들 주위에 좋은 개요를했다. (바로 대신 그들에게 추가 조치로) Q4 도구 모음에 (명시 적으로 추가 QToolButtons와) Q3ToolBars 일부 도구 모음을 변경했습니다, 그러나 이것은이다 새 버전에는 표시되지 않습니다. Q4 도구 모음의 QActions는 아이콘 줄처럼 보입니다. 새 버전의 '버튼'스타일을 변경하는 방법이 있습니까 (이러한 작업을 그대로 고려할 수 있다고 가정). 개요를 제공합니까? QToolBar 참조를 살펴 보았지만 toolButtonStyle() 함수는 아이콘, 텍스트 등을 표시할지 여부와 함께 작동합니다.

... 아니면 실제 툴 버튼을 만들거나/또는 QPushButtons 및 addWidget() 사용합니까?

답변

0

예, 물론 당신은 두 가지 방법으로 QToolButtons의 모양을 편집 할 수 있습니다

  1. 당신은 당신이 새로운 paintEvent 기능 QToolButtons 클래스를 구현할 수
  2. 당신이 할 곳이 될 것입니다 void QWidget::setStyleSheet(const QString &)를 사용하여 그것을 스타일 시트를 설정할 수 있습니다 버튼이 어떻게 보이는지 정확하게 설정하십시오.
+0

필자는 스타일 시트 설명서를 살펴본 결과, 외형을 구체적으로 묘사하지 못했다. paintEvent에 관해서는 ... 글쎄, 내가해야한다면 그것을 살펴볼 것이다. 그래도 쉬운 수정이 있었으면 좋겠다. / – nicole

0

주어진 작업과 연결된 위젯은 Qt 4.2부터 QToolBar::widgetForAction까지 액세스 할 수 있습니다. 당신이 일반적으로 (코드는 테스트하지) 것 같은, 당신은 그것에 의해 반환 된 QWidget의를 얻을,이 방법으로 당신의 행동을 통과 QToolBar로 변환하고이를 처리 할 수 ​​

// ... 

auto toolButton = 
    static_cast<QToolButton *>(
     m_ui.toolbar->widgetForAction(m_ui.my_Action)); 

// Will make the toolButton always appear raised: 
toolButton->setAutoRaise(false); 

// ... 

를 지금까지 내가했듯이 일부 방법은 작동하지 않을 수 있습니다 (예 : QWidget::hide). 따라서 자체 테스트를 수행하십시오.

관련 문제