2

我正在使用 pyqt4 的 QWebView 来显示 html 文件,这样它就像一个应用切换器一样工作。我遇到的一个问题是无法授予 HTML5 Geo Location 访问权限。我在另一个关于同一主题的问题中读到,不幸的是,QWebPage 需要一个信号,该代码与 c++ 有关,所以我不确定如何将它转换为 python,因为我是 pyqt4 的新手。因此,如果问题不清楚;如何让 QWebView 允许 HTML5 GeoLocation?

这是我到目前为止所拥有的

class HTML_handler(QtWebKit.QWebView):

def __init__(self):
    super(HTML_handler,self).__init__()
    self.initUI()
def initUI(self):
    page = webpage()


    page.mainFrame().setUrl(QtCore.QUrl("file:///home/dev/Documents/WebPages/weather.html"))
    self.setPage(page) 

    #self.load(QtCore.QUrl("file:///home/dev/Documents/WebPages/weather.html")) //method before introducing QWebPage
    self.setWindowFlags(QtCore.Qt.FramelessWindowHint) #| QtCore.Qt.WindowStaysOnTopHint)
    self.loadApps()

    self.show() #FullScreen()


class webpage(QtWebKit.QWebPage):

    trigger = QtCore.pyqtSignal(); //not used because can\'t figure how to

    def __init__(self):
       super(webpage,self).__init__()

    def featurePermissionRequested(self, *args, **kwargs): //QWebPage signal, not being used correctly though
        self.setFeaturePermission(QtWebKit.QWebPage.PermissionGrantedByUser)

编辑:或者至少告诉我如何将其转换为 python

class WebPage : public QWebPage
{
   Q_OBJECT

public:
    WebPage(QObject* parent = 0) :
        QWebPage(parent)
    {
        connect(this, SIGNAL(featurePermissionRequested(QWebFrame*, QWebPage::Feature)), SLOT(permissionRequested(QWebFrame*, QWebPage::Feature)));
    }

    virtual ~WebPage()
    {
    }

private slots:
    void permissionRequested(QWebFrame* frame, QWebPage::Feature feature)
    {
        setFeaturePermission(frame, feature, PermissionGrantedByUser);
    }
};
4

0 回答 0