前書き
ファイルダイアログでファイルパスを取得した後QLineEditにsetするUIを作ろうとして、以前はそれぞれ別のボタンとQLineEditを隣に並べていましたが、QLineEditにボタンを埋め込み単一のウィジェットとする手段を知ったので記事にしてみました。
イメージ
上がQLineEditとボタンを横に並べたもの
下が本題のQLineEditにボタンを埋め込みしたものです
上はウィジェットが二つになっているので、新たな水平レイアウト追加するなど手間があり少々面倒です。
下は単一のウィジェットになっているのでレイアウトが簡単です。
本題
QLineEditのメソッドaddAction
を使用します。
addActionを使うには、アクションとアクションを追加する位置を渡します。
これで追加されるボタンはアイコンのみ表示されるのでアイコンを設定する必要があります。
LeadingPosition
で入力の前の位置に追加し、TrailingPosition
で後ろの位置に追加します。
サンプル
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QLineEdit
lineedit = QLineEdit()
lineedit.addAction(
QIcon.fromTheme(QIcon.ThemeIcon.FolderIcon),
QLineEdit.ActionPosition.TrailingPosition,
)