PyQt4-メニューとツールバー

メインウィンドウ

QMainWindowクラスは、メインアプリケーションウィンドウを表します。 これを使用すると、ステータスバー、ツールバー、メニューを備えたクラシックビューを作成できます。



ステータスバー

ステータスバーは、ステータス情報を表示するために使用されるウィジェットです。

#!/usr/bin/python



import sys

from PyQt4 import QtGui



class MainWindow(QtGui.QMainWindow):

def __init__(self):

QtGui.QMainWindow.__init__(self)



self.resize(250, 150)

self.setWindowTitle('statusbar')



self.statusBar().showMessage('Ready')



app = QtGui.QApplication(sys.argv)

main = MainWindow()

main.show()

sys.exit(app.exec_())









self.statusBar().showMessage('Ready')







ステータスバーを作成するには、QApplicationクラスのstatusBar()メソッドを呼び出します。 ShowMessage()は、ステータスバーにメッセージを表示します。



メニュー

メニューは、GUIアプリケーションの最も顕著な部分の1つです。 これは、さまざまなメニューにあるコマンドのグループです。 コンソールアプリケーションでは、すべてのシークレットコマンドを覚えておく必要がありますが、ここでは、論理的にグループ化されたほとんどのコマンドにアクセスできます。 これは、新しいアプリケーションを習得するのにかかる時間を短縮する、受け入れられている標準です。

#!/usr/bin/python



import sys

from PyQt4 import QtGui, QtCore



class MainWindow(QtGui.QMainWindow):

def __init__(self):

QtGui.QMainWindow.__init__(self)



self.resize(250, 150)

self.setWindowTitle('menubar')



exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)

exit.setShortcut('Ctrl+Q')

exit.setStatusTip('Exit application')

self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))



self.statusBar()



menubar = self.menuBar()

file = menubar.addMenu('&File')

file.addAction(exit)



app = QtGui.QApplication(sys.argv)

main = MainWindow()

main.show()

sys.exit(app.exec_())







self.statusBar().showMessage('Ready')







最初に、QMainWindowクラスのmenuBar()メソッドを使用してメニューを作成します。 次に、addMenu()メソッドを使用して、[ファイル]メニュー項目を追加し、作成された項目にexitオブジェクトを接続します。

ツールバー

メニューには、アプリケーションで使用できるすべてのコマンドが組み合わされています。 ツールバーを使用すると、最も一般的に使用されるコマンドにすばやくアクセスできます。

#!/usr/bin/python



import sys

from PyQt4 import QtGui, QtCore



class MainWindow(QtGui.QMainWindow):

def __init__(self):

QtGui.QMainWindow.__init__(self)



self.resize(250, 150)

self.setWindowTitle('toolbar')



self.exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)

self.exit.setShortcut('Ctrl+Q')

self.connect(self.exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))



self.toolbar = self.addToolBar('Exit')

self.toolbar.addAction(self.exit)



app = QtGui.QApplication(sys.argv)

main = MainWindow()

main.show()

sys.exit(app.exec_())







self.exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)

self.exit.setShortcut('Ctrl+Q')







GUIアプリケーションはコマンドによって制御され、これらのコマンドはメニュー、コンテキストメニュー、ツールバーから、またはホットキーを使用して起動できます。 PyQtはアクションの導入により開発を簡素化します。 アクションオブジェクトには、メニューテキスト、アイコン、ショートカット(キーボードショートカット)、ステータステキスト、「What's This?」テキスト、およびツールチップを含めることができます。 この例では、アイコン、ショートカット、およびツールチップを使用してアクションオブジェクトを定義します。

self.connect(self.exit, QtCore.SIGNAL('triggered()'),

QtCore.SLOT('close()'))







ここで、アクションオブジェクトのトリガーされた()信号を、事前定義されたclose()信号に接続します。

self.toolbar = self.addToolBar('Exit')

self.toolbar.addAction(self.exit)







ツールバーを作成し、それにアクションオブジェクトを設定します。

ツールバー



一緒に組み合わせる

最後の例では、ウィンドウを作成し、その上にメニュー、ツールバー、ステータスバーを配置し、中央のウィジェットも追加します。

#!/usr/bin/python



import sys

from PyQt4 import QtGui, QtCore



class MainWindow(QtGui.QMainWindow):

def __init__(self):

QtGui.QMainWindow.__init__(self)



self.resize(350, 250)

self.setWindowTitle('mainwindow')



textEdit = QtGui.QTextEdit()

self.setCentralWidget(textEdit)



exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)

exit.setShortcut('Ctrl+Q')

exit.setStatusTip('Exit application')

self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))



self.statusBar()



menubar = self.menuBar()

file = menubar.addMenu('&File')

file.addAction(exit)



toolbar = self.addToolBar('Exit')

toolbar.addAction(exit)



app = QtGui.QApplication(sys.argv)

main = MainWindow()

main.show()

sys.exit(app.exec_())







self.toolbar = self.addToolBar('Exit')

self.toolbar.addAction(self.exit)







ここでは、QMainWindowの中心に設定されるQtextEditウィジェットを作成します。 中央のウィジェットがすべての空きスペースを占有します。

メインウィンドウ







All Articles