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_())

posted @ 2023-05-12 21:36  突破铁皮  阅读(501)  评论(0编辑  收藏  举报