Загрузите локальный html-файл в Pyside QwebView

Я хочу загрузить локальный файл HTML (с относительными файлами css и js) в свой виджет QwebView Pyside, но он ничего не показывает. вот мой код:

class SplashWidget(QtGui.QWidget):
    WINDOW_WIDTH= 800
    WINDOW_HEIGHT=600

    WINDOW_TITLE="Splash"
    WINDOW_FOOTER_MESSAGE="Some Text here for [X] Project 2016"
    WINDOW_PARENT=None
    view=None

    def __init__(self, parent=None):
        super(SplashWidget, self).__init__(parent)
        self.WINDOW_PARENT=parent
        self.layout = QtGui.QHBoxLayout()
        self.addWidgets()

        self.view = QWebView(self)
        self.view.setMinimumSize(self.WINDOW_WIDTH,self.WINDOW_HEIGHT-100)
        self.view.setMaximumSize(self.WINDOW_WIDTH,self.WINDOW_HEIGHT-100)
        cwd = os.getcwd()
        self.view.load(QUrl("file://"+cwd+"\\resource\\Splash.html"))
        self.view.show()

        button = MyWidgets.createPushButton("btn",self,100,100,self.complete_name)
        button.move(100,100)

Как я могу это исправить?

мой html файл находится в папке ресурсов в корневом каталоге моего проекта


person Mehdi Akbarian Rastaghi    schedule 15.12.2016    source источник


Ответы (1)


решил просто заменить:

self.view.load(QUrl("file://"+cwd+"\\resource\\Splash.html"))

to:

self.view.load(QUrl.fromLocalFile(cwd+"\\resource\\Splash.html"))
person Mehdi Akbarian Rastaghi    schedule 15.12.2016
comment
Использование os.getcwd() не работает: нет гарантии, что он будет таким же, как корневой каталог вашего проекта. Используйте os.path.dirname(os.path.abspath(__file__)), чтобы получить каталог текущего модуля. - person ekhumoro; 15.12.2016