Pyside QTextEdit中对部分字体颜色设置方法总结

方法一:

textedit对部分字体颜色进行修改,需要先获取游标位置,再通过HTML的span样式style对颜色的颜色进行设置,将设置好颜色的HTML代码再插入回原位置。代码如下:

def chioce_color(self): 
    color = QColorDialog.getColor() 
    select_text = self.input_text.textCursor() 
    if color.isValid(): 
        self.color.setStyleSheet("background-color:{}".format(color.name())) # 颜色设置按钮的背景颜色 
        print('选中内容:', select_text.insertHtml( '<p><span style="color: {}">{}</span></p>'.format(color.name(), select_text.selectedText())))

从颜色对话框中获取的颜色对象如下:

PySide6.QtGui.QColor.fromRgbF(0.000000, 1.000000, 0.000000, 1.000000)

color.name() 将颜色对象转换为16进制形式

方法二:

通过获取当前文本的字符串格式,然后再将设置的颜色格式追加至原有的格式中。核心代码如下:

select_text = self.input_text.textCursor() # 获取当前光标位置 
text_format = self.input_text.currentCharFormat() # 获取当前字文本的字符串格式
text_format.setForeground(QBrush(QColor(color))) # 设置字体颜色 
select_text.mergeCharFormat(text_format) # 追加格式到原有文本

总结:

方法一采用的HTML的方式,该方法对专门设置颜色没有问题,如果选取的文本的字体大小及字体不是默认值,则会对已设置的字体格式恢复成默认设置,再改变字体的颜色。

方法二是利用QTextCharFormat模块功能,先直接获取了字符串的当前格式,然后再将设置的颜色格式追加到原有的格式中。推荐用这种方法设置。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值