我試圖創建一個應用程序,其中包含一個網頁瀏覽器,但是當我添加網頁瀏覽器時,我的菜單欄在視覺上消失但功能仍然存在。以下是兩個圖像,一個顯示「self.centralWidget(self.web_widget)」註釋掉,另一個允許該行運行。如果你運行示例代碼,你也會看到,雖然在視覺上看起來整個網頁就好像菜單欄不存在一樣,但你必須點擊每個輸入字段和按鈕的下方纔能激活它,表現方式就像菜單欄實際上是存在的。PyQt WebEngineView干擾MainMenu
示例代碼
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()似乎解決了這個問題。
這個問題似乎是唯一的視覺,你試圖改變菜單的背景顏色。在Linux中,沒有觀察到這種效果,如下圖所示:http://imgur.com/a/S2Qiu – eyllanesc
@eyllanesc你是什麼意思我試圖改變菜單的背景顏色?我正在開發Windows FYI,我會更新這個問題來反映這一點。 – aoh
另外,對我來說問題不僅僅是視覺上的問題。如果我點擊顯示「名字」的文本框,則不會發生任何事情。我需要點擊下面(如果菜單欄在那裏,它應該在那裏)發生任何事情。 – aoh