【PythonでGUI】PyQt5 -メニューとツールバー-

[前回](http://qiita.com/Algebra_nobu/items/67abf075177fc36484ff)の続き

[Menus and toolbars](http://zetcode.com/gui/pyqt5/menustoolbars/)
こちらのサイトを日本語でざっくりとまとめていきます。

#【ステータスバー】
```py3:Statusbar.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication


class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        # ステータスバーのメッセージを設定
        self.statusBar().showMessage('Ready')
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Statusbar')    
        self.show()


if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
```
<img width="204" alt="statusbar.png" src="https://qiita-image-store.s3.amazonaws.com/0/121997/219c4689-86d9-9c4f-4b70-62e0192d0b28.png">

#【メニューバー】
```py3:Menubar.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        # アイコン付加、ラベルはExitのアクションオブジェクト作成
        exitAction = QAction(QIcon('imoyokan.jpg'), '&Exit', self)
        # ショートカットできるようにする
        exitAction.setShortcut('Ctrl+Q')
        # カーソルを乗せるとステータスバーへ表示
        exitAction.setStatusTip('Exit application')
        # Exitボタンを押すと表示終了
        exitAction.triggered.connect(qApp.quit)

        self.statusBar()
        
        # メニューバー作成
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        # exitActionを紐づける
        fileMenu.addAction(exitAction)
        
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Menubar')    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
```
<img width="160" alt="menubar.png" src="https://qiita-image-store.s3.amazonaws.com/0/121997/a2496286-a0ed-da49-1411-0b680d22e1ef.png">

#【ツールバー】
```py3:Toolbar.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        # 画像付き　吹き出しをExitにするアクションオブジェクト作成
        exitAction = QAction(QIcon('imoyokan.jpg'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(qApp.quit)
        
        # ツールバー作成
        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)
        
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Toolbar')    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
```
<img width="161" alt="toolbar.png" src="https://qiita-image-store.s3.amazonaws.com/0/121997/1e9f1bc5-70fe-e08a-8d80-461f5d50df97.png">

#【一緒にまとめて、テキスト入力追加】
```py3:Putting_it_together.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplication
from PyQt5.QtGui import QIcon


class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        # テキスト入力欄の作成
        textEdit = QTextEdit()
        self.setCentralWidget(textEdit)

        exitAction = QAction(QIcon('imoyokan.jpg'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.close)

        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        toolbar = self.addToolBar('Exit')
        toolbar.addAction(exitAction)
        
        self.setGeometry(300, 300, 350, 250)
        self.setWindowTitle('Main window')    
        self.show()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
```
<img width="185" alt="put_together.png" src="https://qiita-image-store.s3.amazonaws.com/0/121997/1b2b6d3f-9036-a6c3-fa4a-3cdd105aac31.png">

[次回](http://qiita.com/Algebra_nobu/items/81da82b8b984bf54f0a0)は[Layout management](http://zetcode.com/gui/pyqt5/layout/)をざっくり試していきます。