在默认情况下,我们使用PyQt5创建出来的窗口和部件都是默认的样式,虽然谈不上很丑,但是也毫无美感可言。其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式,以达到美化图形界面的目的。

本篇文章中,我们就通过一个实际的例子,使用QSS和PyQt5的配置属性,实现图形用户界面的美化工作。

首先上效果图:

一、对界面进行布局和组件的布置

在图像界面编程中,一个好的布局有助于全局把控界面的形态,而在PyQt5中,有多种布局的方式供我们选择,比较常用的布局有以下几种:

表单布局:QFormLayout

网格布局:QGridLayout

水平排列布局:QHBoxLayout

垂直排列布局:QVBoxLayout

每种布局都有自己对布局内小部件的控制方式和特点,在此我们选择网格布局作为本次图形界面布局的方案。

在网格布局内,使用两个QWidget()部件分别作为左侧菜单模块的部件和右侧内容模块的部件。所以这个图形界面的最基本结构代码如下所示:

# coding:utf-8

from PyQt5 import QtCore,QtGui,QtWidgets

import sys

import qtawesome

class MainUi(QtWidgets.QMainWindow):

def __init__(self):

super().__init__()

self.init_ui()

def init_ui(self):

self.setFixedSize(960,700)

self.main_widget = QtWidgets.QWidget() # 创建窗口主部件

self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局

self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局

self.left_widget = QtWidgets.QWidget() # 创建左侧部件

self.left_widget.setObjectName('left_widget')

self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层

self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格

self.right_widget = QtWidgets.QWidget() # 创建右侧部件

self.right_widget.setObjectName('right_widget')

self.right_layout = QtWidgets.QGridLayout()

self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格

self.main_layout.addWidget(self.left_widget,0,0,12,2) # 左侧部件在第0行第0列,占8行3列

self.main_layout.addWidget(self.right_widget,0,2,12,10) # 右侧部件在第0行第3列,占8行9列

self.setCentralWidget(self.main_widget) # 设置窗口主部件

def main():

app = QtWidgets.QApplication(sys.argv)

gui = MainUi()

gui.show()

sys.exit(app.exec_())

if __name__ == '__main__':

main()

运行代码,呈现出来的图形界面如下图所示:

空空荡荡,下面我们就开始往里面填充小部件。

python界面编程实例_python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例...相关推荐

  1. python menu实例_python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例...

    PyQt5菜单栏控件QMenuBar介绍 QMenuBar在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象 QMenuBar类提供了一个可以包含一个或多个QAc ...

  2. python输出文本框_python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方...

    PyQt5多行文本框控件QTextEdit简介 QTextEdit类是一个多行文本框控件,可以显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平个垂直滚动条,Qtextedit不仅可以用来显 ...

  3. python界面设计资源库_python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法...

    PyQt5 Qt Designer (Qt设计师) PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C++开发, 并且跨平台. PyQt双许可 ...

  4. python图形界面设计代码_python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方...

    PyQt5 Qt Designer (Qt设计师) PyQt5是对Qt所有类进行封装, Qt能开发的东西, PyQt都能开发. Qt是强大的GUI库之一, 用C++开发, 并且跨平台. PyQt双许可 ...

  5. python 动态调整控件大小_python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例...

    PyQt5动态(可拖动控件大小)布局控件QSplitter简介 PyQt还提供了特殊的布局管理器QSplitter.它可以动态地拖动子控件之间的边界,算是一个动态的布局管理器,QSplitter允许用 ...

  6. python界面设计实例qt_python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例...

    在默认情况下,我们使用PyQt5创建出来的窗口和部件都是默认的样式,虽然谈不上很丑,但是也毫无美感可言.其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式, ...

  7. python嵌套html开发gui_python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例...

    PyQt5布局控件QFormLayout简介 QFormLayout是label-field式的表单布局,顾明思议,就是实现表单方式的布局,表单是提示用户进行交互的一种模式,主要有两列组成,第一列用于 ...

  8. pythongui项目实例_python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例...

    PyQt5状态栏控件QStatusBar简介 MainWindow对象在底部保留有一个水平条,作为状态栏(QstatusBar),用于显示永久或临时的状态信息 QStatusBar类中的常用方法 方法 ...

  9. qpython3可视图形界面_python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法...

    QWidget基本介绍 基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类. 窗口坐标系统 PyQt使用统一的坐标系统来定位窗口控件的位置和 ...

最新文章

  1. 用Windows Live Writer在51CTO写博客
  2. Unable to open a test connection to the given database.
  3. 博士四年8篇CNS主刊论文,清华大学优秀科研团队叫做“沈飞党”
  4. 当我不再依赖你的时候说说_不要依赖任何人说说 不要指望别人的经典话
  5. [AWDwR4] No JQuery call matches [:html, #cart]
  6. 查看oracle会话空闲时间,使用Oracle PROFILE控制会话空闲时间
  7. .c和.h文件的区别(转载)
  8. Spring的IOC理解(转载)
  9. 怎么查看Java的源代码
  10. 【项目简介】LinkWeChat:基于企业微信开源系统
  11. 计算机应用基础 电子科技大学出版社,大学计算机基础课本答案(电子科技大学出版社)...
  12. Energyplus运行提示缺失.OCX文件的解决方法
  13. 独立显卡与集成显卡的区别
  14. 帝国网站mysql 数据库开发_帝国cms phpmyadmin数据库操作及密码修改
  15. 第二章 马尔可夫决策过程及表格型方法
  16. win7系统中的消息队列服务器,高手分析win7系统安装消息队列的详细
  17. 滕州小学计算机教室,东湖教育四十年|滕州小学--小学校 大世界
  18. 百度地图 标记聚合器MarkerClusterer结合TextIconOverlay,根据标记点的属性更换聚合器的样式
  19. Python学习笔记1入门+简单结构+数据类型+常用操作符
  20. Java、JSP等足球俱乐部网站

热门文章

  1. python 全局变量使用报错没有定义_python跨文件使用全局变量的实现
  2. 登陆界面网页代码_Opera Touch移动浏览器登陆iPad 并引入隐私浏览模式
  3. 剑指offer面试题10- II. 青蛙跳台阶问题(动态规划)(递归)(斐波那契数列)
  4. 类和对象编程(六):内联函数
  5. C#设计模式---模板方法模式(Template Method Pattern)
  6. 7. Flask 大型程序的结构
  7. Python学习之路3 - 字符串操作字典
  8. hiho一下第91周《Events Arrangement》(前半部分)
  9. 我对于男人喜欢喷香水是觉得很恶心的一件事
  10. 如何在ViewModel中正确地使用Timer(定时器)