python 显示html_如何使用python在本地显示带有html表单的网...
我是一名行為科學家,通常通過讓參與者在計算機上執行某些任務并記錄他們的響應來收集數據(我使用pyglet包裝器PsychoPy編寫程序).也就是說,程序在本地運行,數據存儲在本地.
現在我想知道是否有辦法使用Python向用戶顯示帶有html表單的(本地)網站并收集輸入(本地).這個想法的原因是,當我想要顯示復選框,單選按鈕或輸入字段時,我使用wxPython.這很好用,但是wxPython中的編程和布局有點麻煩,我更喜歡帶表單的html.
一個要求是它需要朗姆酒沒有任何邊框,地址字段,菜單欄,…原因是我需要它以某種全屏模式(我目前打開一個非全屏pygflet窗口的大小的屏幕以隱藏桌面),以便參與者除了處理表單之外什么都不做.
所以我正在尋找一種方法來(a)顯示html網站,包括沒有菜單欄的pyglet窗口上面的html表格,或者(b)點擊Ok按鈕收集輸入(即表格發送),( c)控制在查看本網站之前和之后呈現的內容,以及(d)所有內容都應在本地進行!
我的想法是,當參與者點擊以下示例pic中的“發送”按鈕并顯示下一頁時,將收集數據.
更新:我使用Windows(XP或7).
最佳答案
這是使用Qt Webkit呈現HTML的解決方案.默認導航請求處理程序由檢查提交的表單請求的函數包裝.表單使用“get”方法,因此數據包含在請求的url中,并且可以通過該方式檢索.原始請求被拒絕,您可以根據需要更改顯示的網頁的內容.
from PyQt4 import QtGui, QtWebKit
app = QtGui.QApplication([])
view = QtWebKit.QWebView()
# intercept form submits
class MyWebPage(QtWebKit.QWebPage):
def acceptNavigationRequest(self, frame, req, nav_type):
if nav_type == QtWebKit.QWebPage.NavigationTypeFormSubmitted:
text = "
".join(["%s: %s" % pair for pair in req.url().queryItems()])
view.setHtml(text)
return False
else:
return super(MyWebPage, self).acceptNavigationRequest(frame, req, nav_type)
view.setPage(MyWebPage())
# setup the html form
html = """
Like it?
Yes
No
"""
view.setHtml(html)
# run the application
view.show()
app.exec_()
總結
以上是生活随笔為你收集整理的python 显示html_如何使用python在本地显示带有html表单的网...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css 设置背景图一半_CSS背景图设置
- 下一篇: python中所有保留字首字母都是小写_