一个较为完整的简易浏览器实例

合集下载

推荐-IE浏览器 精品

推荐-IE浏览器 精品

4.地址栏 地址栏位于工具栏的下方,如图2.1.3所示。它用于输 入Web页的地址,通常情况下称其为网址。在“地址栏” 文本框中输入要打开的网页地址,例如输入“http://www.si ”,然后按回车键,即可打开该网页。
图2.1.:单击地址栏右侧的下拉按钮,可从弹出的下拉 列表中选择最近访问过的网站地址,如图2.1.4所示,选中 后按回车键,即可快速打开网页。
第2章 IE浏览器
➢ 2.1 IE浏览器的使用 ➢ 2.2 高效上网技巧 ➢ 2.3 网页的保存和打印 ➢ 2.4 应用实例——下载图片 ➢ 本章小结 ➢ 习题二
Internet应用基础教程
2.1 IE浏览器的使用
用户只有通过浏览器,才能访问Internet中的信息,而 Windows自带的IE浏览器是使用最为广泛的一种浏览器。 本节将主要介绍IE浏览器的特点、启动、界面以及如何浏 览网站。
图2.1.4 网址下拉列表
Internet应用基础教程
5.主窗口 主窗口占IE浏览器的最大空间,是浏览器的页面。它 的右侧包含滚动条,可通过鼠标拖动的方式浏览页面。如 图2.1.5所示为清华大学主页。
Internet应用基础教程
图2.1.5 清华大学主页
Internet应用基础教程
6.状态栏 状态栏位于IE浏览器窗口的最底部,用于显示当前状 态的信息。用户通过状态栏可查看到Web页的打开过程。 2.1.4 浏览网站 打开网站的主页面之后,用户可以通过多种方法浏览 相关网页。 1.浏览网页 (1)使用超级链接浏览网页。网页中包含最多的是超 级链接,将鼠标移动到主页某部分内容中,例如文本、图 片或按钮上时,如果鼠标变成形状,表明这些文本或图片 包含超链接,如图2.1.6所示。
Internet应用基础教程

个性浏览器只为你打造

个性浏览器只为你打造

今天的浏览器虽然呈现百家争鸣之势,不过那些主流的浏览器在功能上基本大同小异,对于儿童、老人这样的特别用户而言,许多设定显得并不人性化。

其实除了IE、火狐、Chrome这样的浏览器大鳄,还有许多小众的浏览器能够满足特别人士的需要。

■ 文 /赵海涛个性浏览器 只为你打造保护儿童 淘米浏览器面对今天“很黄很暴力”无处不在的网络空间,家长们总是担心自己的孩子看到不合适的内容。

有这方面顾虑的家长可以考虑使用专为小朋友准备的淘米浏览器,这款浏览器的风格卡通,而且所有的网址都需要家长手动添加并锁定,孩子只能访问特定的网站。

浏览器安装过程中需要用户设置“家长密码”,控制浏览器选项的设置。

设置密码后,可以控制浏览器的使用时间、网址等。

接下来打开该浏览器,可以看到浏览器内置了英语、游戏、动漫等分类栏目,这几个栏目是淘米网精心挑选出来很适合儿童访问的绿色网址。

家长如果想添加其他新网址,可以点击“家长管理/控制访问”并自己手动添加或删除网址。

»淘米浏览器的另一大特点是提供了简易的家长控制功能,点击浏览器左下角的“家长管理”,输入安装时设置的默认密码,进入设置面板后在“浏览器设置/显示模式/全屏”中勾选“退出时需要家长密码”项;“上网时间提醒”处填一个具体的时间,并勾选“锁屏”选项(如图1)。

这样当家里孩子上网时除了浏览器其他操作都会被锁定了,直到家长解除访问密码。

图片控助手 随E浏览器经常浏览摄影网站的用户碰到组图就想收藏,有的时候用户会在一个论坛看到一套组图几十张图片的情况,即使动用迅雷这样的下载工具也需要设置半天。

遇到这方面问题的朋友可以尝试一下随E(T h o o e)浏览器,该浏览器可以无需任何第三方工具下就一键保存当前页面下的所有图片。

