python PyQt5 QMainWindowクラス(Qtメインウィンドウフレーム、メインウィンドウはアプリケーションのユーザーインターフェイスを構築するためのフレームワークを提供します)



Python Pyqt5 Qmainwindow Class Qt Main Window Frame



https://doc.qt.io/qtforpython/PySide2/QtWidgets/QMainWindow.html?highlight=qmainwindow#PySide2.QtWidgets.QMainWindow

継承

画像



詳細な説明

Qtメインウィンドウフレーム

メインウィンドウは、アプリケーションのユーザーインターフェイスを構築するためのフレームワークを提供します。 Qtには、メインウィンドウ管理用のQMainWindowおよび関連クラスがあります。 QMainWindowには独自のレイアウトがあり、QToolBar、QDockWidget、QMenuBar、およびQStatusBarを追加できます。レイアウトには、あらゆるタイプのウィジェットが占めることができる中央領域があります。下のレイアウトの画像を見ることができます。
画像
注意:
中央ウィジェットなしのメインウィンドウの作成はサポートしていません。単なるプレースホルダーであっても、中央のウィジェットが必要です。



メインウィンドウコンポーネントを作成します
中央のウィジェットは通常、QTextEditやQGraphicsViewなどの標準のQtウィジェットです。カスタムウィジェットは、高度なアプリケーションでも使用できます。 setCentralWidget()を使用して、中央ウィジェットを設定できます。

メインウィンドウには、単一(SDI)または複数(MDI)のドキュメントインターフェイスがあります。 QMdiAreaを中央ウィジェットとして使用することで、QtでMDIアプリケーションを作成できます。

次に、メインウィンドウに追加できる他のすべてのウィジェットを確認します。それらを作成および追加する方法の例を提供します。



メニューを作成
QtはメニューをQMenuに実装しますが、QMainWindowはそれをQMenuBarに保持します。 QActionがメニューに追加され、メニュー項目として表示されます。

menuBar()を呼び出すことにより、メインウィンドウのメニューバーに新しいメニューを追加できます。メニューはウィンドウのQMenuBarに戻り、addMenu()を使用してメニューを追加します。

QMainWindowにはデフォルトのメニューバーが付属していますが、setMenuBar()を使用してメニューバーを自分で設定することもできます。カスタムメニューバーを実装する場合(つまり、QMenuBarウィジェットを使用しない場合)、setMenuWidget()を使用して設定できます。

メニューを作成する方法の例を次に示します:(Pythonコードではありませんか?)

void MainWindow::createMenus() { fileMenu = menuBar()->addMenu(tr('&File')) fileMenu->addAction(newAct) fileMenu->addAction(openAct) fileMenu->addAction(saveAct)

メインウィンドウがコンテキストメニューイベントを受信すると、createPopupMenu()関数がポップアップメニューを作成します。デフォルトの実装では、ドッキングされたウィジェットとツールバーからチェック可能なアクションを含むメニューが生成されます。カスタムメニューのcreatePopupMenu()を再実装できます。

ツールバーを作成する
ツールバーはQToolBarクラスに実装されています。 addToolBar()を使用して、ツールバーをメインウィンドウに追加します。

ツールバーを特定のToolBarAreaに割り当てることにより、初期位置を制御できます。ツールバーの区切り文字を挿入することで領域を分割できます-テキスト編集では改行文字と考えてください-addToolBarBreak()またはinsertToolBarBreak()を使用してください。 setAllowedAreas()およびsetMovable()を使用して、ユーザーの配置を制限することもできます。

ツールバーアイコンのサイズは、iconSize()を使用して取得できます。サイズはプラットフォームによって異なり、setIconSize()で固定サイズを設定できます。 setToolButtonStyle()を使用して、ツールバーのすべてのツールボタンの外観を変更できます。

ツールバーの作成例は次のとおりです。

void MainWindow::createToolBars() { fileToolBar = addToolBar(tr('File')) fileToolBar->addAction(newAct)

Dockウィジェットを作成する
DockウィジェットはQDockWidgetクラスに実装されています。ドックウィジェットは、メインウィンドウにドッキングできるウィンドウです。 addDockWidget()を使用して、ドックウィジェットをメインウィンドウに追加できます。

DockWidgetArea列挙体は、左、右、上、下の4つのドッキングウィジェット領域を提供します。 setCorner()を使用して、ドッキングされたウィジェット領域がその領域の隅を占めるように指定できます。デフォルトでは、各領域にドッキングされたウィジェットの行(垂直または水平)を1つだけ含めることができますが、setDockNestingEnabled()を使用してネストを有効にすると、ドッキングされたウィジェットをどちらの方向にも追加できます。

2つの基本ウィジェットを積み重ねることもできます。次に、QTabBarを使用して、表示するウィジェットを選択します。

ドッキングされたウィジェットを作成してメインウィンドウに追加する方法の例を示します。

dockWidget = QDockWidget(tr('Dock Widget'), self) dockWidget.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) dockWidget.setWidget(dockWidgetContents) addDockWidget(Qt.LeftDockWidgetArea, dockWidget)

ステータスバー
setStatusBar()を使用してステータスバーを設定できますが、statusBar()を初めて呼び出すとステータスバーが作成されます(メインウィンドウのステータスバーが返されます)。使用方法については、QStatusBarを参照してください。

保管状態
QMainWindowはsaveState()を使用してレイアウト状態を保存でき、restoreState()を使用して後で取得できます。これは、保存されているツールバーとドックウィジェットの位置とサイズ(メインウィンドウのサイズに対する)です。

See also QMenuBarQToolBarQStatusBarQDockWidgetApplication ExampleDock Widgets ExampleMDI Example SDI Example Menus Example class QMainWindow([parent=None[, flags=Qt.WindowFlags()]])¶ param parent QWidget param flags WindowFlags

指定された親オブジェクトと指定されたウィジェットフラグを使用してQMainWindowを構築します。

QMainWindowはウィンドウフラグ自体を設定するため、常にトップレベルのウィジェットとして作成されます。

参考記事:pythonPyQt5中国語チュートリアル☞[セクション5] PyQt5イベント(イベント)とシグナル(シグナルとスロット)

関数

ステータスバー()

PySide2.QtWidgets.QMainWindow.statusBar()¶ Return type QStatusBar

メインウィンドウのステータスバーに戻ります。ステータスバーが存在しない場合、この関数は空のステータスバーを作成して返します。

See also setStatusBar()