[PyQt] Implementing QWebEngineView Automatically Shifts GUI Upward

Cody Scott cody at perspexis.com
Tue Dec 18 20:42:08 GMT 2018


This works for me (the web widget is not drawn on top of the menu item) on
Windows 10 with Python 3.7.0 64-bit and

PyQt5==5.11.3
PyQt5-sip==4.19.13



On Thu, 27 Jul 2017 at 12:51, Allan Horn <allan at carbon3d.com> wrote:

> I'm trying to create an application that contains a web browser within it,
> but when I add the web browser my menu bar visually disappears but
> functionally remains in place. The following are two images, one showing
> the "self.centralWidget(self.web_widget)" commented out, and the other
> allows that line to run. If you run the example code, you will also see
> that while visually the entire web page appears as if the menu bar wasn't
> present, you have to click slightly below each entry field and button in
> order to activate it, behaving as if the menu bar was in fact present.
>
> It's interesting that this doesn't happen when on FullScreen mode. It is
> almost as if implementing QEngineView causes the GUI to visually display as
> if it is in FullScreenMode (even though the top "python3" bar remains) but
> practically the GUi still believes all the objects are located as if
> FullScreenMode was disabled.
>
> This appears to only be an issue in windows.
>
> *Development Environment* Windows 10, pyqt5-5.9
>
> *Web Widget Commented Out* [image: enter image description here]
> <https://i.stack.imgur.com/qo2XY.png>
>
> *Web Widget Active* [image: enter image description here]
> <https://i.stack.imgur.com/QFCfj.png>
>
> *Example Code*
>
> import osimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtWebEngineWidgets import *
> class WebPage(QWebEngineView):
>     def __init__(self, parent=None):
>         QWebEngineView.__init__(self)
>         self.current_url = ''
>         self.load(QUrl("https://facebook.com"))
>         self.loadFinished.connect(self._on_load_finished)
>
>     def _on_load_finished(self):
>         print("Url Loaded")
> class MainWindow(QMainWindow):
>     def __init__(self, parent=None):
>         # Initialize the Main Window
>         super(MainWindow, self).__init__(parent)
>         self.create_menu()
>         self.add_web_widet()
>         self.show()
>
>     def create_menu(self):
>         ''' Creates the Main Menu '''
>         self.main_menu = self.menuBar()
>         self.main_menu_actions = {}
>
>         self.file_menu = self.main_menu.addMenu("Example File Menu")
>         self.file_menu.addAction(QAction("Testing Testing", self))
>
>     def add_web_widet(self):
>         self.web_widget = WebPage(self)
>         self.setCentralWidget(self.web_widget)
> if __name__ == "__main__":
>     app = QApplication(sys.argv)
>     main_window = MainWindow()
>     main_window.showMaximized()  #  showFullScreen()
>     sys.exit(app.exec_())  # only need one app, one running event loop
>
>
> _______________________________________________
> PyQt mailing list    PyQt at riverbankcomputing.com
> https://www.riverbankcomputing.com/mailman/listinfo/pyqt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20181218/eebae091/attachment-0001.html>


More information about the PyQt mailing list