PyQt入门之窗口,菜单,工具栏和状态栏
PyQt主要有三种窗口类型
QMainWindow:可以包含菜单栏、工具栏、状态栏和标题栏
QDialog:为对话窗口的基类。无菜单栏、工具栏、状态栏
QWidget:不确定窗口的用途就使用这个类
1、菜单栏
菜单栏,位于 QMainWindow 对象的标题栏下方。
QMenu 类提供了一个可以添加到菜单栏的小控件,每个 QMenu 对象都可以包含一个或多个 QAction 对象或级联的 QMenu 对象。QMenu 也可以用来创建上下文菜单和弹出菜单。
createPopupMenu() 用于创建弹出菜单;menuBar() 返回主窗口的 QMenuBar 对象;addMenu() 用于添加菜单项;addAction() 用于在菜单中添加操作。
设计菜单时的重要方法如下:
menuBar() 返回主窗口的 QMenuBar 对象
addMenu() 在菜单栏中添加一个新的 QMenu 对象
addAction() 向 QMenu 小控件添加一个操作按钮,其中包含文本或图标
setEnable() 将操作按钮状态设置为启用/禁用
addSeperator() 在菜单中添加一条分隔线
clear() 删除菜单/菜单栏中的内容
setShortcut() 将快捷键关联到操作按钮
setText() 设置菜单项的文本
setTitle() 设置 QMenu 小控件的标题
text() 返回与 QAction 对象关联的文本
title() 返回 QMenu 小控件的标题
2、工具栏
QToolBar 工具栏,由文本按钮、图标或其他小控件按钮组成的可移动面板,通常位于菜单栏下方。
QToolBar 类中的常用方法如下表:
addAction() 添加具有文本或图标的工具按钮
addSeperator() 分组显示工具按钮
addWidget() 添加工具栏中按钮以外的控件
addToolBar() 使用 QMainWindow 类的方法添加一个新的工具栏
setMovable() 工具栏变得可移动
setOrientation() 工具栏方向可以设置为 Qt.Horizontal 或 Qt.vertical
3、状态栏
状态栏,通常在 MainWindow 的底部的一个水平条;PyQt5 中使用 QStatusBar 类来创建状态栏,用于显示永久或临时的状态信息。
QStatusBar 类的常用方法如下:
addWidget() 在状态栏中添加给定的窗口小控件对象
addPermanentWidget() 在状态栏中永久添加给定的窗口小控件对象
showMessage() 在状态栏中显示一条临时信息指定时间间隔
clearMessage() 删除正在显示的临时信息
removeWidget() 从状态栏中删除指定的小控件
import sys
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
super().__init__() #调用父类构造函数初始化
self.setWindowTitle("第一个窗口")
self.resize(500,500)
screen = QDesktopWidget().screenGeometry() # 获取屏幕坐标系
size=self.geometry()#获取窗口坐标系
self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2)#让窗口居中
self.setupui()
def setupui(self):
label=QLabel(self)
label.setText("第一个窗口")
label.move(230,250)
menu=self.menuBar()#默认有菜单栏对象
m1=menu.addMenu("菜单")
m1.addAction("功能1")
m1.addAction("功能2")
m1.addAction("功能3")
tool=self.addToolBar("工具栏")#添加一个工具栏
tool.addAction("工具1")
tool.addAction("工具2")
tool.addAction("工具3")
state=self.statusBar()#默认自带一个工具栏对象
state.showMessage("运行中")
if __name__ == '__main__':
app=QApplication(sys.argv)
window=MainWindow()
window.show()
sys.exit(app.exec_())