嘿那里
我是新人,这是我的第一个小项目,所以要理解。
我需要为将用作模板的文档创建布局,并且最后将填充从数据库收集并打印的数据。还没有创建数据库
所以,就目前而言,我已经建立了当地的变种来解决这个问题。我想要这一点
数据片段在非常具体的位置。我检查了QTextDocument文档,它看起来像
这个工作的好工具,但我不知道如何为它创建布局。
任何指针都非常赞赏。
编辑:网络上关于这个主题的内容并不多。虽然我能找到this thread
这几乎是我在寻找的东西。但是,我希望将许多变量放入html中,因此“.format”选项似乎没有什么大不了的。谁知道更好的解决方案?
答案 0 :(得分:1)
Qt中有许多支持HTML的小部件。 QTextDocument应该工作,也是QLabel。 在我的项目中,我使用了QtWebKit.QWebView,因为我需要表格而且我认为其他小部件没有这样做(但我不再确定了,如果你需要,请查看文档)。 / p>
在我看来," .format"如果你使用命名参数,并不是压倒性的,并且足够我的目的。使用字典作为参数值也可能有用
示例代码:
from PyQt4 import QtGui
from PyQt4 import QtWebKit
class DisplayHTML(QtWebKit.QWebView):
def __init__(self, html, parent=None):
super().__init__(parent)
self.setHtml(html)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
html_template = "<html><p>Hello, {first}, how {second} you {third}?</p></html>"
values_dict = {
'first': 'Joe',
'second': 'are',
'third': 'today',
}
html_ready_to_render = html_template.format(**values_dict)
window = DisplayHTML(html_ready_to_render)
window.show()
sys.exit(app.exec_())
编辑:你不需要创建一个新类来做这么简单的事情,只需使用QWebView()并在其上调用setHtml()......
答案 1 :(得分:0)
from PyQt4 import QtGui
from PyQt4 import QtWebKit
class DisplayHTML(QtWebKit.QWebView):
def __init__(self, html, parent=None):
super().__init__(parent)
self.setHtml(html)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
html_template = "<html><p>Hello, {first}, how {second} you {third}?</p></html>"
values_dict = {
'first': 'Joe',
'second': 'are',
'third': 'today',
}
html_ready_to_render = html_template.format(**values_dict)
window = DisplayHTML(html_ready_to_render)
window.show()
sys.exit(app.exec_())