当前位置: 首页 > news >正文

专门找图片的网站郑州发布最新通知

专门找图片的网站,郑州发布最新通知,电商网站开发面试,wordpress 商家通常#xff0c;大多数应用程序通过保持 HTML 简单来解决大多数浏览器问题 ― 或者说#xff0c;根据最低共同特性来编写。然而#xff0c;即便如此#xff0c;也仍然存在字体和布局的问题#xff0c;发行新浏览器和升级现有浏览器时#xff0c;也免不了测试应用程序的痛…通常大多数应用程序通过保持 HTML 简单来解决大多数浏览器问题 ― 或者说根据最低共同特性来编写。然而即便如此也仍然存在字体和布局的问题发行新浏览器和升级现有浏览器时也免不了测试应用程序的痛苦。替代方案 ― 只支持一种浏览器 ― 通常不是一种用户友好的解决方案。明显的解决方案是在应用程序中嵌入自己的表现 HTML 的窗口构件。当然从头开始编写这样的窗口构件工作量很大因此求助于预先封装的解决方案好象是合理的。商界有许多选择及几个开放源码软件包。本文将向您显示如何以 Python 作为绑定的语言选择(也支持 C、Perl 和其它语言)使用作为 wxWindows 软件包一部分分发的 wxHtml 窗口构件。虽然没有任何 wxPython 经验而熟谙 Python 的开发人员应该能够从头开始但本文还是假定您具有基本的 wxPython 知识。在本文中我们将创建一个独立的浏览器应用程序同时保持体系结构足够简单以致将浏览器功能迁移到现有的应用程序中是一项简单的任务。世界上最基本的浏览器第一步是组装支持使用 wxHtml 窗口构件的应用程序所必需的最少代码。下列代码实现用 wxHtml 窗口构件作为其主窗口内容的基本 wxPython 应用程序。清单 1. 基本示例浏览器代码from wxPython.wx import *from wxPython.html import *import os,sysclass exHtmlWindow(wxHtmlWindow):def __init__(self, parent, id, frame):wxHtmlWindow.__init__(self,parent,id)class exHtmlPanel(wxPanel):def __init__(self, parent, id, frame):wxPanel.__init__(self,parent,-1)self.html exHtmlWindow(self, -1, frame)self.box wxBoxSizer(wxVERTICAL)self.box.Add(self.html, 1, wxGROW)self.SetSizer(self.box)self.SetAutoLayout(true)class exFrame (wxFrame):def __init__(self, parent, ID, title):wxFrame.__init__(self,parent,ID,title,wxDefaultPosition,wxSize(600,750))panel exHtmlPanel(self, -1, self)class exApp(wxApp):def OnInit(self):frame exFrame(NULL, -1, Example Browser)frame.Show(true)self.SetTopWindow(frame)return trueapp exApp(0)app.MainLoop()假定您已正确安装 wxPython那么在 Python 解释器中运行上述代码将产生一个具有空的白面板(wxHtml 窗口构件)的大窗口。如果出现任何语法错误请检查空格问题 ― 尤其是如果您将代码剪切粘贴到解释器或编辑器的情况。如果 Python 解释器显示无法导入 wxPython请检查安装以确保安装正确。当然一启动该浏览器立刻出现的是我们缺少某些东西 ... 例如装入页面的机制。对于某些应用程序这一非常基本的设置实际上可能已经够了 — 如果您已知道您要交付什么那么用户就无需选择自己的页面。简单的更改是向 exHtmlPanel 传递额外的参数那就是您想访问的页面清单 2. 修改 exHtmlPanel 以装入页面class exHtmlPanel(wxPanel): def __init__(self, parent, id, frame, file):wxPanel.__init__(self, parent, -1)self.html exHtmlWindow(self, -1, frame)self.box wxBoxSizer(wxVERTICAL)self.box.Add(self.html, 1, wxGROW)self.SetSizer(self.box)self.SetAutoLayout(true) self.html.LoadPage(file)为了使之更独立也为了使之更象浏览器我们将扩展 ttHtmlPanel 类以添加一些执行标准浏览器任务的按钮。当然如果您实际上是计划构建一个真正的浏览器应用程序那么在 GUI 设计和可用性方面您可能要考虑的比我们这里做的更多。清单 3. 修改 ttHtmlPanel 以添加按钮class ttHtmlPanel(wxPanel):def __init__(self, parent, id, frame):wxPanel.__init__(self, parent, -1)self.frame frameself.cwd os.path.split(sys.argv[0])[0]if not self.cwd:self.cwd os.getcwdself.html ttHtmlWindow(self, -1, self.frame)self.box wxBoxSizer(wxVERTICAL)self.box.Add(self.html, 1, wxGROW)subbox wxBoxSizer(wxHORIZONTAL)btn wxButton(self, 1202, Load File)EVT_BUTTON(self, 1202, self.OnLoadFile)subbox.Add(btn, 1, wxGROW | wxALL, 2)btn wxButton(self, 1203, Load Page)EVT_BUTTON(self, 1203, self.OnLoadPage)subbox.Add(btn, 1, wxGROW | wxALL, 2)btn wxButton(self, 1204, Back)EVT_BUTTON(self, 1204, self.OnBack)subbox.Add(btn, 1, wxGROW | wxALL, 2)btn wxButton(self, 1205, Forward)EVT_BUTTON(self, 1205, self.OnForward)subbox.Add(btn, 1, wxGROW | wxALL, 2)self.box.Add(subbox, 0, wxGROW)self.SetSizer(self.box)self.SetAutoLayout(true)def OnLoadPage(self, event):dlg wxTextEntryDialog(self, Location:)if dlg.ShowModal() wxID_OK:self.destination dlg.GetValue()dlg.Destroy()self.html.LoadPage(self.destination)def OnLoadFile(self, event):dlg wxFileDialog(self, wildcard *.htm*, stylewxOPEN)if dlg.ShowModal():path dlg.GetPath()self.html.LoadPage(path)dlg.Destroy()def OnBack(self, event):if not self.html.HistoryBack():wxMessageBox(No more items in history!)def OnForward(self, event):if not self.html.HistoryForward():wxMessageBox(No more items in history!)如果您以前使用过 wxPython 或任何其它 Python 图形工具箱那么您可以发现我们做的所有事情就是向面板添加另一个容器并将四个按钮置于其中带有对 exHtmlPanel 类中所添加的方法的回调函数。基础 wxHtml 类巧妙地为我们管理历史因此 OnBack 和 OnForward 仅仅是对基础方法的调用。假定读到这些时您已一直在使用 Python 解释器那么您可能注意到如果关闭应用程序它从不将控制返回给控制台。这个问题解决起来很简单但我们可能应该添加一个菜单栏来提供具有退出选项的文件菜单清单 4. 修改 exFrame 以添加带有退出的文件菜单class exFrame(wxFrame):def __init__(self, parent, ID, title):wxFrame.__init__(self, parent, ID, title, wxDefaultPosition, wxSize(600,750))panel exHtmlPanel (self, -1, self)mnu_file wxMenu()mnu_file.Append(101, Exit, Exit the browser)menuBar wxMenuBar()menuBar.Append(mnu_file, File)self.SetMenuBar(menuBar)EVT_MENU(self, 101, self.Exit)def Exit(self, event):self.Close(true)当我们没有试图将它变为一个真正的浏览器的时候我们在结尾处发现少了两个添加项大多数浏览器都有状态栏并且您可能注意到了没有绘制任何图像。下列对 exApp 、 exFrame 和 exHtmlPanel 的修改添加了一个状态栏以及所有来自 wxPython 的内置图像支持清单 5. 添加状态栏及图像支持class exApp(wxApp):def OnInit(self): wxInitAllImageHandlers()frame exFrame(NULL, -1, Example Browser)frame.Show(true)self.SetTopWindow(frame)return trueclass exHtmlPanel(wxPanel):def __init__(self, parent, id, frame):wxPanel.__init__(self, parent, -1)self.frame frameself.cwd os.path.split(sys.argv[0])[0]if not self.cwd:self.cwd os.getcwdself.html exHtmlWindow(self, -1, self.frame) self.html.SetRelatedFrame(self.frame, %s) self.html.SetRelatedStatusBar(0)...class exFrame(wxFrame):def __init__(self, parent, ID, title):wxFrame.__init__(self, parent, ID, title, wxDefaultPosition, wxSize(600,750))panel exHtmlPanel (self, -1, self) self.CreateStatusBar() self.SetStatusText(Default status bar)...现在基本浏览器的功能应该齐全了。wxPython 的高级特性允许您创建自己的标记可以通过定制代码来处理这些标记以执行您选择的任何操作。对您自己的可定制嵌入式浏览器的控制为增强的报表生成及联机帮助提供了无限的可能性。这些代码本身就可以轻易为任意数目的应用程序提供基础并且 ― 没有理由将您限制在仅仅提供联机帮助上。请自由使用这些类看看能让它们发生什么有趣的行为。:-)本条技术文章来源于互联网如果无意侵犯您的权益请点击此处反馈版权投诉本文系统来源php中文网TAG标签Python
http://www.pierceye.com/news/98371/

