2017-07-25 131 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