如何用pyqt处理html表单?

-1 投票
3 回答
863 浏览
提问于 2025-04-16 21:48

我正在使用QTextBrowser来显示静态的HTML文档。我想在这些文档里嵌入表单,但我不知道怎么用Python或PyQt来处理这些表单。因为我正在开发的是一个桌面应用,所以QWebView对我来说不是一个很好的选择。

3 个回答

-1

考虑在你的桌面应用程序中实现一个Python服务器(可以看看SimpleHTTPServer模块的相关内容,在这里)。

你可以把静态的HTML页面或者包含表单的页面“提供”给应用程序里的浏览器(通过请求'localhost/...'来获取页面),同时也能接收GET或POST请求。

0

表单提取器示例 在 [pythondir]\Lib\site-packages\PyQt4\examples\webkit\formextractor 里可以找到更符合Python风格的版本。这个示例应该和PyQt一起安装。

0

首先,想想你是否真的需要用HTML来做这件事。如果不需要,那就简单多了。如果可以的话,尽量使用标准的Qt表单组件。

如果因为某些原因你确实需要在一个真正的HTML文档里使用HTML表单,那你就不能用QTextBrowser。要知道,QTextBrowser的功能有限,它并不是一个完整的浏览器,而只是一个相对高级的富文本渲染器,支持大部分简单显示所需的HTML内容。但它有两个重要的缺点:不支持JavaScript和表单。QWebView和QtWebkit包里的其他组件使用的是完整的HTML渲染器(WebKit),所以你可以使用表单等功能,获得更多的交互性。你可以给它一个本地路径(或者使用Qt资源),所以它是“桌面应用”这一点并不重要,然后你可以通过JavaScript把页面上的表单数据传递给你的应用。不过,这样做就相当于放弃了很多已经为你完成的工作。

如果可能的话,最好还是用标准的Qt控件来构建你的表单。

撰写回答