如何让QWebInspector获得相同的风

2024-09-23 22:21:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始涉足Qt(来自PyGTK)领域,我正在使用PySide。所以我在another answer here on stack exchange上找到了一个很好的例子。在

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtWebKit import *

app = QApplication(sys.argv)

web = QWebView()
web.settings().setAttribute(
  QWebSettings.WebAttribute.DeveloperExtrasEnabled, True)
# or globally:
# QWebSettings.globalSettings().setAttribute(
#     QWebSettings.WebAttribute.DeveloperExtrasEnabled, True)

web.load(QUrl("http://www.google.com"))
web.show()

inspect = QWebInspector()
inspect.setPage(web.page())
inspect.show()

sys.exit(app.exec_())

我的问题是,如何让检查员出现在同一个窗口而不是一个新窗口?我知道我需要将QWebInspector添加到主窗口中的另一个小部件(例如vbox),我想知道的是如何将该事件连接到上下文菜单“Inspect”触发器的信号上。在PyGTK中,我需要使用.connect(),但是我找不到这个特定操作的正确信号。在

谢谢你们的宝贵时间


Tags: fromimportwebtrueappshowsyspygtk
1条回答
网友
1楼 · 发布于 2024-09-23 22:21:11

它应该没有必要做任何特殊的上下文菜单工作。只需在布局中添加一个inspector小部件,然后hide()开始。默认的上下文菜单操作可以根据需要show()检查器。在

一个稍微有点棘手的问题是如何再次隐藏检查器一旦显示,因为似乎没有相应的上下文菜单项。在

下面的演示脚本只需创建一个键盘快捷键来隐藏/显示检查器:

from PySide import QtGui, QtCore, QtWebKit

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        self.view = QtWebKit.QWebView(self)
        self.view.settings().setAttribute(
            QtWebKit.QWebSettings.WebAttribute.DeveloperExtrasEnabled, True)
        self.inspector = QtWebKit.QWebInspector(self)
        self.inspector.setPage(self.view.page())
        self.inspector.hide()
        self.splitter = QtGui.QSplitter(self)
        self.splitter.addWidget(self.view)
        self.splitter.addWidget(self.inspector)
        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.splitter)
        QtGui.QShortcut(QtGui.QKeySequence('F7'), self,
            self.handleShowInspector)

    def handleShowInspector(self):
        self.inspector.setShown(self.inspector.isHidden())

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.view.load(QtCore.QUrl('http://www.google.com'))
    window.show()
    sys.exit(app.exec_())

相关问题 更多 >