11
11
from __future__ import division
12
12
from __future__ import print_function
13
13
14
+ # Import built-in modules
15
+ import re
16
+
14
17
# Import third-party modules
15
18
from Qt import QtCore
16
19
from Qt import QtWidgets
@@ -132,15 +135,15 @@ def text(self):
132
135
133
136
:returns: The original unmodified text
134
137
"""
135
- return self .property ("text " )
138
+ return self .property ("dayu_text " )
136
139
137
140
def setText (self , text ):
138
141
"""
139
142
Overridden base method to set the text on the label
140
143
141
144
:param text: The text to set on the label
142
145
"""
143
- self .setProperty ("text " , text )
146
+ self .setProperty ("dayu_text " , text )
144
147
self ._update_elided_text ()
145
148
self .setToolTip (text )
146
149
@@ -160,10 +163,18 @@ def _update_elided_text(self):
160
163
Update the elided text on the label
161
164
"""
162
165
_font_metrics = self .fontMetrics ()
163
- text = self .property ("text " )
166
+ text = self .property ("dayu_text " )
164
167
text = text if text else ""
165
- _elided_text = _font_metrics .elidedText (text , self ._elide_mode , self .width () - 2 * 2 )
166
- super (MLabel , self ).setText (_elided_text )
168
+ # 检查文本是否包含 HTML 标签
169
+ is_html = bool (re .search (r"<[^>]+>" , text ))
170
+
171
+ if is_html :
172
+ # 如果文本包含 HTML 标签,直接设置富文本
173
+ super (MLabel , self ).setText (text )
174
+ else :
175
+ # 否则,使用省略模式设置文本
176
+ _elided_text = _font_metrics .elidedText (text , self ._elide_mode , self .width () - 2 * 2 )
177
+ super (MLabel , self ).setText (_elided_text )
167
178
168
179
def resizeEvent (self , event ):
169
180
"""
0 commit comments