将该软件安装到电脑上并启动该浏览器,点击工具栏上的“文件/保存所有图片/设置”.弹出设置界面,根据实际情况进行设置.点击“添加”,将用来存图片的文件夹放入(如图3);在“新建目录”一栏下,输入“[title][date]"后点击“应用”,这样当前页面下的所有图片都会自动保存到本机了。

10款干净好用的电脑浏览器推荐合集

10款干净好用的电脑浏览器推荐合集

10款干净好用的电脑浏览器推荐合集电脑浏览器哪款好用呢?浏览器是用户每天使用最多的上网工具之一,它的使用体验是否够好非常重要。

而现在的主流浏览器厂商清一色的都是Chromium内核,所以性能速度差距并不大,拥有深度优化能力也就几家大厂,剩下多为换皮。

国内浏览器的最大特点是加入一些实用的功能插件、支持Chromium+IE双核引擎,解决了对网银、政府机构等老旧网站的兼容性问题,如果没有乱改默认浏览器、捆绑安装、默认主页广告、推送信息流等用户深恶痛绝问题,其实用起来还是挺舒服的。

下面八分网整理了10款好用的电脑浏览器合集,需要的用户可以一起看看!主流浏览器中也就Chrome、Firefox国际版是干净的,没有任何形式广告,其他浏览器均通过设置默认主页、标签页、收藏栏等形式插入广告推广,为了生存可以理解,不喜欢选择关闭/修改就能解决,只要提供入口将选择权交给用户做到合理、合法就OK了。

1、Google Chrome浏览器《Google Chrome浏览器》是一款简单便捷的网页浏览工具可以提帮助你快速、安全的搜索到自己需要的内容,功能强大,可以保证用户在多开网页的情况下使浏览器快速稳定运行。

借助谷歌浏览器,你可以通过标签页同步功能接着浏览在其他设备上打开的网页、通过语音进行搜索,强大的引擎基于强大的功能。

软件评价:市场占有率超过50%浏览器,最大的特色就是简单美观、性能稳定、扩展插件丰富,可根据需求实现个性化定制,缺点是国内安装插件,多设备内容同步不方便。

2、微软Edge浏览器《Microsoft Edge》是一款快速而安全的浏览器,可帮助您保护数据,节省时间和金钱。

支持Windows、macOS、iOS 和Android 设备夸平台多台设备同步密码、收藏夹和设置。

凭借世界一流的性能、速度和高效功能,Microsoft Edge 设计用于帮助您完成更多工作。

软件评价:Microsoft Edge是新版Windows 11系统内置浏览器,采用Chromium内核,并支持IE兼容模式,稳定性和性能都不弱于Chrome浏览器,插件也非常丰富,最大亮点是可以实现不同设备间的数据同步,缺点是国内版会赠送广告。

实例讲解Python脚本成为Windows中运行的exe文件

实例讲解Python脚本成为Windows中运行的exe文件
$ pip install pyinstaller
接下来我们将python脚本转换为exe文件 我们将“.py”文件转换为“.exe”文件 首先,我们创建原始的“.py”文件。 这次使用以下显示“Hello World!”的文件(test.py)。
#! /usr/bin/env python # coding: UTF-8 print("Hello World!Байду номын сангаас)
转换时,执行以下命令。
$ pyinstaller test.py
可以看到上面的test.py进程已完成。
Hello World!
这篇文章主要介绍了python使用pyqt5实现简易浏览器最新版本测试过文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧
实例讲解 Python脚本成为 Windows中运行的 exe文件
将程序转换为exe文件 我们先来介绍如何使用工具Pyinstaller 安装Pyinstaller 我们用pip安装Pyinstaller 。 注意,如果使用Pyinstaller,则应使用python 2.7或python 3.3到python 3.6(截至2018年7月)的环境。 安装方法非常简单,我们执行以下命令

简单网页浏览器课程设计

简单网页浏览器课程设计

简单网页浏览器课程设计一、课程目标知识目标:1. 让学生了解简单网页浏览器的功能与原理,掌握HTML语言的基本结构。

2. 使学生掌握浏览器中常用标签的使用方法,如文字、图片、链接等。

3. 帮助学生理解网页的布局和排版,学会使用CSS进行简单样式设计。

技能目标:1. 培养学生动手编写简单网页的能力,提高编程实践技能。

