python-在HTML元素中用Word包装Qt Qlabel文本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-在HTML元素中用Word包装Qt Qlabel文本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3109字,纯文字阅读大概需要5分钟。
内容图文
![python-在HTML元素中用Word包装Qt Qlabel文本](/upload/InfoBanner/zyjiaocheng/675/3453a960643f47f0b3dfa9841dd85443.jpg)
介绍:
我正在尝试在QT中绘制分页的论坛帖子.我的一些最初工作导致了带有嵌套标签的QFrame(屏幕快照显示为here).从那时起,我不得不将引号与常规文本混合在一起,并且我需要使用动态标签来以当前的方式进行操作(即,一个帖子实例可能有5个引号和7个常规文本= 13个QLabel,并且每次我绘制一个新的帖子实例时)我重新创建所有QLabel.创建和销毁QLabels非常昂贵,我看到了视觉上的滞后.
因此,我决定尝试使用HTML在单个QLabel中进行操作.我选择了概述的方法here,以使用模拟的垂直线分隔发布元数据和发布正文.
垂直线工作正常,但是我无法将文章正文换行.我怀疑QT的html引擎难以强制执行,而且我不是HTML专家.
题:
如何获得以下代码以自动换行到固定宽度(即垂直增长).
from PyQt4.QtGui import QApplication, QLabel
import sys
html = '''
<table cellspacing="5" border="0" cellpadding="0">
<tr valign="top" align="left">
<td style="padding-right: 10px;" width="100">
<p>#%s<br>
<b>User:</b> %s<br>
<b>posted at:</b> %s </p>
</td>
<td width="1" bgcolor="#00FFFF"><BR></td>
<td style="padding-left: 10px;" width="100" valign="top" align="left">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum. </p>
</td>
</tr>
</table>
''' % (1, "hassan", "sunday")
app = QApplication(sys.argv)
l = QLabel(html)
l.show()
app.exec_()
sys.exit()
结果是:
注意:不考虑宽度,也没有自动换行.
哦,如果你想炫耀一下,请随时为帖子添加样式并显示引用区域:D
编辑:
我尝试更改帖子正文小部件(而不是更改整个小部件),它是带有QLabels的QVBoxLayout.我用< p>将其更改为单个QLabel.和< blockquote>.而且该组合确实可以自动换行.尽管可以正常工作,但布局标签方法看起来更好.
因此,也许我应该修改设计并维护Quote Widgets常规文本标签的列表,以便通过重新整理消除视觉滞后.
即使有人可以根据上面的代码创建和张贴论坛帖子的html表示形式,也可能是更可靠的解决方案.
编辑2:
在我的案例中,虽然有可能使基于HTML的样式能够处理单个QLabel,但在尝试使其工作之后,我得出的结论是,多QLabel方法以更可控的方式对事物进行了布局,而无需付出太多努力我这边.我会坚持下去.
/
解决方法:
在这种情况下,自动换行问题可能是由QLabel的使用引起的,而不是html引擎的任何限制.
默认情况下,word-wrapping是关闭的,因此请尝试:
l = QLabel(html)
l.setWordWrap(True)
l.show()
内容总结
以上是互联网集市为您收集整理的python-在HTML元素中用Word包装Qt Qlabel文本全部内容,希望文章能够帮你解决python-在HTML元素中用Word包装Qt Qlabel文本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。