【问题标题】:PySide how to get QWebInspector same windowPySide如何获取QWebInspector同一个窗口
【发布时间】:2012-11-16 00:19:05
【问题描述】:

我刚开始进入 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),我想知道如何将该事件连接到上下文菜单“检查”触发的信号。在 PyGTK 中,我需要使用 .connect() 但我找不到此特定操作的正确信号。

感谢您的时间,伙计们/女孩们

【问题讨论】:

    标签: python qt webkit pyside


    【解决方案1】:

    不必为上下文菜单执行任何特殊操作。只需在您的布局中添加一个检查器小部件,然后 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_())
    

    【讨论】:

    • 谢谢,我仍在研究如何自定义默认上下文菜单上的操作,但您的回答让我更好地理解了检查器对象的工作原理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多