2009-10-19 29 views
9

Xin lỗi, có lẽ tôi chưa mô tả vấn đề này lần đầu tiên. Tất cả các câu trả lời của bạn là thú vị, nhưng hầu hết trong số đó là các trình duyệt web gần như đầy đủ tính năng, nhiệm vụ của tôi đơn giản hơn rất nhiều.Trình kết xuất đồ họa trọng lượng nhẹ HTML với CSS bằng Python

Tôi đang lập kế hoạch viết một ứng dụng GUI bằng cách sử dụng một trong các khung công tác sẵn có trên khung công tác GUI của GUI (tôi chưa chọn một). Tôi sẽ sử dụng html trong ứng dụng của tôi để kết xuất thành một trong các khung ứng dụng của tôi với một số thuộc tính - phông chữ khác nhau, vv, được lưu trữ trong CSS.

HTML sẽ được tạo bởi ứng dụng của tôi, do đó tác vụ duy nhất là hiển thị chuỗi HTML/CSS. Có bất kỳ tiện ích nào có thể thực hiện chỉ hiển thị và không có gì khác nữa - không có lịch sử, không có dấu trang, không tải URL, v.v ... không? Nếu không có tôi sẽ sử dụng một trong những người bạn khuyên - đó là ok - nhưng tôi chỉ quan tâm nếu có chỉ là một renderer html mà không có bất kỳ tính năng bổ sung.

+0

QWebView phải là thứ bạn đang tìm kiếm, đó là hiển thị html. Bạn đã xem tài liệu tôi đã liên kết chưa? – mandel

+0

Vâng, tôi đã làm. Đó không phải là những gì tôi muốn: nó gần như là một trình duyệt web có khả năng tải các trang, lưu trữ lịch sử vv. Cảm ơn bạn anyway, tôi sẽ sử dụng nó, nếu tôi không tìm thấy bất kỳ giải pháp khác – netimen

+0

Có thể QWebPage có thể làm các trick, nhưng tôi có không bao giờ thử. – mandel

Trả lời

11

Bạn nên sử dụng một khung giao diện người dùng:

  • Qt: Lớp đơn giản nhất để sử dụng sẽ QWebView
  • Gtk: pywebkitgtk sẽ là câu trả lời tốt nhất, nhưng bạn có thể tìm others in the PyGTK page.
  • Trong Tk là widget TkHtml từ here

Một lựa chọn khác là để mở trình duyệt web OS mặc định thông qua một cái gì đó như thế này:

import webbrowser 
url = 'http://www.python.org' 

# Open URL in a new tab, if a browser window is already open. 
webbrowser.open_new_tab(url + '/doc') 

# Open URL in new window, raising the window if possible. 
webbrowser.open_new(url) 

Bạn có thể tìm thêm thông tin về các mô-đun webbrowser here . Tôi nghĩ rằng cách đơn giản nhất là sử dụng trình duyệt os nếu bạn đang tìm kiếm thứ gì đó rất nhẹ vì nó không phụ thuộc vào một khung công tác và nó sẽ hoạt động trên tất cả các nền tảng. Sử dụng Tk có thể là một tùy chọn khác nhẹ và sẽ không yêu cầu cài đặt khung bên thứ ba.

+0

Không được quên WxPython (http://www.wxpython.org/): Bản trình diễn cho thấy cách nhúng Internet Explorer trên Windows và WebKit trên máy Mac ... – PhilS

+0

@PhilS Internet Explorer không khả dụng trên Linux) to nặng – netimen

+0

Đây là trình bao bọc cho Tkhtml: https://pypi.python.org/pypi/tkinterhtml – Aivar

0

Flying Saucer Project - trình kết xuất XHTML.

Không, nó không phải là Python. Đó là - tuy nhiên - trivially được gọi là từ Python.

+0

Tôi có thể nhúng nó vào ứng dụng python của mình không? – netimen

+0

@netimen: Tôi không thể hiểu câu hỏi của bạn. Bạn có ý gì khi "nhúng"? Chiếc đĩa bay là Java. Bạn có thể dễ dàng gọi một chương trình Java từ bên trong Python. Điều đó có được "nhúng" không? Bạn có thể sử dụng JVM Jython để chạy cả hai thành phần. Điều đó có được "nhúng" không? –

+0

Tôi có nghĩa là tôi muốn kết xuất html vào một cửa sổ ứng dụng của tôi - tôi có thể làm điều đó không? – netimen

0

Có thể HulaHop có thể thú vị đối với bạn (cũng có thể được kết hợp với Pyjamas). Dự án Mozilla Prism cũng có thể có liên quan.

Các vấn đề liên quan