python – PySide如何获得QWebInspector相同的窗口

前端之家收集整理的这篇文章主要介绍了python – PySide如何获得QWebInspector相同的窗口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我刚刚开始进入Qt领域(来自PyGTK)而我正在使用PySide.所以我在another answer here on stack exchange上找到了这个很好的例子.

  1. import sys
  2. from PySide.QtCore import *
  3. from PySide.QtGui import *
  4. from PySide.QtWebKit import *
  5. app = QApplication(sys.argv)
  6. web = QWebView()
  7. web.settings().setAttribute(
  8. QWebSettings.WebAttribute.DeveloperExtrasEnabled,True)
  9. # or globally:
  10. # QWebSettings.globalSettings().setAttribute(
  11. # QWebSettings.WebAttribute.DeveloperExtrasEnabled,True)
  12. web.load(QUrl("http://www.google.com"))
  13. web.show()
  14. inspect = QWebInspector()
  15. inspect.setPage(web.page())
  16. inspect.show()
  17. sys.exit(app.exec_())

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

谢谢你的时间伙计们

最佳答案
没有必要为上下文菜单执行任何特殊操作.只需在布局中添加一个检查器窗口小部件,然后隐藏()它就可以了.然后,默认上下文菜单操作可以根据需要显示()检查器.

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

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

  1. from PySide import QtGui,QtCore,QtWebKit
  2. class Window(QtGui.QWidget):
  3. def __init__(self):
  4. QtGui.QWidget.__init__(self)
  5. self.view = QtWebKit.QWebView(self)
  6. self.view.settings().setAttribute(
  7. QtWebKit.QWebSettings.WebAttribute.DeveloperExtrasEnabled,True)
  8. self.inspector = QtWebKit.QWebInspector(self)
  9. self.inspector.setPage(self.view.page())
  10. self.inspector.hide()
  11. self.splitter = QtGui.QSplitter(self)
  12. self.splitter.addWidget(self.view)
  13. self.splitter.addWidget(self.inspector)
  14. layout = QtGui.QVBoxLayout(self)
  15. layout.addWidget(self.splitter)
  16. QtGui.QShortcut(QtGui.QKeySequence('F7'),self,self.handleShowInspector)
  17. def handleShowInspector(self):
  18. self.inspector.setShown(self.inspector.isHidden())
  19. if __name__ == '__main__':
  20. import sys
  21. app = QtGui.QApplication(sys.argv)
  22. window = Window()
  23. window.view.load(QtCore.QUrl('http://www.google.com'))
  24. window.show()
  25. sys.exit(app.exec_())

猜你在找的Python相关文章