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

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

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

首先上效果图:

38720200225120500.png

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

在图像界面编程中,一个好的布局有助于全局把控界面的形态,而在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()

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

38820200225120500.jpg

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5是一个用于创建 GUI 程序的工具包。下面是一个使用 PyQt5 创建简单界面的示例代码: ``` import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__main__': app = QApplication(sys.argv) w = QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() sys.exit(app.exec_()) ``` 这段代码会创建一个简单的口,可以调整大小和移动,标题为“Simple”。 如果需要更复杂的界面,可以使用 PyQt5 的布局管理器和件,如 QHBoxLayout、QVBoxLayout、QLineEdit、QPushButton 等。 ```python import sys from PyQt5.QtWidgets import (QApplication, QHBoxLayout, QLabel, QLineEdit, QPushButton, QVBoxLayout, QWidget) class MyApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): nameLabel = QLabel("Name:", self) nameEdit = QLineEdit(self) ageLabel = QLabel("Age:", self) ageEdit = QLineEdit(self) okButton = QPushButton("OK", self) nameLabel.move(20, 20) nameEdit.move(70, 20) ageLabel.move(20, 50) ageEdit.move(70, 50) okButton.move(20, 80) hbox = QHBoxLayout() hbox.addStretch(1) hbox.addWidget(okButton) vbox = QVBoxLayout() vbox.addStretch(1) vbox.addWidget(nameLabel) vbox.addWidget(nameEdit) vbox.addWidget(ageLabel) vbox.addWidget(ageEdit) vbox.addLayout(hbox) self.setLayout(vbox) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Simple') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = MyApp() sys.exit(app.exec_()) ``` 这段代码会创建一个包含包含一个姓名和年龄输入框, 一个“OK”按钮的口。其中使用了QHBoxLayout和QVBoxLayout进行布局,将件QLabel、QLineEdit、QPushButton添加到布局中。口标题为“Simple”.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值