如何在wxpython的html窗口中插入动态字符串?(wx.html.htmlwindow)

2 投票
2 回答
642 浏览
提问于 2025-04-16 01:33

我正在用wxpython制作一个html窗口,想要打印它。在这之前,我需要在html页面上输入用户的信息(比如他的名字之类的)。请问怎么才能做到这一点呢?谢谢!

2 个回答

0

我想到几种方法。如果你要做的是一种表格信件,只需要替换特定的部分,那么你可以把这个模板展示给用户,并让他们填写一些文本框。比如这样:

亲爱的 #NAME,

感谢您联系 #COMPANY,等等等等。

然后为每个需要替换的部分提供一个文本框。另一种方法是使用 RichTextCtrl 的“另存为 HTML”功能。你可以查看 wxPython 演示应用程序,里面有个例子。

1

使用 Jinja2

创建一个HTML模板,在需要显示用户输入的数据的地方放置变量。然后用一个包含这些数据的字典来渲染这个模板。

在这里,我会给你写一个辅助模块。

# templates.py
import jinja2 as jinja

def create_env():
    loader = jinja.FileSystemLoader(PATH_TO_YOUR_TEMPLATES)
    env = jinja.Environment(loader=loader)
    return env

env = create_env()

def render(name, context=None):
    context = context or {}
    return env.get_template(name).render(context)

# my_module.py
import templates

data = {
    'first_name': 'John',
    'last_name': 'Smith',
}

html = templates.render('my_template.html', data)
# do something with html string

# my_template.html
<p>Hello, {{ first_name }} {{ last_name }}.  This is a template.</p>

撰写回答