2. 培养学生运用所学知识解决实际问题的能力,例如制作个人博客、班级网站等。

3. 培养学生团队协作和沟通能力,共同完成网页设计任务。

情感态度价值观目标:1. 激发学生对计算机科学的兴趣,培养主动学习和探究的精神。

2. 培养学生面对困难时勇于尝试、持续改进的品质,增强自信心。

3. 培养学生遵守网络道德规范,尊重他人劳动成果,保护个人隐私。

课程性质:本课程为信息技术课程,旨在让学生掌握网页浏览器的原理和简单网页设计技术。

学生特点:学生具备一定的计算机操作基础,对网络和编程感兴趣,喜欢动手实践。

教学要求:结合学生特点,采用任务驱动、案例教学等方法,注重理论与实践相结合,培养学生的动手能力和创新能力。

通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 网页浏览器概述:介绍网页浏览器的发展历程、功能特点及工作原理。

相关教材章节:第一章 网页浏览器概述2. HTML基础:讲解HTML的基本结构、常用标签及其属性。

相关教材章节:第二章 HTML基础3. CSS样式:介绍CSS的基本语法、选择器、属性和值,以及如何使用CSS 进行简单样式设计。

相关教材章节:第三章 CSS样式4. 网页布局与排版:讲解网页布局的基本原则,学习使用div、span等标签进行页面布局。

相关教材章节:第四章 网页布局与排版5. 网页设计与实践:结合实际案例,指导学生动手编写简单网页,如个人博客、班级网站等。

相关教材章节:第五章 网页设计与实践6. 网络道德与规范:教育学生遵守网络道德规范,保护个人隐私,尊重他人劳动成果。

UC 浏览器 说明书 7.7

UC 浏览器 说明书 7.7

目录1关于软件 (3)1.1 安装软件.......................................................................................................................................- 4 - 1.2 卸载软件.......................................................................................................................................- 4 - 1.3 界面介绍.......................................................................................................................................- 5 - 1.4 操作介绍.......................................................................................................................................- 6 -1.4.1 页面移动..........................................................................................................................................................- 6 -1.4.2 前进后退..........................................................................................................................................................- 6 -1.4.3 快捷菜单..........................................................................................................................................................- 7 -2新手入门.. (8)2.1 网址导航.......................................................................................................................................- 8 -2.1.1 我的导航..........................................................................................................................................................- 8 -2.2 访问网页.......................................................................................................................................- 9 - 2.3 快速搜索.......................................................................................................................................- 9 - 2.4 加为书签.......................................................................................................................................- 9 - 2.5 用户中心.......................................................................................................................................- 9 -2.5.1 注册用户..........................................................................................................................................................- 9 -2.5.2 更改城市........................................................................................................................................................- 10 -2.5.3 编辑账号........................................................................................................................................................- 10 -2.5.4 UC乐园...........................................................................................................................................................- 10 -2.5.5 热门应用........................................................................................................................................................- 11 -2.5.6 个性应用........................................................................................................................................................- 12 -2.5.7 聊天好玩........................................................................................................................................................- 16 -3菜单说明 (17)3.1 常用.............................................................................................................................................- 17 -3.1.1 网址................................................................................................................................................................- 17 -3.1.2 书签................................................................................................................................................................- 17 -3.1.3 加入书签........................................................................................................................................................- 19 -3.1.4 无图/有图.......................................................................................................................................................- 19 -3.1.5 搜索................................................................................................................................................................- 19 -3.1.6 刷新................................................................................................................................................................- 20 -3.1.7 夜间模式/日间模式........................................................................................................................................- 20 -3.1.8 退出................................................................................................................................................................- 20 -3.2 设置.............................................................................................................................................- 20 -3.2.1 系统设置........................................................................................................................................................- 21 -3.2.2 皮肤管理........................................................................................................................................................- 23 -3.2.3 缩放模式/适应屏幕........................................................................................................................................- 23 -3.2.4 全屏................................................................................................................................................................- 24 -3.2.5 旋转屏幕........................................................................................................................................................- 24 -3.2.6 定时刷新........................................................................................................................................................- 24 -3.2.7 顶栏设置........................................................................................................................................................- 24 -3.3 工具.............................................................................................................................................- 25 -3.3.1 下载管理........................................................................................................................................................- 25 -3.3.2 剪贴板............................................................................................................................................................- 26 -3.3.3 保存网页........................................................................................................................................................- 26 -3.3.4 清除记录........................................................................................................................................................- 26 -3.3.5 文件管理........................................................................................................................................................- 27 -3.3.6 复制................................................................................................................................................................- 27 -3.3.7 页面查找........................................................................................................................................................- 27 -3.3.8 历史................................................................................................................................................................- 28 -3.4 其它.............................................................................................................................................- 28 -3.4.1 社区分享........................................................................................................................................................- 28 -3.4.2 短信分享........................................................................................................................................................- 29 -3.4.3 隐藏翻页/显示翻页........................................................................................................................................- 29 -3.4.4 移动翻页/锁定翻页........................................................................................................................................- 29 -3.4.5 检查更新........................................................................................................................................................- 30 -3.4.6 帮助................................................................................................................................................................- 30 -3.4.7 检查网络........................................................................................................................................................- 31 -4附录.. (32)4.1 客服联系.....................................................................................................................................- 32 -1关于软件UC浏览器是UC优视针对手机为主的手持终端,自主研发的网页浏览软件,其速度快,省流量,功能多,完善支持各类网页,以用户体验为核心诠释了移动浏览。

