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ウィジェットを作成します。 中央のウィジェットがすべての空きスペースを占有します。
