PyQt 5のQMainWindow
12496 ワード
PyQt 5のQMainWindow
1つのウィンドウに1つ以上のウィンドウが含まれている場合、このウィンドウは親ウィンドウであり、含まれているウィンドウは子ウィンドウです.親ウィンドウのないウィンドウは最上位ウィンドウであり、
方法
説明
addToolBar()
ツールバーの追加
centralWidget()
ウィンドウの中心にあるコントロールを返します.設定されていない場合はNULLを返します.
menuBar()
メインウィンドウのメニューバーに戻る
setCentralWidget()
ウィンドウの中心を設定するコントロール
setStatusBar()
ステータスバーの設定
statusBar()
ステータスバーオブジェクトを取得したら、ステータスバーオブジェクトのshowMessage(message,int timeout=0)メソッドを呼び出し、ステータスバー情報を表示します.ここで、1番目のパラメータは表示するステータスバー情報であり、2番目のパラメータは情報が滞留する時間であり、単位はミリ秒(ms)、デフォルトは0であり、ステータスバー情報がずっと表示されていることを示す.
注意:
一、メインウィンドウの作成
コード解析:カスタムウィンドウクラスMainWindowでは、メインウィンドウQMainWindowクラスのすべての属性とメソッドを継承し、親クラスのコンストラクション関数super()を使用してウィンドウを初期化します. setWindowTitle()メソッドでウィンドウタイトルを設定し、resize()メソッドでウィンドウサイズを設定します. QMainWindowクラスのstatusBar()メソッドを使用してステータスバーを作成し、呼び出します.showMessage()メソッドは、ステータスバーにプロンプト情報を表示し、表示時間は5秒、5秒後にステータスバープロンプト情報が消えます.
二、メインウィンドウが中央になる
QdesktopWidgetクラスを使用して、メインウィンドウの中央表示を実現します.コードは以下の通りです.
コード解析: QDesktopWidget().screenGeometry()は表示画面のサイズを計算するために使用され、QdesktopWidgetは表示画面を記述するクラスであり、screenGeometry()によって画面のサイズを得る. self.geometry()は、メインウィンドウを取得するためのサイズです. self.move()はメインウィンドウを移動するために使用され、中のパラメータは画面の中心の位置座標であり、
三、メインウィンドウを閉じる
コード解析: QPShButton(str,QWidget)ボタンオブジェクトを作成してメインウィンドウに追加します. button.clicked.connect(self.close)接続スロット関数は、ボタンがクリックされたときにclose()関数を呼び出し、メインウィンドウを閉じます.
1つのウィンドウに1つ以上のウィンドウが含まれている場合、このウィンドウは親ウィンドウであり、含まれているウィンドウは子ウィンドウです.親ウィンドウのないウィンドウは最上位ウィンドウであり、
QMainWindow
は最上位ウィンドウであり、メニューバー、ツールバー、ステータスバー、サブウィンドウなど、多くのインタフェース要素を含むことができます.QMainWindow
はQWidgetクラスから継承され、その派生メソッドと属性をすべて保有しています.重要なメソッドは次のとおりです.方法
説明
addToolBar()
ツールバーの追加
centralWidget()
ウィンドウの中心にあるコントロールを返します.設定されていない場合はNULLを返します.
menuBar()
メインウィンドウのメニューバーに戻る
setCentralWidget()
ウィンドウの中心を設定するコントロール
setStatusBar()
ステータスバーの設定
statusBar()
ステータスバーオブジェクトを取得したら、ステータスバーオブジェクトのshowMessage(message,int timeout=0)メソッドを呼び出し、ステータスバー情報を表示します.ここで、1番目のパラメータは表示するステータスバー情報であり、2番目のパラメータは情報が滞留する時間であり、単位はミリ秒(ms)、デフォルトは0であり、ステータスバー情報がずっと表示されていることを示す.
注意:
QMainWindow
は、独自のレイアウトがあるため、レイアウトを設定できません(setLayout()メソッドを使用します).一、メインウィンドウの作成
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow,self).__init__()
self.setWindowTitle(" ")
self.resize(400,400)
self.status = self.statusBar()
self.status.showMessage(" ",5000)
if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow()
form.show()
sys.exit(app.exec_())
コード解析:
二、メインウィンドウが中央になる
QdesktopWidgetクラスを使用して、メインウィンドウの中央表示を実現します.コードは以下の通りです.
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication,QDesktopWidget
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow,self).__init__()
self.resize(400,400)
self.setWindowTitle(" ")
self.center()
def center(self):
screen = QDesktopWidget().screenGeometry()
size = self.geometry()
self.move(int((screen.width()-size.width())/2),int((screen.height()-size.height())/2))
if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow()
form.show()
sys.exit(app.exec_())
コード解析:
DeprecationWarning: an integer is required (got type float)
の警告があれば、中のパラメータを整列すればよい.三、メインウィンドウを閉じる
import sys
from PyQt5.QtWidgets import QMainWindow,QApplication,QDesktopWidget,QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow,self).__init__()
self.resize(400,400)
self.setWindowTitle(" ")
button = QPushButton(" ",self)
button.move(100,200)
button.clicked.connect(self.close)
if __name__ == "__main__":
app = QApplication(sys.argv)
form = MainWindow()
form.show()
sys.exit(app.exec_())
コード解析: