PyQt5主界面
2024-08-27 12:20:42
QMainWindow
QMainWindow控件继承之QWidget控件,QWidget是所有控件的父类,主要提供界面的基本功能,包括边框、标题、工具栏、关闭按钮、最小化按钮以及最大化按钮等。子类中再进行差异化的设置,完成具体控件的效果。
QMainWindow控件里面包含:菜单栏、工具栏、状态栏以及中心子窗口。相关接口如下:
方法 | 描述 |
menuBar() | 获取主窗口菜单栏 |
addMenu() | 添加子菜单栏到父菜单栏 |
addAction() | 添加菜单栏/工具栏中的具体选项 |
addToolBar() | 添加工具栏,返回值是新增的工具栏对象 |
setCenterWidget() | 添加中心子窗口 |
setStatusBar() | 设置状态栏 |
statusBar() | 获取状态栏对象 |
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QMenu, QStatusBar, QWidget, QLabel class MyWidget(QMainWindow):
def __init__(self):
super(MyWidget, self).__init__()
self.initMenuBar()
self.initToolBar()
self.initCenter()
self.initStatusBar() def initMenuBar(self):
self.open = QAction('Open(&O)', self)
self.close = QAction('Close(&C)', self)
self.ascii = QAction('Ascii(&A)', self)
self.utf = QAction('UTF(&U)', self)
self.utf8 = QAction('UTF8(&V)', self) self.menu = self.menuBar()
self.file = self.menu.addMenu('File(&F)')
self.file.addAction(self.open)
self.file.addAction(self.close) self.langurage = QMenu('Langurage(&L)', self)
self.langurage.addAction(self.ascii)
self.langurage.addAction(self.utf)
self.langurage.addAction(self.utf8)
self.menu.addMenu(self.langurage) def initToolBar(self):
self.fileToolBar = self.addToolBar('File')
self.fileToolBar.addAction(self.open)
self.fileToolBar.addAction(self.close) self.langurageToolBar = self.addToolBar('Langurage')
self.langurageToolBar.addAction(self.ascii)
self.langurageToolBar.addAction(self.utf)
self.langurageToolBar.addAction(self.utf8) def initStatusBar(self):
self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)
self.statusBar.showMessage('V1.0.0') def initCenter(self):
self.widget = QWidget(self)
self.setCentralWidget(self.widget)
label = QLabel(self.widget)
label.setText('center widget') if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.resize(500, 300)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
小技巧
QAction中使用&可以设置快捷键,格式:WidgetName(&X)
对于菜单栏中,要想选中/触发QAction,必须先触发QAction所在的QMenu,不能直接触发QAction
最新文章
- Java 8五大主要功能为开发者提供了哪些便利?
- C++中的static关键字的总结
- C#的winform编程入门简单介绍
- [网络] 用 OpenVPN 实现站对站 VPN 服务
- JQ实现accordion(可折叠)效果
- python矩阵运算 不断收集整理
- hadoop2.5.1搭建(二)
- PHP读取文件头(2字节)判断文件类型(转)
- android USB OTG功能实现
- js中字符串转换为日期型
- zzcms8.2#任意用户密码重置#del.php时间盲注#复现
- 简单docker镜像修改方式
- meta 刷新
- sed 正则 ! 取反
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第5章编程练习7
- HTML条件注释
- 聊聊Java happens-before原则
- springboot发送邮件
- 搭建mysql cluster
- word2vec原理知识铺垫
热门文章
- react 使用的方法:
- Consul入门初识
- 3、尚硅谷_SSM高级整合_创建Maven项目.avi
- MySql索引要注意的8个事情
- 深度学习“四大名著”发布!Python、TensorFlow、机器学习、深度学习四件套!
- Windows Defender might be impacting your build performance
- 如何判断一个String字符串不为空或这不为空字符串
- Glusterfs读写性能测试与分析
- 小白写了一堆if-else,大神实在看不下去了,竟然用策略模式直接摆平了
- ORA-04063: package body ";DBSNMP.BSLN_INTERNAL"; has errors