1.QMainWindow
QMainWindowは、アプリケーションフレームワークである、独自のレイアウトはまた、ツールバーメニューバーステータスバーは、レイアウトマネージャに追加されるレイアウトコントロールに追加することができました
1.1はじめにウィンドウタイプ
QMainWindow QWidget QDialog 这三个类都是用来创建窗口的 可以直接使用,也可以继承后再使用
QMainWindow 可以包含菜单栏 工具栏 状态栏 标题栏等 是最常见的窗口形式
QDialog 是对话窗口的基类。对话框主要用来执行短期任务,或者与用户进行互动,它可以是模态的 也可以是非模态的,QDialog 没有菜单栏 工具栏 状态栏等等
使用方面:
如果是主窗口 就是用QMainWindow 如果是对话窗,就使用QDialog类 如果不确定或者可能作为顶层窗口,也有可能嵌入到其他窗口中,那么就使用QWidget类
1.2は、メインウィンドウを作成します
如果一个窗口包含一个或多个窗口,那么这个窗口就是父窗口,被包含的窗口就是子窗口。没有父窗口的窗口就是顶层窗口,QMainWindow就是一个顶层窗口,它可以包含很多界面元素。
在PyQt中 在主窗口 中会有一个空间占位符来占着中心窗口 可以使用setCentralWidget()来设置中心窗口
QWidgetのクラスから所有しているすべての派生メソッドとプロパティ継承QMainWindow
のようなより重要な方法の一つ
+ addToolBar()ツールバーに追加する
+ centralWidgetを()に設定されていないコントロールのウィンドウの中心を返すときにリターンがヌル
メインウィンドウのメニューに+のmenuBar()の戻りをバー
ウィンドウコントロールの中央に設定する+ setCentralWidgetを()
ステータスバーを設定)+ setStatusBarを(
ステータスバーのオブジェクトを取得するために)(+ステータスバーの後に、オブジェクトのステータスバーshowMessage(メッセージ、int型のタイムアウト= 0を呼び出す ) 方法、あなたについてステータスバーに表示された情報を。最初のパラメータ情報は、デフォルトで表示される第2のパラメータ滞在から時刻情報の単位は00ミリ秒になる場合は、ステータスバーの情報となっています。
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtGui import QIcon
class MainWindow(QMainWindow):
def __init__(self,parent=None):
super(MainWindow,self).__init__(parent)
self.resize(400,200)
self.status = self.statusBar()
self.status.showMessage("这个时状态栏的显示时间是5000",5000)
self.setWindowTitle("PyQt MainWindow例子")
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
app.setWindowIcon(QIcon("./images/b822566318.ico"))
mywin = MainWindow()
mywin.show()
sys.exit(app.exec_())
以下は、デスクトップの中央の場所にウィンドウです
from PyQt5.QtWidgets import QMainWindow,QApplication,QDesktopWidget
import sys
class winform(QMainWindow):
def __init__(self,parent=None):
super(winform,self).__init__(parent)
self.setWindowTitle("主窗口放在屏幕中间例子")
self.resize(270,270)
self.center()
def center(self):
screen = QDesktopWidget().screenGeometry() #获取屏幕的大小
size = self.geometry()#获取窗口的大小
self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2)#移动到指定位置
if __name__ == "__main__":
app = QApplication(sys.argv)
win = winform()
win.show()
sys.exit(app.exec_())
以下に、メインウィンドウの閉鎖手段の一例です
from PyQt5.QtWidgets import QMainWindow,QApplication,QWidget,QHBoxLayout,QPushButton
import sys
class WinForm(QMainWindow):
def __init__(self,parent=None):
super(WinForm,self).__init__(parent)
self.setWindowTitle("关闭主窗口的例子")
self.button = QPushButton("关闭窗口按钮")
self.button.clicked.connect(self.onButtonClick)
layout = QHBoxLayout()
layout.addWidget(self.button)
main_frame = QWidget()
main_frame.setLayout(layout)
self.setCentralWidget(main_frame)
def onButtonClick(self):
sender = self.sender()#发送信号的对象
print(sender.text()+"被按下了")
qApp = QApplication.instance()
qApp.quit()
if __name__ == "__main__":
app = QApplication(sys.argv)
form = WinForm()
form.show()
sys.exit(app.exec_())
2 QWidgetの
基础窗口控件QWidget类是所有用户界面对象的积累,所有的窗口和空间都直接或间接继承自QWidget类
窗口控件(Widget 简称控件)是在PyQt中建立界面的主要元素。在PyQt中没有嵌入到其他控件中的控件为窗口一般窗口都有边框 标题栏。窗口是指程序的整体界面,可以包含标题栏 菜单栏 工具栏 关闭按钮 最小化按钮 最大化按钮等;控件是指按钮 复选框 文本框 表格 进度条等这些组成的基本元素。一个程序可以有多个窗口,一个窗口也可以有多个控件。
2.1ウィンドウ座標系
PyQt使用同一的坐标系统来定位窗口控件的位置和大小。如下图所示。