2

私はpyqt4のQWebViewを使用してhtmlファイルを表示しています。このようにして、アプリスイッチャーのように機能します。私が遭遇した問題の 1 つは、HTML5 Geo Location へのアクセスを許可できないことです。同じトピックに関する別の質問で、QWebPage でシグナルが必要であるということを読みましたが、残念ながらコードは c++ に関連しているため、pyqt4 を初めて使用するため、Python に変換する方法がわかりません。したがって、質問が明確でない場合。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