派生社区 Python GUI 编程课程(下卷):16. 文字裁剪

[复制链接]
作者: ika | 时间: 2021-1-25 08:32:07 | 高级编程|
2 212
发表于 2021-1-25 08:32:07| 显示全部楼层 |阅读模式


前情回顾:

派生社区 Python GUI 编程课程(下卷):15. 翻页
https://bbs.266.la/forum.php?mod=viewthread&tid=1471
(出处: 派生社区)






网盘下载地址:

游客,如果您要查看本帖隐藏内容请回复




一、实现文字裁剪效果图


二、实现文字裁剪代码

[Python] 纯文本查看 复制代码
安装事件过滤器
self.window.installEventFilter(self)
​
def eventFilter(self,obj,event):  #obj:事件触发源
    if obj is self.window:
        if event.type() == QEvent.Resize or event.type() ==QEvent.UpdateRequest:#判断事件类型
            for line in self._widgets:
                line.resize_title()
​
​
def resize_title(self):
    width = self._wifget.verticalLayout.contentsRect().with() - 20  #定义宽度
    self.label_cut(self._widget.label_tiele,self._info['title'],width)#调用label_cut()
    pass
​
​
@staticmethod
def label_cut(label,text,width=None):
    if width is None:
        width = label.width()
    fm = QFontMetrics(label.font) #文字裁剪
    elidedText = fm.elidedText(text,Qt.ElideRight,width) #对内容进行裁剪(裁剪文本,裁剪方法,裁剪宽度)
    label.setText(elidedText) #裁剪结果应用到标签上面
    label.setToolTip(text)   #鼠标放上去出现提示文字

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1好评 +1 金币 +10 收起 理由
大司命 + 1 + 10 感谢发布原创作品,派生因你更精彩!

查看全部评分

签到天数: 9 天

发表于 2021-3-2 22:03:13| 显示全部楼层
#在这里快速回复#感谢发布原创作品,派生因你更精彩!
回复

使用道具 举报

发表于 2021-2-28 18:13:56| 显示全部楼层
1111111111111
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

!jz_fbzt! 快速回复 !jz_sctz! !jz_fhlb! 按钮
快速回复 返回列表 返回顶部