自己动手制作一款简洁实用的图片浏览器

自己动手制作一款简洁实用的图片浏览器

自己动手制作一款简洁实用的图片浏览器软件DIY,说白了就是利用现有的类库、组件,快速构造出自己的程序出来。

就象你找来各种电脑配件,然后把它们装配成整机一样;但也有不一样的地方,电脑配件即使是旧的二手配件,怎么说也得花一点钱,而软件的类库、组件,你有时侯可以免费得到。

我想要DIY的,是一款简洁实用的图片浏览器。

众所周知,ACDSee是最流行的图片浏览器,确实很不错。

但作为一名程序员,我想,要是我也能制作出一款简洁实用的图片浏览器,可以在我开发的软件中有图片浏览功能,那该多好。

而我确实DIY出了这么一个图片浏览器,她简洁实用,小巧玲珑,取名为:SimpleBrowse。

现将制作过程介绍如下,与大家分享,并期望能起到抛砖引玉的作用。

第一步:定规格1.样子要象ACDSee一样,左边是目录树,右边是文件列表,显示图片文件的缩图。

2.缩图要好看,浏览速度要快,能浏览的图片格式要多。

3.简洁实用,制作难度不要太大。

4.在Win98,WinNT下都能用。

第二步:选材料由于界面主要分为两大部分,即左边的目录树和右边的文件列表,故材料也就主要是这两大件。

1.左边目录树从/kstowell/上,我们可以得到一个免费的MFC 扩展类库CJ60Lib.dll,这个类库包含有许多用于界面设计的类,其中有一个CShellTree类,可以显示和Windows Explorer左边目录树一样的效果,正好符合我想要的,选定了它。

2.右边文件列表这是关键的部分,它要求能创建、显示、管理图片文件的缩图,要求能浏览多种格式的图片文件,要求有较精美的缩图显示效果和较快的浏览速度,要求易于使用难度不大。

泰来影像科技有限公司在图像处理应用软件开发方面有较深的造诣,推出了一个MFC扩展类库thl.dll,其中有一个CThumbListCtrl类,正是用来创建、显示图片缩图用的,选定了它,从/上获取之。

---- 第三步:生成程序框架---- 象开发其他程序一样,用VC++6.0 AppWizard生成程序框架。

JSP步骤 简单实例

JSP步骤 简单实例

上机一 WEB 应用开发环境配置内容:搭建JSP工作环境,主要包括Java JDK的安装、Tomcat服务器的安装和构建班级论坛的第一个JSP的index.jsp首页面。

1. 安装JDK的步骤如下找到jdk-6-windows-i586.exe 运行安装程序,设定安装路径为D:\学习软件\jdk1.6.0, 其余接受默认安装。

安装结束后就要配置环境变量,包括java_home,path和classpath的设置,操作步骤如下:1)用鼠标右击“我的电脑”,选择“属性”,→“高级”→“环境变量”→“系统变量”→“新建”→在“变量名”输入框中写入“java_home”,在“变量值”输入框中写入“D:\学习软件\jdk1.6.0”→点击“确定”。

