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

PyQt5主界面的更多相关文章

  1. pyqt5 主界面打开新主界面、打开Dialog、打开提示框的实现模板

    import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ###### ...

  2. pyqt5 主界面打开新主界面的实现

    import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * ###### ...

  3. PyQt5实现界面跳转

    网上关于PyQt5的教程很少,特别是界面跳转这一块儿,自己研究了半天,下来和大家分享一下 一.首先是主界面 1 # -*- coding: utf-8 -*- # Form implementatio ...

  4. android布局实践——模仿微信主界面

    这是目前微信6.0版本的主界面 先来分析一波: 1.(top.xml)界面头部有一个微信(6)消息提醒    一个搜索图标   一个更多的的图标+,中间还有一段空白,我们可以弄两个textView(其 ...

  5. 使用DotNetBar制作漂亮的WinFrom界面,自定义AgileEAS.NET SOA平台WinClient主界面

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  6. delphi 一个线程和主界面的交互的演示代码

    求一个线程和主界面的交互的演示代码求一个线程和主界面的交互的演示代码.线程和主界面处于两个Unit.线程中的user中不能引用主窗口.我只是想学习一下,线程和主界面交互的方法.去网上查了好几天资料,能 ...

  7. Winform开发主界面菜单的动态树形列表展示

    我在之前很多文章里面,介绍过Winform主界面的开发,基本上都是标准的界面,在顶部放置工具栏,中间区域则放置多文档的内容,但是在顶部菜单比较多的时候,就需要把菜单分为几级处理,如可以在顶部菜单放置一 ...

  8. 安卓开发_慕课网_Fragment实现Tab(App主界面)

    学习内容来自“慕课网” 这里用Fragment来实现APP主界面 思路: 底部横向排列4个LinearLayout,每个LinearLayout包含一个图片按钮和一个文字 1.默认显示第一个功能(微信 ...

  9. 关于VS打包程序无法弹出主界面的问题

    代码中的程序很正常,VS打包之后,无法弹出主界面的问题. 这种问题,一般是缺少程序加载所必须的东西,包括dll,配置文件等. (1)程序主界面使用的是DevExpress,DevExpress的相关类 ...

随机推荐

  1. 容器中的Java堆大小调整:快速,轻松

    在上一篇博客中,我们已经看到Java进行了改进,可以根据正在运行的环境(即物理机或容器(码头工人))识别内存.java的最初问题是,它无法弄清楚它是否在容器中运行,并且它曾经为容器运行所在的整个硬件捕 ...

  2. android handle详解2 主线程给子线程发送消息

    按照android handler详解分析的原理我们可以知道,在主线程中创建handle对象的时候,主线程默认创建了一个loop对象使用threalocal函数将loop对象和主线程绑定. 我们能不能 ...

  3. 【C++和C#的区别杂谈】后自增运算符的结算时机

    C++和C#的前自增++n和后自增n++,都是先自增后取值和先取值后自增的含义,但在复杂一点的赋值语句中,我发现细节上有很大的差异. 发现这个问题主要是一个无聊的晚上,我想搞清楚后自增是什么时候结算, ...

  4. 入门大数据---Flume的搭建

    一.下载并解压到指定目录 崇尚授人以渔的思想,我说给大家怎么下载就行了,就不直接放连接了,大家可以直接输入官网地址 http://flume.apache.org ,一般在官网的上方或者左边都会有Do ...

  5. 入门大数据---ClouderaManager和CDH是什么?

    1.CDH概述 CDH(Cloudra's Distribution Apache Of Hadoop)是Apache Hadoop和相关项目的最完整,经过测试和最流行的发行版.CDH提供Hadoop ...

  6. Redis系列(六):数据结构QuickList(快速列表)源码解析

    1.介绍 Redis在3.2版本之前List的底层编码是ZipList和LinkedList实现的 在3.2版本之后,重新引入了QuickList的数据结构,列表的底层都是QuickList实现 当L ...

  7. Python内置函数和内置常量

    Python内置函数 1.abs(x) 返回一个数的绝对值.实参可以是整数或浮点数.如果实参是一个复数,返回它的模. 2.all(iterable) 如果 iterable 的所有元素为真(或迭代器为 ...

  8. 腾讯云Centos搭建web运行环境

    需要上传或者下载,需要使用rz和sz命令.如果linux上没有这两个命令工具,则需要先安装.可以使用yum安装.运行命令yum install lrzsz. rz是上传,sz是下载. 在win上下载好 ...

  9. Emergency Evacuation 题解

    The Japanese government plans to increase the number of inbound tourists to forty million in the yea ...

  10. MYSQL 之 JDBC(十一): JDBC获取插入记录的主键值

    取得数据库自动生成的主键值 package com.litian.jdbc; import javax.swing.plaf.nimbus.State; import java.sql.*; /** ...