Я также использую webkit2png + Linux и столкнулся с проблемой, описанной вами при локальном тестировании на моем MacBook Pro.Проблема заключается в том, что QApplication.hasPendingEvents () неправильно возвращает True, и цикл while зависает.Я обошел эту проблему, удалив цикл while:
while self.__loading:
if timeout > 0 and time.time() >= cancelAt:
raise RuntimeError("Request timed out on %s" % url)
QCoreApplication.processEvents()
Обратите внимание, что вы также должны внести это изменение в __WebkitRendererHelper.render в нескольких местах.После этих изменений у меня все работало - удачи.
Редактировать: Я считаю, что я решил эту проблему на стороне Linux изначально, обновив базовую библиотеку QT.Версия по умолчанию для Ubuntu 10.04 LTS (4.6.2) имеет ошибку, которая исправлена в более поздних версиях.Вот моя информация об установке:
Package: libqtcore4
State: installed
Automatically installed: yes
Version: 4:4.7.0-0ubuntu2~lucid1~ppa1
Priority: optional
Section: libs
Maintainer: Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
Uncompressed Size: 7,471k
Depends: libc6 (>= 2.9), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libstdc++6 (>= 4.1.1), zlib1g (>= 1:1.1.4)
Breaks: libqt4-core (< 4.4.0~beta1-1), libqt4-gui (< 4.4.0~beta1-1)
Replaces: libqt4-core (< 4.4.0~beta1-1), libqt4-gui (< 4.4.0~beta1-1)
Description: Qt 4 core module
Qt is a cross-platform C++ application framework. Qt's primary feature is its rich set of widgets that provide standard GUI
functionality.
The QtCore module contains core non-GUI functionality.