2017-07-25 111 views
0

我试图创建一个应用程序,其中包含一个网页浏览器,但是当我添加网页浏览器时,我的菜单栏在视觉上消失但功能仍然存在。以下是两个图像,一个显示“self.centralWidget(self.web_widget)”注释掉,另一个允许该行运行。如果你运行示例代码,你也会看到,虽然在视觉上看起来整个网页就好像菜单栏不存在一样,但你必须点击每个输入字段和按钮的下方才能激活它,表现方式就像菜单栏实际上是存在的。PyQt WebEngineView干扰MainMenu

的Web控件注释掉 enter image description here

网站的widget主动 enter image description here

示例代码

import os 
import sys 
from 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() 
    sys.exit(app.exec_()) # only need one app, one running event loop 

开发环境 的Windows 10,PyQt5,pyqt5-5.9

编辑

似乎问题不直接相关的菜单栏。即使删除菜单栏,问题仍然存在。也就是说,从showMaximized()更改为showFullScreen()似乎解决了这个问题。

+0

这个问题似乎是唯一的视觉,你试图改变菜单的背景颜色。在Linux中,没有观察到这种效果,如下图所示:http://imgur.com/a/S2Qiu – eyllanesc

+0

@eyllanesc你是什么意思我试图改变菜单的背景颜色?我正在开发Windows FYI,我会更新这个问题来反映这一点。 – aoh

+0

另外,对我来说问题不仅仅是视觉上的问题。如果我点击显示“名字”的文本框,则不会发生任何事情。我需要点击下面(如果菜单栏在那里,它应该在那里)发生任何事情。 – aoh

回答

2

我不再相信这是PyQt5的问题,而是图形驱动程序的一个问题。特别是,如果你看看Atlassian的HipChat应用它具有在这里是一个类似的问题: https://jira.atlassian.com/browse/HCPUB-3177

有些人能够通过与编运行从命令提示符应用程序来解决问题“ - 禁用GPU “但这对我的python应用程序不起作用。另一方面,回滚Intel(R)HD Graphics Driver确实解决了我的问题。版本21.20.16.4627是似乎造成问题的那个。

enter image description here