gpt4 book ai didi

python - 如何在 wxpython 应用程序的帮助下添加超链接?

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:22 25 4
gpt4 key购买 nike

我正在实现一个用 wxPython 完成的应用程序的帮助菜单。到目前为止,我正在使用在框架中打开的 txt 文件。我想在帮助文本中有超链接,以便在同一框架中打开其他 txt 文件。但是,我不知道该怎么做。我什至不知道这是否是实现帮助菜单的最优雅的方式。任何建议都会非常有用。

您可以在下面找到我正在使用的部分代码(您需要一个名为“Help_Main_App.txt”的 txt 文件):

import wx

class Help_Frame(wx.Frame):
title = "Help, I need somebody, help..."
def __init__(self):
wx.Frame.__init__(self, wx.GetApp().TopWindow, title=self.title, size=(450,500))
self.CreateStatusBar()
panel = wx.Panel(self, wx.ID_ANY)
panel.SetBackgroundColour('#ededed')
self.Centre()
vBox = wx.BoxSizer(wx.VERTICAL)
hBox = wx.BoxSizer(wx.HORIZONTAL)
self.textbox = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(-1, 295))
hBox.Add(self.textbox, 1, flag=wx.EXPAND)
vBox.Add(hBox, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=10)
panel.SetSizer(hBox)
defaultdir, filename = './', 'Help_Main_App.txt'
self.filePath = '/'.join((defaultdir, filename))
self.textbox.LoadFile(self.filePath)
self.textbox.Disable()


class Main_Window(wx.Frame):
def __init__(self, parent, title):
#wx.Frame.__init__(self, parent, title = title, pos = (0, 0), size = wx.DisplaySize())
wx.Frame.__init__(self, parent, title=title, size=(1000,780))
self.Center()

# Setting up the menu.
filemenu = wx.Menu()
helpmenu = wx.Menu()
menuExit = filemenu.Append(wx.ID_EXIT,"&Exit"," Close window and exit program")
menuHelp = helpmenu.Append(wx.ID_HELP, "&Help"," Help of this program")

# Creating the menubar.
menuBar = wx.MenuBar()
menuBar.Append(filemenu,"&File") # Adding the "filemenu" to the MenuBar
menuBar.Append(helpmenu,"&Help") # Adding the "helpmenu" to the MenuBar
self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content.

# Set event handlers
self.Bind(wx.EVT_MENU, self.OnHelp, menuHelp)
self.Bind(wx.EVT_MENU, self.OnExit, menuExit)


def OnHelp(self,e):
Help_Frame().Show()

def OnExit(self,e):
self.Close(True) # Close the frame.

def main():
app = wx.App(False)
frame = Main_Window(None, "Main App")
frame.Show()
app.MainLoop()


if __name__ == "__main__" :
main()

最佳答案

我建议使用 HTMLWindow 来处理这样简单的事情。它只能处理简单的 HTML,所以不要尝试用它制作网站,因为 HTMLWindow 不支持 CSS 或 javascript。

我用它写了一个简单的关于框。你可以在这里阅读:

http://www.blog.pythonlibrary.org/2008/06/11/wxpython-creating-an-about-box/

基本思想是继承 HTMLWindow 并覆盖其 OnLinkClicked 方法。然后你可以使用 Python 的 webbrowser打开用户的默认浏览器。或者您可以尝试使用 subprocess,尽管除非您始终知道目标计算机上安装了什么,否则它不太可能起作用。

关于python - 如何在 wxpython 应用程序的帮助下添加超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com