自学内容网 自学内容网

【PyQt】如何在mainwindow中添加菜单栏

@[toc]如何在mainwindow中添加菜单栏

如何在mainwindow中添加菜单栏

主要有两种方法:
1.直接创建mainwindow进行添加
2.使用ui文件加载添加
第二种方法更为常见,可以应用到实际

1.直接创建mainwindow进行添加

import sys

from PyQt5.QtWidgets import QMainWindow, QLabel, QApplication


class MyWindow(QMainWindow):

    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        label = QLabel("这是文字~~")
        label.setStyleSheet("font-size:30px;color:red")

        # 调用父类中的menuBar,从而对菜单栏进行操作
        menu = self.menuBar()
        # 如果是Mac的话,菜单栏不会在Window中显示而是屏幕顶部系统菜单栏位置
        # 下面这一行代码使得Mac也按照Windows的那种方式在Window中显示Menu
        menu.setNativeMenuBar(False)

        file_menu = menu.addMenu("文件")
        file_menu.addAction("新建")
        file_menu.addAction("打开")
        file_menu.addAction("保存")

        edit_menu = menu.addMenu("编辑")
        edit_menu.addAction("复制")
        edit_menu.addAction("粘贴")
        edit_menu.addAction("剪切")

        # 设置中心内容显示
        self.setCentralWidget(label)


if __name__ == '__main__':
    app = QApplication(sys.argv)

    w = MyWindow()
    # 设置窗口标题
    w.setWindowTitle("我是窗口标题....")
    # 展示窗口
    w.show()

    # 程序进行循环等待状态
    app.exec()

2.使用ui文件加载添加

重点就是先加载ui文件,使用self.ui.menubar进行添加


import sys

from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *
from PyQt5 import uic
class MyWindow(QMainWindow):

    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 主窗口的设置
        self.ui = uic.loadUi("./Main_window.ui")
        # 加载好ui文件之后再进行设置菜单栏
        menu = self.ui.menubar
        # menu.setNativeMenuBar(False)
        file_menu = menu.addMenu("文件")
        file_menu.addAction("新建")
        file_menu.addAction("打开")
        file_menu.addAction("保存")

        edit_menu = menu.addMenu("编辑")
        edit_menu.addAction("复制")
        edit_menu.addAction("粘贴")
        edit_menu.addAction("剪切")
        print(self.ui.__dict__)  # 查看ui文件中有哪些控件
        self.center() # 居中窗口

    def center(self):
        qr = self.frameGeometry()
        # 得到了主窗口大小
        print('qr:', qr)
        cp = QDesktopWidget().availableGeometry().center()
        # 获取显示器的分辨率,然后得到中间点的位置
        print('cp:', cp)
        qr.moveCenter(cp)
        # 然后把自己的窗口的中心点放到qr的中心点
        self.move(qr.topLeft())
if __name__=="__main__":
    app = QApplication(sys.argv)

    w = MyWindow()
    # 展示窗口
    w.ui.show()

    app.exec()

效果图

在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_59422604/article/details/145117557

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!