❶ 实战!在Python中制作精美的图形用户界面
在默认情况下,使用PyQt5创建的窗口和部件使用的是自带的默认样式,设计感不足。然而,在PyQt5中,我们能够以高度的自由度来自定义窗口和各种小部件的样式,通过这种自定义,我们可以达到美化图形界面的目的。本篇内容将通过一个实际的例子,使用QSS(Qt样式表)和PyQt5的配置属性,展示如何实现图形用户界面的美化工作。
首先,让我们欣赏一下最终的成果:
这个界面由9张音乐封面图片作为素材构成。需要这些图片素材的读者可以在【州的先生】微信公众号(ID:zmister2016)回复关键词“0013”获取下载链接。
在设计界面时,我们采用了网格布局,将窗口分为左侧菜单模块和右侧内容模块。接下来,我们将详细介绍界面的布局和组件的布置过程。
在左侧菜单模块中,我们使用网格布局对部件进行布局。其中包括左侧菜单的按钮、菜单列提示和整个窗口的最小化与关闭按钮。在MainUi()类的init_ui()方法中,我们实例化创建了按钮,并使用qtawesome库添加了Font Awesome字体图标。然后,将创建的按钮添加到了左侧部件的网格布局层中。
右侧内容模块包含了多个主要模块。在搜索模块中,我们使用了QLable()部件和QLineEdit()部件来实现文本和搜索框的功能。在推荐音乐模块中,我们添加了推荐音乐的标题和横向排列的音乐封面列表。音乐列表模块和音乐歌单模块分别使用网格布局的QWidget()部件下包裹着数个QPushButton()按钮部件和QToolButton()工具按钮部件来实现。
接下来,我们实现了音乐播放进度条和播放控制按钮组。音乐播放进度条使用了QProgressBar()部件,音乐播放控制按钮组则使用了一个QWidget()部件下包裹着三个QPushButton()按钮部件来实现。
通过QSS和部件属性,我们对窗口部件进行了美化。例如,我们将左侧的窗口控制按钮设置为小圆点形式,美化了左侧菜单按钮的颜色和边框,对右侧背景、搜索框和模块文本进行了圆角处理,调整了推荐模块、歌单模块和歌曲列表模块的样式,以及播放进度条和播放控制按钮组的外观。
最后,我们通过设置窗口背景为透明、去除窗口边框和调整布局内部件的间隙,使界面更加完整和美观。至此,我们的图形界面美化工作已完成。