我如何使用pyqt处理html表单?
我正在使用 QTextBrowser 显示静态 html 文档。我想将表单嵌入到这些文档中,但我似乎不知道如何使用 python 或 pyqt 处理这些表单。正在构建的应用程序是一个桌面应用程序,因此 QWebView 不是一个选择。
I am using QTextBrowser to display static html documents. I want to embed forms inside these documents but i can't seem to figure out how am going to process these forms using python or pyqt. The application am building is a desktop app so QWebView ain't much of an option.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
考虑一下您是否需要在 HTML 中执行此操作。如果你不这样做,事情就会容易得多。如果可能,请使用标准 Qt 表单组件。
如果由于某种原因您确实需要在具有 HTML 表单的实际 HTML 文档中执行此操作,则您将无法使用 QTextBrowser 来执行此操作。请注意,QTextBrowser 的功能有限;它不是一个完整的浏览器,而只是使用一个相当先进的富文本渲染器,它支持 HTML 中简单显示所需的大部分内容。它不支持的两个重要内容是 JavaScript 和表单。 QWebView 和 QtWebkit 包中的其他东西正在使用带有所有修饰(WebKit)的完整 HTML 渲染器,因此您可以使用其中的表单之类的东西并获得更多交互。您将能够给它一个本地路径(或使用 Qt 资源),因此它是“桌面应用程序”这一事实并不重要,然后您可以通过 JavaScript 将表单数据从页面提供给您的应用程序。但你会浪费大量已经为你完成的工作。
如果可以的话,只需使用标准 Qt 小部件构建表单即可。
Consider whether you need to do it in HTML. If you don't, it will be much easier. If possible, use the standard Qt form components.
If for some reason you do need to do it in an actual HTML document with HTML forms, you will not be able to do it with a QTextBrowser. Be aware that QTextBrowser has limited functionality; it is not a full browser, but is rather just using a fairly advanced rich-text renderer which supports most of the things in HTML that will be wanted for simple display. Two important things that it doesn't support are JavaScript and forms. QWebView and other things in the QtWebkit package are using a full HTML renderer with all the trimmings (WebKit), so you can use things like forms from them and get more interaction. You will be able to give it a local path (or use a Qt resource), so the fact that it is "a desktop app" doesn't matter, and then you can feed the form data from the page to your app through JavaScript. But you'd be throwing away an awful lot of work that's been done for you already.
If you possibly can, just build your form using standard Qt widgets.
表单提取器示例
在 [pythondir]\Lib\site-packages\PyQt4\examples\webkit\formextractor 中查看 pythonic 版本。这应该与 PyQt 一起安装
Form Extractor Example
Look pythonic version in [pythondir]\Lib\site-packages\PyQt4\examples\webkit\formextractor. This should be installed with PyQt
考虑在桌面应用程序中实现 Python 服务器(例如,在此处阅读有关 SimpleHTTPServer 模块的信息)。
您可以在应用程序中向浏览器“提供”包含页面的静态 html 或表单(从 'localhost/...' 请求页面)并接收 get 或 post 请求。
consider implementing a Python server in your desktop application (read e.g. about the SimpleHTTPServer module here).
you can 'serve' your static html or forms containing pages to the browser within your application (requesting pages from 'localhost/...' ) and receive get or post requests.