2)选中“系统变量”查看是否有classpath项目,如果没有就点击“新建”,→如果已经存在就选中classpath选项,→点击“编辑”按钮,→然后在“变量名”中填写“classpath”,→在“变量值”中填写“.;D:\学习软件\jdk1.6.0\lib;D:学习软件\jdk1.6.0\jre\lib”。

在“path”设定时,“变量名”输入框填写“path”,“变量值”输入框填写“D:\学习软件:\jdk1.6.0\bin”3)打开命令提示符窗口,输入命令“java -version”,看到Java版本的信息,确定安装完成。

2. 安装Tomcat6步骤如下将apache-tomcat-6.0.18.zip从磁盘中解压到D:\学习软件盘符下在D:\学习软件\apache-tomcat-6.0.18\bin目录下双击“startup.bat”启动服务器,双击“shutdown.bat”关闭服务器。

在环境变量中添加“变量名”为“tomcat_home”,“变量值”为“D:\学习软件\apache-tomcat-6.0.18”的设定。

在启动服务器后,打开浏览器,在地址栏输入http://localhost:8080查看,如出现主页,则表示安装成功。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一个较为完整的简易浏览器实例use Gtk2;use Glib qw( TRUE FALSE );use LWP::UserAgent; ##这个模块用来取回或者发送http 数据use HTML::TokeParser; ##这个模块用来分析取回的html 数据use strict;use Encode qw/encode decode/;use URI; ##分析url 地址模块my $ua = LWP::UserAgent -> new;$ua -> timeout( 30 ); ##设定http 取回的超时时间$ua -> agent( 'perl web browser 0.1 by ' ); ##设定http头$ua -> default_header( 'Pragma' => 'no-cache','Accept' => '*/*',);$ua -> proxy( ['http', 'ftp'], 'http://*.*.*.*:8080' ); ##设定代理服务器地址,不用可以注释掉my $p;my $title = 'Perl web browser'; ##程序的标题my $url_base;Gtk2 -> init;my $hovering_over_link = 0;my $hand_cursor = Gtk2::Gdk::Cursor -> new ( 'hand2' ); ##添加一个手型的光标my $regular_cursor = Gtk2::Gdk::Cursor -> new ( 'xterm' );my $win = Gtk2::Window -> new( );$win -> set_title( $title );$win -> set_size_request( 640,480 ); ##设定窗口的大小$win -> set_position( 'center' ); ##设定窗口出现的位置$win -> signal_connect( destroy => sub{Gtk2 -> main_quit;} );my $buffer = Gtk2::TextBuffer -> new( ); ##添加一个文字缓冲,用于存储所有html数据来显示my $tag_h1 = $buffer -> create_tag ( "title1", font => "Sans 20" ); ##建立一个h1文字标签my $tag_h2 = $buffer -> create_tag ( "title2", font => "Sans 18" );my $tag_h3 = $buffer -> create_tag ( "title3", font => "Sans 14" );my $vbox = Gtk2::VBox -> new; ##添加一个VBox,用来将其他控件竖直布局my $hbox = Gtk2::HBox -> new; ##添加一个Hbox 用来水平布局其他控件my $entry = Gtk2::Entry -> new; ##添加一个单行文字输入控件用来输入url 地址$entry -> set_text ( '/' ); ##设置url 输入栏里的初始地址$entry -> signal_connect( 'key-release-event' , \&filter_key ); ##设定url 输入栏中对于键盘事件的回应$hbox -> pack_start( $entry,1,1,0 ); ##在水平hbox 栏中先放置url 输入栏my $button = Gtk2::Button -> new_from_stock ( 'gtk-apply' ); ##添加一个提交按钮$button -> can_focus ( 0 ); ##设置该按钮不能聚焦$button -> signal_connect( 'released',\&get_url_content,$entry -> get_text ); ##设定按钮按下触发的子程序$hbox -> pack_start( $button,0,0,0 ); ##在水平hbox 栏中后放入提交按钮my $sw = Gtk2::ScrolledWindow -> new ( undef,undef ); ##添加一个滚动窗口$sw -> set_policy( 'automatic','automatic' ); ##设定滚动窗口的出现滚动条的规则my $textview = Gtk2::TextView -> new( ); ##添加一个多行文字控件用于显示html数据$textview -> signal_connect ( motion_notify_event => \&motion_notify_event ); ##设置鼠标在多行控件上滑动时触发的子程序$textview -> signal_connect ( button_release_event => \&button_release ); ##设定鼠标在多行控件上按下释放时触发的子程序$textview -> can_focus ( 0 );$textview -> set_editable( 0 ); ##该文字控件不可编辑$textview -> set_left_margin ( 10 ); ##设置文字控件左边的空白$textview -> set_right_margin ( 10 );$textview -> set_wrap_mode( 'GTK_WRAP_WORD_CHAR' ); ##设置文字控件的换行方式$textview -> set_buffer( $buffer ); ##给文字控件添加刚才建立的缓冲$sw -> add( $textview ); ##在滚动窗口中添加文字控件从而让文字窗口可以滚动显示$vbox -> pack_start( $hbox,0,0,1 ); ##竖直的先放置刚才的水平控件$vbox -> pack_start( $sw,1,1,1 ); ##竖直的后放置滚动窗口控件$win -> add( $vbox ); ##在整个窗口中添加竖直控件,这里最后完成了所有的控件布局$win -> show_all; ##显示窗口中的所有元素Gtk2 -> main; ##开始主循环sub filter_key{ ##监听url 输入栏,当有回车输入时取回url 数据my ( $widget,$event ) = @_;my $key = Gtk2::Gdk::keyval_name( $event,$event -> keyval );if ( $key eq "Return" || $key eq "KP_Enter" ){get_url_content ( $widget,$entry -> get_text ); }}sub get_url_content{ ##取回html 数据my ( $widget,$url,$mark ) = @_;unless ( $url = ~m/^http/ ) {unless ( $url = ~m/(.*)\/(.*)/ ) {$url = $url."/";}$url = 'http://'.$url;$entry -> set_text( $url );}unless ( $url = ~m/^http:\/\/(.*)\/(.*)/ ) {$url = $url."/";$entry -> set_text( $url );}#print $url,"\n";my $resp = $ua -> get( $url );unless ( $resp -> is_success ){ my $error_dialog = Gtk2::MessageDialog -> new( undef, 'modal', 'error', 'close', decode( 'euc-cn',"你输入的$url地址无法访问!!" ) );if ( $error_dialog -> run ) {$error_dialog -> destroy; }return;}$url_base = $resp -> base;show_page( $resp -> content,$mark );}sub insert_link { ##将html中的连接纪录下来并插入缓冲特殊显示my ( $buffer, $iter, $text, $link ) = @_;my $tag = $buffer -> create_tag ( undef,foreground => "blue",underline => 'single' ) ;$tag -> {link} = URI -> new_abs( $link, $url_base );$buffer -> insert_with_tags ( $iter, $text, $tag ) ;}sub insert_mark{ ##在缓冲中插入书签my ( $buffer, $iter, $link ) = @_;$buffer -> create_mark ( $link ,$iter, 1 );}sub show_page { ##显示html页面my ( $content,$mark ) = @_;$buffer -> set_text ( "" ); ##缓冲清空my $iter = $buffer -> get_iter_at_offset ( 0 );$p = HTML::TokeParser -> new ( \$content );my $next_tag;my $body;while ( my $token = $p -> get_token ) { ##分析html数据,按照不同的数据来将其插入到文字缓冲中,这里缺省全部按照gb2312的编码解码成utf8,gtk2-perl 只能识别utf8 的数据if ( $token -> [0] eq 'S' ) {if ( $token -> [1] eq 'title' ) {$win -> set_title( $title.":\"".decode( 'euc-cn',$p -> get_trimmed_text )."\"" );next;}elsif ( $token -> [1] eq 'body' ) {$body = 1;}unless( $body ) {next;}elsif ( $token -> [1] eq 'td' ) {$buffer -> insert ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ) );}elsif ( $token -> [1] eq 'p'|| $token -> [1] eq 'br' ) {$buffer -> insert ( $iter,"\n".decode( 'euc-cn',$p -> get_trimmed_text ) );}elsif ( $token -> [1] eq 'tr' ) {$buffer -> insert ( $iter,"\n" );}elsif ( $token -> [1] eq 'h1' ) {$buffer -> insert ( $iter,"\n" );$next_tag = 'h2';$buffer -> insert_with_tags ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ), $tag_h1 ) ;}elsif ( $token -> [1] eq 'h2' ) {$buffer -> insert ( $iter,"\n" );$next_tag = 'h2';$buffer -> insert_with_tags ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ), $tag_h2 ) ;}elsif ( $token -> [1] eq 'h3' ) {$buffer -> insert ( $iter,"\n" );$next_tag = 'h2';$buffer -> insert_with_tags( $iter, decode( 'euc-cn',$p -> get_trimmed_text ), $tag_h3 ) ;}elsif ( $token -> [1] eq 'li' ) {$buffer -> insert_with_tags ( $iter, " .", $tag_h1 ) ;$buffer -> insert ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ) );}elsif ( $token -> [1] eq 'a' ) {if ( $token -> [2]{name} ) {insert_mark( $buffer, $iter, $token -> [2]{name} );if ( $next_tag ) {$buffer -> insert_with_tags ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ), $tag_h2 ) ;$next_tag = undef;next;}$buffer -> insert ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ) );next;}$buffer -> insert ( $iter, " " );insert_link ( $buffer, $iter, decode( 'euc-cn',$p -> get_trimmed_text ), $token -> [2]{href} );$buffer -> insert ( $iter, " " );}else{$buffer -> insert ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ) );}}elsif ( $token -> [0] eq 'E' ) {if ( $token -> [1] eq 'li'||$token -> [1] eq 'h1'||$token -> [1] eq 'h2'||$token -> [1] eq 'h3'||$token -> [1] eq 'tr'||$token -> [1] eq 'p'||$token -> [1] eq 'br' ) {$buffer -> insert ( $iter,"\n" );}if ( $token -> [1] eq 'td' ) {$buffer -> insert ( $iter," " );}if ( $token -> [1] eq 'a' ) {$buffer -> insert ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ) );}if ( $token -> [1] eq 'body' ) {$body = 0;}}elsif ( $token -> [0] eq 'T' ) {$buffer -> insert ( $iter, decode( 'euc-cn',$p -> get_trimmed_text ) );}}}sub button_release { ##当鼠标在多行文字控件点击时取回点击的位置my ( $text_view, $event ) = @_;my $buffer = $text_view -> get_buffer;my ( $start, $end ) = $buffer -> get_selection_bounds;return FALSE if defined $end and $start -> get_offset != $end -> get_offset;my ( $x, $y ) = $text_view -> window_to_buffer_coords ( 'widget',$event -> x, $event -> y );my $iter = $text_view -> get_iter_at_location ( $x, $y ); ##根据鼠标的位置取回在缓冲中的位置follow_if_link ( $text_view, $iter );}sub follow_if_link { ##根据当前的位置检查是否在超级连接上,是的话取回该urlmy ( $text_view, $iter ) = @_;foreach my $tag ( $iter -> get_tags ) {my $link = $tag -> {link};unless ( $link eq "" ) {if ( $link = ~m/^#/ ) { ##如果链接是书签,则滚动到书签的位置$link = ~s/^#//;my $mark = $text_view -> get_buffer -> get_mark ( $link );$text_view -> scroll_to_mark( $mark, 0, 1, 0, 0 );last;}elsif ( $link = ~m/(.*)#(.*)/ ) {my $link = $1;my $mark = $2;$entry -> set_text ( "$link#$mark" );get_url_content ( $text_view,$link,$mark );last;}else{$entry -> set_text ( $link );get_url_content ( $text_view,$link );last;}}}}sub motion_notify_event { ##当鼠标在多行控件上时取回该鼠标的位置并交给set_cursor_if_appropriate 来检查my ( $text_view, $event ) = @_;$text_view -> window -> get_pointer;my ( $x, $y ) = $text_view -> window_to_buffer_coords ( 'widget',$event -> x, $event -> y );set_cursor_if_appropriate ( $text_view, $x, $y );}sub set_cursor_if_appropriate { ##当鼠标在多行文字控件上时检查是否正在超级链接上,是。

相关文档
最新文档