Administre fácilmente el título y la URL: use wxPython para crear sus enlaces personales favoritos

Introducción:
en la era digital actual, a menudo necesitamos administrar y acceder a una gran cantidad de enlaces web e instrucciones relacionadas. Para administrar estos enlaces de manera más conveniente, podemos usar la biblioteca wxPython para crear una aplicación de administración de URL y subtítulos simple y práctica. Este artículo presentará cómo utilizar fuentes de datos wxPython y XML para crear una ventana de aplicación con botones y vistas web para facilitar la administración y el acceso a varios enlaces web.
C:\pythoncode\blog\createformbuttonfromxml.py
inserte la descripción de la imagen aquí

Pila de tecnología:

  • Pitón
  • wxPython
  • análisis XML

paso:

  1. Importe las bibliotecas y módulos necesarios:
import wx
import wx.html2
import xml.etree.ElementTree as ET
  1. Cree la clase de ventana de la aplicación:
class MyFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, title="Caption and URL Manager", size=(800, 600))
        # 窗口的初始化和布局代码
  1. Establezca el diseño de la ventana de la aplicación:
        self.panel = wx.Panel(self)
        self.sizer = wx.BoxSizer(wx.HORIZONTAL)

        self.button_panel = wx.Panel(self.panel)
        self.button_sizer = wx.BoxSizer(wx.VERTICAL)

        self.scroll = wx.ScrolledWindow(self.button_panel)
        self.scroll.SetScrollRate(0, 20)

        self.web_panel = wx.Panel(self.panel)
        self.web_sizer = wx.BoxSizer(wx.VERTICAL)

        # 为按钮面板和Web视图面板创建布局和容器
  1. Cargar datos y botón crear:
    def load_data(self):
        try:
            tree = ET.parse('data.xml')
            root = tree.getroot()

            for child in root:
                caption = child.find('caption').text
                url = child.find('url').text

                button = wx.Button(self.scroll, label=caption)
                button.SetMinSize(wx.Size(-1, 150))
                icon = wx.Bitmap("./icons/hyperlink.png", wx.BITMAP_TYPE_PNG)
                button.SetBitmap(icon)
                button.Bind(wx.EVT_BUTTON, lambda event, u=url: self.on_button_click(event, u))
                self.scroll_sizer.Add(button, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)

            # 将按钮添加到布局管理器中
  1. Manejar el evento de clic del botón:
    def on_button_click(self, event, url):
        self.web_view.LoadURL(url)
  1. Cree una instancia de aplicación y ejecute el bucle de eventos principal:
app = wx.App()
frame = MyFrame(None)
app.MainLoop()

Código completo:

import wx
import wx.html2
import xml.etree.ElementTree as ET


class MyFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, title="Caption and URL Manager", size=(800, 600))

        self.panel = wx.Panel(self)
        self.sizer = wx.BoxSizer(wx.HORIZONTAL)

        self.button_panel = wx.Panel(self.panel)
        self.button_sizer = wx.BoxSizer(wx.VERTICAL)

        self.scroll = wx.ScrolledWindow(self.button_panel)
        self.scroll.SetScrollRate(0, 20)  # 设置滚动速率,垂直滚动每次滚动20个像素

        self.scroll_sizer = wx.BoxSizer(wx.VERTICAL)
        self.scroll.SetSizer(self.scroll_sizer)

        self.web_panel = wx.Panel(self.panel)
        self.web_sizer = wx.BoxSizer(wx.VERTICAL)

        self.web_view = wx.html2.WebView.New(self.web_panel)
        self.web_sizer.Add(self.web_view, proportion=1, flag=wx.EXPAND)
        self.web_panel.SetSizer(self.web_sizer)

        self.load_data()

        self.panel.SetSizer(self.sizer)
        self.sizer.Add(self.button_panel, proportion=1, flag=wx.EXPAND)
        self.sizer.Add(self.web_panel, proportion=2, flag=wx.EXPAND)

        self.panel.Layout()
        self.Show()

    def load_data(self):
        try:
            tree = ET.parse('data.xml')
            root = tree.getroot()

            for child in root:
                caption = child.find('caption').text
                url = child.find('url').text

                # button = wx.Button(self.scroll, label=caption)
                button = wx.Button(self.scroll, label=caption)
                button.SetMinSize(wx.Size(-1, 150))  # 设置按钮最小尺寸为高度为200像素                
                icon = wx.Bitmap("./icons/hyperlink.png", wx.BITMAP_TYPE_PNG)  # 从文件加载图标
                button.SetBitmap(icon)
                button.Bind(wx.EVT_BUTTON, lambda event, u=url: self.on_button_click(event, u))
                self.scroll_sizer.Add(button, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)

            self.scroll.SetSizer(self.scroll_sizer)
            self.scroll_sizer.Fit(self.scroll)  # 调整尺寸以适应内容

            self.button_sizer.Add(self.scroll, proportion=1, flag=wx.EXPAND)
            self.button_panel.SetSizer(self.button_sizer)

        except FileNotFoundError:
            pass

    def on_button_click(self, event, url):
        self.web_view.LoadURL(url)


app = wx.App()
frame = MyFrame(None)
app.MainLoop()

Resumen:
A través de este artículo, aprendimos cómo usar la biblioteca wxPython para crear una aplicación de administrador de subtítulos y URL. Al analizar fuentes de datos XML y crear botones, podemos administrar y acceder fácilmente a varios enlaces web. La ventaja de usar wxPython es que proporciona controles de interfaz enriquecidos y un potente administrador de diseño, lo que nos permite crear rápidamente potentes aplicaciones de escritorio. Espero que este artículo le resulte útil para comenzar con el desarrollo de aplicaciones wxPython y le deseo una feliz programación.

Supongo que te gusta

Origin blog.csdn.net/winniezhang/article/details/132323122
Recomendado
Clasificación