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