web-dev-qa-db-ja.com

QPushButtonとQToolButtonの違い

私はQtが初めてであり、QPushButtonQToolButtonの違いはそれほど明確ではありません。

QToolButtonは通常QToolBarで使用され、通常はアイコンなしでテキストなしで表示されることを知っていますが、両者の主な違いはよくわかりません。

大きな違いはありますか?いつQPushButtonを使用すべきか、いつQToolButtonを使用すべきか?

最も適切なボタンを使用するためにこれを知りたいのですが、いくつかのGUIテストを実行する必要があり、おそらく関連する可能性があります。

20
KelvinS

QToolButtonは、QActionQMenuQToolBarなどを中心としたQtWidgetsモジュールのウィジェットグループの一部です。 QPushButtonは単なるボタンです。その結果、QToolButtonQPushButtonよりも内部ではるかに複雑です。例の(完全ではない)リスト:

  • QToolButtonは、QActionと緊密に統合されるように設計されています。ツールボタンのデフォルトアクションのアイコン、テキストなどを変更すると、ボタンに反映されます。
  • ツールボタンの内容(アイコンのみ、テキストのみ、アイコンの横のテキスト、アイコンの下のテキスト)のレイアウトを変更できます。
  • QToolButtonは、デフォルトアクションをトリガーする代わりにサイドバーホットゾーンがメニューを開く「分割」ボタンタイプをサポートします。
  • ツールボタンは、アクションを追加することでQToolBarに直接作成できますが、他のウィジェットは明示的に追加する必要があります。

次の点にも注意してください。

  • QToolButtonのデフォルトの内部マージンはQPushButtonよりも小さく、狭い行またはグリッドで表示されることを意味します。 QPushButtonは、オプションのアイコンが付いたテキストを含む「OK」/「閉じる」タイプのボタンの詳細です。
  • QToolButtonには通常、アイコンが必要です。 QPushButtonには常にテキストが必要です。
23
Jon Harper

Qt docから: http://doc.qt.io/qt-5/qtoolbutton.html#details

「ツールボタンは、特定のコマンドまたはオプションにすばやくアクセスできる特別なボタンです。通常のコマンドボタンとは異なり、ツールボタンは通常テキストラベルを表示せず、代わりにアイコンを表示します。」

GUIにアイコンだけのシンプルなボタンが必要な場合は、QToolButtonを使用します。しかし、古典的なボタンが必要な場合は、QPushButtonを使用します。

大きな違いはありません、

5
mohabouje