#python #html #css #wxpython #wxhtmlwindow
#python #HTML #css #wxpython #wxhtmlwindow
Вопрос:
Я пытаюсь загрузить HTML-файл с wx.html .HtmlWindow. Html-файл связан с файлом внешней таблицы стилей (CSS). Проблема в том, что в окне Html отображается только обычный Html-файл без оформления (цвета, шрифты и т. Д.) Как я могу решить эту проблему?
HTML-код:
<html>
<head>
<title>Embedded Style Sample</title>
<link href="E:pythonGUIstyles.css" rel="stylesheet" type="text/css"/></head>
<body>
<h1>Embedded Style Sample testing</h1>
<h2>Next Line</h2>
</body>
</html>
CSS-код:
h1{
color: #0000FF;
}
h2{
color: #00CCFF;
}
Код Python:
import wx
import wx.html
import wx.html2
class MyHtmlFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(
self,
parent,
-1,
title,
size = (600,400)
)
html = wx.html.HtmlWindow(self)
html.LoadPage("E:\pythonGUI\newtest.html")
app = wx.App()
frm = MyHtmlFrame(None, "Simple HTML File Viewer")
frm.Show()
app.MainLoop()
html-файл отображается в окне HTML:
Ответ №1:
Если вам нужна полная поддержка HTML / CSS, а также движок Javascript, рассмотрите возможность использования вместо этого wx.html2.WebView.
Из документов wxpython:
wx.html на самом деле у него нет поддержки CSS, но он поддерживает несколько простых стилей: вы можете использовать «выравнивание текста», «ширина», «выравнивание по вертикали» и «фон» для всех элементов, а для элементов SPAN дополнительно распознаются несколько других стилей:
color font-family font-size (only in point units) font-style (only “oblique”, “italic” and “normal” values are supported) font-weight (only “bold” and “normal” values are supported) text-decoration (only “underline” value is supported)
Ответ №2:
Используя wx.html2.WebView вместо wx.html .HtmlWindow:
import wx
import wx.html2
class About(wx.Frame):
def __init__(self):
wx.Panel.__init__(self,None,-1,title="Title",size=(700,700))
class Test(wx.Frame):
def __init__(self,title,pos,size):
wx.Frame.__init__(self,None,-1,title,pos,size)
self.tester=wx.html2.WebView.New(self)
self.tester.LoadURL("E:\pythonGUI\newtest.html")
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = Test("html2 web view", (20, 20), (800, 600))
frame.Show()
app.MainLoop()