PyQt

来自百合仙子's Wiki
跳转到导航 跳转到搜索

示例

QtWebKit

获取网页文本的示例:

from PyQt4 import QtWebKit
from PyQt4.QtCore import QUrl
from PyQt4.QtGui import QApplication
app = QApplication([])

def capturePageText(url):
  view = QtWebKit.QWebView()
  view.load(QUrl(url))
  page = view.page()

  def on_loaded(status):
    app.exit()
    print()

  def on_progress(percent):
    print('%d%%...' % percent, end='')
    sys.stdout.flush()

  def on_timeout(self):
    page.action(page.Stop).trigger()
    app.exit()
    print('已超时。')

  view.loadStarted.connect(lambda: print('started'))
  view.loadProgress[int].connect(on_progress)
  view.loadFinished[bool].connect(on_loaded)
  view.timerEvent = on_timeout
  timer = view.startTimer(10 * 1000)

  print('正在载入网页……')
  app.exec()
  view.killTimer(timer)

  page.action(page.SelectAll).trigger()
  return page.selectedText()

打印网页到 PDF

#!/usr/bin/env python3

import sys

try:
  from PyQt4 import QtWebKit
  from PyQt4.QtCore import QUrl
  from PyQt4.QtGui import QApplication, QPrinter
except ImportError:
  from PySide import QtWebKit
  from PySide.QtCore import QUrl
  from PySide.QtGui import QApplication, QPrinter

app = QApplication(sys.argv)

def done(status):
  p = QPrinter()
  p.setOutputFormat(QPrinter.PdfFormat)
  p.setOutputFileName('a.pdf')
  view.print(p)
  app.exit()

view = QtWebKit.QWebView()
view.load(QUrl('http://blog.lilydjwg.me/'))
view.loadFinished[bool].connect(done)
# PySide does not have QApplication.exec
app.exec_()

设置代理

from PyQt4.QtNetwork import QNetworkProxy
QNetworkProxy.setApplicationProxy(QNetworkProxy(QNetworkProxy.HttpProxy, "localhost", 8087))

使用 Qt 的翻译

[1]

import sys
from PyQt4.QtCore import QTranslator, QLocale, QLibraryInfo

app = QApplication(sys.argv)
qt_translator = QTranslator()
qt_translator.load("qt_" + QLocale.system().name(),
                    QLibraryInfo.location(QLibraryInfo.TranslationsPath))
app.installTranslator(qt_translator)

参见

外部链接

参考资料