Можно ли использовать KHTMLPart полностью с консоли? - PullRequest
0 голосов
/ 06 января 2010

Я использую компонент KHTMLPart из библиотеки PyKDE (в Python) для загрузки некоторых веб-страниц в фоновом режиме и возврата размеров определенных элементов в пикселях. Мне не нужен визуальный вывод этого скрипта, скорее всего, я буду запускать его на сервере без установленного X. Проблема в том, что когда я говорю моему приложению, что оно запускается только для консоли, вот так:

app = QApplication(sys.argv, False)

мой скрипт затем сбоит в строке, где я инициализирую KHTMLPart:

browser = KHTMLPart()

Кроме того, мне нужно установить размер окна браузера KHTML на 1024x768, вызвав:

browser.view.resize(1024, 768)

Это, кажется, не имеет никакого эффекта, пока я не позвоню:

browser.show()

Предыдущее вызывает появление окна браузера, даже если это ненадолго. Я мог бы запустить на сервере простой оконный менеджер, такой как fluxbox, и он будет делать то, что я хочу, но я был бы намного счастливее, если бы он мог полностью функционировать как консольное приложение - если это вообще возможно. Есть ли способ добиться этого?

Ответы [ 2 ]

1 голос
/ 06 января 2010

Я сомневаюсь в этом. Большинство браузеров разделяют загрузку, создание модели DOM и рендеринг в разных частях кода. Это позволяет им загружать данные в потоках, преобразовывать их, а затем использовать оптимизированный рендерер для их отображения. Это дорогостоящая операция, поэтому они делают это только при необходимости.

Таким образом, я не вижу возможности обойтись без работающего X-сервера. Но этот сервер не должен использовать дисплей. Для этого вы можете запустить команду vncserver. Он сообщит вам значение переменной DISPLAY, чтобы ваш код получил доступ к этому скрытому экрану.

1 голос
/ 06 января 2010

Если ничего не помогло, вы можете попробовать использовать виртуальный кадровый буфер X , чтобы обеспечить ложное отображение X для вашего приложения, позволяя ему работать без отображения.

...