热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

根我一步一步学Qooxdoo

Qooxdoo入门qooxdoo(发音[kuksdu:])和EasyUI,ExtJS相似,是一种基于浏览器建立用户友好,界面表现丰富RIA应用系统的通用JavaScript框架。Q

Qooxdoo入门

 

qooxdoo(发音['kuksdu:])EasyUI,ExtJS 相似,是一种基于浏览器建立用户友好,界面表现丰富RIA应用系统的通用Javascript框架Qooxdoo核心是完全基于类,并充分利用了Javascript面向对象的功能。它的命名空间功能使用户很方便的管理和组织自己的代码,且很容易与其他JS类库进行集成。Qooxdoo支持大多数现代浏览器(如Firefox, IE, Opera, Safari, Chrome)。它本身集成的工具链不仅可以象Javadoc那样自动生成API文档,还允许快速完整应用系统进行自动构建、优化、压缩、链接和部署。它的核心功能包括了国际化和本地化功能,可以自动生成不同国家和语言的应用程序。qooxdoo是开放源代码的,基于LGPL和EPL双协议,也就是说它可以免费使用,无论您是个人使用还是商业应用。

以上对qooxdoo做了一个简单的介绍,下面我们就一步一步的进行学习。

一、Qooxdoo开发环境设置

由于qooxdoo自带工具使用Python脚本语言,因此环境设置的第一步是下载ActivePython脚本语言程序交并安装,打开下载网址:http://www.activestate.com/activepython/downloads

 

Qooxdoo使用的版本为2.7,因此我们点击下载2.7.10版本。下载完成后运行安装程序,并按默认设置进行安装。安装成功后在cmd窗口运行命令python,如出现下面内容表明安装成功。如提示找不到python命令,请设置python环境变量(http://jingyan.baidu.com/article/48206aeafdcf2a216ad6b316.html)。

第二步需要下载qooxdoo的框架源码。打开下载地址:http://qooxdoo.org/downloads

 

由于我们开发是的RIA程序,所以请下载Desktop版,当前最新版为5.0.1,下载完成后将qooxdoo-5.0.1-sdk.zip压缩文件解压到你的WEB服务器目录下(其它目录下也可以,这里为了讲解决方法请使用c:\web_app\webroot\qx)。这时在D:\WebRoot目录下应有一个Qooxdoo-5.0.1目录,结构如下:

 

到这里qooxdoo的开发及运行环境就设置完成了。

二、第一个qooxdoo程序。

使用qooxdoo系统自带的工具生成第一个qooxdoo程序框架。进行d:\webroot\qooxdoo5.0.1目录执行create-application.py命令。

此时在c:\web_app\webroot\qx目录以会自动生成子目录qxtest。

参数说明:-n 应用名称  -t 应用类型 -o 程序输出目录

使用cmd窗口进行这个目录。使用generate.py命令对系统进行代码编译。

现在你可以打开一个浏览器,输入地址:http://127.0.0.1/qx/qxtest/source查看框架的效果。


浏览器出现上面的按钮表示我们的第一个qooxdoo程序顺利完成。

三、第一个qooxdoo窗口

下面利用我开发的qooxdoo可视化窗口设计器设计开发第一个qooxdoo窗口。请到百度网盘下载qooxdoo可视化开发工具(地址:http://download.csdn.net/detail/qhdcsj/9235547)QXDesigner.exe,运行它会打开应用程序界面如下图:

 

点击新建按钮,创建一个新的窗口(具体IDE操作可以参考Delphi的IDE操作)。

设置窗口的名称为qxtest_WinMain(格式为qooxdoo的命名空间加下划线加窗口名称)。

 

通过Caption属性设置窗口标题,通过Icon属性设置窗口的标题栏使用的图标(如不设置窗口只显示标题)

 

点击工具栏中按钮选择qooxdoo的js文件及图标所保存的目录并进行代码自动生成。

 

这时系统会自动弹出对话框显示所生成的代码。

 

并且在你所选择的目录下生成WinMain.js文件以及WinMain目录。

将WinMain.js文件拷贝到C:\WEB_APP\webroot\qx\qxtest\source\class\qxtest目录下。将WinMain目录整个拷贝到C:\WEB_APP\webroot\qx\qxtest\source\resource\qxtest目录下。使用文本编辑工具编辑文件C:\WEB_APP\webroot\qx\qxtest\source\class\qxtest\Application.js文件。 

将button1的单击事件代码修改为如上图所示内容。

执行generate.py source命令重新编译代码。再次使用浏览器打开我们的qooxdoo应用并点击按钮,程序就会打开刚刚设计的qooxdoo窗口。如下图所示:

 

当打缺口个窗口时发现它每次都出现在浏览器的左上角,我们在Application.js文件中加入下面的代码将窗口打开时居中显示。

当然,上面的例子只是一个空窗体,它还没有任何功能。

注:这一节中使用的窗口设计器中的Form窗体可以使用属性有:

Caption:窗口标题

BorderIcons:窗口右上角三个按钮是否显示。

Name:窗口的名称。这个名称必须是应用的命名空间+下划线+窗口名称的格式。

Width:窗口宽

Height:窗口高

Icon:窗口标题栏图标

Font:窗口字体

四:TextField,Button组件。

这一节我们使用TextField,Button组件来完成一个简单的应用,即点击按钮时将输入框1中输入的内容显示到输入框2中。我们使用窗体设计器设计界面如下图:

选择按钮的Events标签,双击OnClick定义按钮单击事件。

生成WinMain.js文件

将WinMain.js文件拷贝到C:\WEB_APP\webroot\qx\qxtest\source\class\qxtest目录下覆盖原来的文件。使用文本编辑器打开这个文件。在QxButton1的单击事件中录入下面的代码

使用执行generate.py source命令重新编译代码。再次使用浏览器打开我们的qooxdoo应用并点击按钮打开qooxdoo窗口。此时单击QxButton1按钮,QxTextField1内容就会显示到QxTextField2中。

注:本节中QxTextField控件可以使用的属性有:

Value,Name,Height,Width,Left,Top,Font

QxButton控件可以使用的属性有:

Caption,Name,Layout,Glyph,Height,Width,Left,Top,Font

事件:OnClick


推荐阅读
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文介绍了在Python中使用zlib模块进行字符串的压缩与解压缩的方法,并探讨了其在内存优化方面的应用。通过压缩存储URL等长字符串,可以大大降低内存消耗,虽然处理时间会增加,但是整体效果显著。同时,给出了参考链接,供进一步学习和应用。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
author-avatar
苏格拉没有底YI_670
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有