LoginSignup
0
0

More than 1 year has passed since last update.

PyQt5 QToolBarを使ってみる

Last updated at Posted at 2021-12-04

内容

サイドメニューの作り方が気になり調べたところ,QToolBarを使うと作ることができそうでした。

以下のサイトにサンプルがあったので動かしてみました。

qtoolbar.py
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class tooldemo(QMainWindow):
   def __init__(self, parent = None):
      super(tooldemo, self).__init__(parent)
      layout = QVBoxLayout()
      tb = self.addToolBar("File")

      new = QAction(QIcon("test.png"),"new",self)
      tb.addAction(new)

      open = QAction(QIcon("test.png"),"open",self)
      tb.addAction(open)
      save = QAction(QIcon("test.png"),"save",self)
      tb.addAction(save)
      tb.actionTriggered[QAction].connect(self.toolbtnpressed)
      self.setLayout(layout)
      self.setWindowTitle("toolbar demo")

   def toolbtnpressed(self,a):
      print("pressed tool button is",a.text())

def main():
   app = QApplication(sys.argv)

   ex = tooldemo()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

結果

Screenshot from 2021-12-04 22-29-35.png

解説

QToolBarwidgetは動かすことが可能で,テキストボタン,アイコンボタン,または他のウィジェットを格納できます。

メソッドの一覧は以下のようになります。

1:addAction():テキストorアイコンを持つツールボタンの追加
2:addSeperator():グループ内のツールボタンを表示?
3:addWidget():ボタン以外のツールバーを加える?
4:addTooBar():QMainWindowクラスがもつツールバーを追加するメソッド?
5:setMovable():ツールバーが移動可能になる
6:setOrientation():ツールバーの方向を設定(Qt.Horizontal または Qt.vertical)

ツールバーのボタンが押されるときにはActionTriggered()シグナルが発火されます。そしてQActionオブジェクトもなにかするみたい?

addToolBar()メソッドでファイルツールバーを追加

tb = self.addToolBar("File")

以下でボタンを作成している

new = QAction(QIcon("test.png"),"new",self)
tb.addAction(new)

最後に

QToolBarはQMainWindowクラスが内部で持っていて生成したりするもののようです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0