点击蓝字关注
和Auv一起学习
本篇文章是“代码知识分享主题月”的第2篇系列文章。
哈喽,大家好啊~这里是Auv。
上一篇文章中我们演示创建了一个任务管理器工具的ui文件,并实现了功能代码,最终得到了一版可以投入使用的工具:
任务启动器工具界面
工具“能用”还远远不够,为了应对多种需求,我们今天再举例说一说内容搜索及自动补全,多语言翻译和QSS样式。
内容搜索及自动补全
任务管理器投入使用后,最让艺术家叫苦不迭的就是没有搜索和自动补全功能。每次选择任务的时候,都要盯着找半天(我亲测想死...)
其实搜索和自动补全功能实现起来很简单,示例代码如下:
sequence_comboBox = QtWidgets.QComboBox()# set completer for searchcompleter = QtWidgets.QCompleter()completer.setFilterMode(QtCore.Qt.MatchContains) #不仅仅从开头补全completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) #忽略大小写sequence_comboBox.setEditable(True)sequence_comboBox.setCompleter(completer)# set model for the completermodel = QtCore.QStringListModel()model.setStringList(sequence_list)completer.setModel(model)# add itemssequence_comboBox.clear()sequence_comboBox.addItems(sequence_list)
实现内容搜索和自动补全
虽然只是一个小的改动,但用起来真是,美滋滋~~
多语言翻译
有些CG/ VFX公司有外籍同事,因此我们设计工具的时候要提供多语言版本。
1. 创建语言文件
pylupdate4 main_mixin.py -ts zh_CN.ts
2. 翻译语言文件
用Qt语言家打开zh_CN.ts,手动翻译所有字符串:
Qt语言家界面
3. 转换为qm文件
运行命令:
lrelease zh_CN.ts -qm zh_CN.qm -silent
或者点击Qt语言家的工具栏:文件--发布
4. 代码中引入qm文件
from PySide2.QtCore import QTranslatortrans = QTranslator()trans.load("zh_CN") app.installTranslator(trans)
(具体操作步骤请点击:https://www.cnblogs.com/dcb3688/p/4578355.html)
一般来说,大部分工具都需要有多语言版本。我们可以封装一个底层类,然后通过自定义的语言转换接口即可实现工具的多语言切换。
QSS样式
作为一个写代码的“艺术家”,你可能觉得之前的工具界面太low了,工作不够饱和的你也许想重新设计工具外观。
通过修改QSS样式可以很方便实现这一需求,示例代码如下:
widgetStyleSheet = u"QWidget { background-color: #434343}"labelStyleSheet = u"QLabel { border-style:flat;font-weight:500; font-family: Helvetica;color: #BFBFBF;}"# set QSSself.app.setStyleSheet(widgetStyleSheet + labelStyleSheet )
原谅我还是有点low的界面
最好的方式是为所有工具制定统一的QSS样式标准,让工具保持一致的艺术水准,咳咳。
好啦,以上就是工具GUI设计的所有内容。下一篇写什么内容还没想好,先让我叉会儿腰~