相关文章:

  • 购物网站答辩ppt怎么做网站开发环境
  • 做网站的费用计入销售费用吗做装修效果图的网站
  • 企业网站制作深圳免费域名映射
  • 安徽建设厅网站施网站的静态页面谁做
  • 网站内页seo桂林山水甲天下是哪个景点
  • 外贸网站免费建站小榄网站建设公司
  • 做旅游网站赚钱吗wordpress模板调用自定义插件
  • 南宁手机网站建设工艺品做网站
  • 可以下载电影的网站怎么做适合程序员的wordpress主题
  • 哪些网站微信支付平台建设网站软件
  • 做系统网站赚钱做爰网站有哪些
  • 新密做网站公司网站建设工作部署会
  • 上海网站推广方法怎么做网页 网站制作
  • 网站蜘蛛怎么看wordpress多用户商城主题
  • 拨付网站建设经费的请示wordpress+电商版本
  • 深圳网站制作需要多少钱互动营销网站
  • 营销型网站公司名称烟台网站建设专业臻动传媒
  • 哪个网站可以做结婚证企业黄页官网
  • 进网站备案大学生网页设计心得体会
  • 做网站除了广告还有什么收入的短视频营销的发展趋势
  • 企顺网网站建设娜娜视频免费视频在线
  • 如何做英文网站wordpress 247
  • 玄武模板网站制作点击查看视联网视频会议系统
  • 域名购买之后怎么做网站网站二级页面设计要求
  • 一个好的网站怎样布局安康市网站建设
  • 上海企业网站优化多少钱湛江网站建设方案托管
  • 手机网站可以做英文版本吗怎么自己购买域名 建设网站
  • 茂港手机网站建设公司如何将音乐上传到wordpress
  • 做房地产网站wordpress 文章页面模板
  • 深圳做app网站建设网站申请支付宝支付