2023-10-01

QToolButton を長押し ~ PySide6 ~

PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。配布ライセンスは LGPL で公開されています(商用ライセンスも有り)。最新のバージョンは Qt6 に対応した PySide6(記事執筆時点で 6.5.2)です。

Qt は機能が豊富なので覚えるのが大変です。まさが、QToolButton でいわゆる「長押し (hold down)」機能があるとは思いませんでした。

GUI アプリを作るとき、文字列のプルダウンメニューを用意するのが面倒で、ほとんどの場合 QToolBar 上に QToolButton のアイコンを並べて済ませてしまっています。

しかし、アイコンだけでは表現し切れない、かゆいところに手が届くような細かな機能の実現に悩むことがあります。

例えば、ファイルを開く機能にフォルダーアイコンを表示する QToolButton を割り当てて使う場合、頻繁に開くファイルがあれば「最近開いたファイル」みたいにリストをなんらかの形で表示できるともっと便利なのになあと、いつも思っていました。

Qt for Python のドキュメントで QToolButton のページ [1] をよく読むと、ボタンの長押しでメニューを表示できることを知ったので、長押しでメニューを表示させ、そこにリストで用意しておいた文字列を列挙するようなサンプルを作ってみました。

qt_toolbar_2.py

Fedora Workstation 39(ベータ版)+ Python 3.11 / PySide 6.5.2 で実行した例を示しました。

qt_toolbar_2.py の実行例

フォルダーアイコンをマウスの左ボタンで長押しするとメニューが表示されます。

参考サイト

  1. QToolButton - Qt for Python

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: