Extjs-工具条和菜单 Ext.menu和Ext.Toolbar

转载自:http://blog.csdn.net/itlwc/article/details/7878002

1.创建一个简单工具条
效果图

[javascript] view plaincopy

  1. <script type="text/javascript" defer>
  2. Ext.onReady(function(){
  3. // 创建带三个按钮的工具条
  4. var tb = new Ext.Toolbar({
  5. width : 300,
  6. items : [{
  7. text: ‘新建‘
  8. },{
  9. text: ‘修改‘
  10. },{
  11. text: ‘删除‘
  12. }]
  13. });
  14. // 为工具条再添加一个按钮
  15. tb.add({
  16. text: ‘显示‘
  17. });
  18. //tb.doLayout();//重新计算容器的布局尺寸
  19. new Ext.Viewport({
  20. items: [tb]
  21. });
  22. });
  23. </script>

2.创建一个简单菜单
效果图


代码

[javascript] view plaincopy

  1. <script type="text/javascript" defer>
  2. Ext.onReady(function(){
  3. //创建工具条
  4. var tb = new Ext.Toolbar({
  5. width : 300
  6. });
  7. //创建一个菜单
  8. var menuFile = new Ext.menu.Menu();
  9. menuFile.add({text: ‘新建‘});
  10. menuFile.add(‘-‘);
  11. menuFile.add({text: ‘打开‘});
  12. menuFile.add(‘separator‘);
  13. menuFile.add({text: ‘保存‘});
  14. menuFile.add(new Ext.menu.Separator());
  15. menuFile.add({text: ‘关闭‘});
  16. // 为工具条再添加一个菜单
  17. tb.add({
  18. text: ‘文件‘,
  19. menu: menuFile
  20. });
  21. //tb.doLayout();//重新计算容器的布局尺寸
  22. new Ext.Viewport({
  23. items: [tb]
  24. });
  25. });
  26. </script>

3.多级菜单

[javascript] view plaincopy

  1. <script type="text/javascript" defer>
  2. Ext.onReady(function(){
  3. var menuFile = new Ext.menu.Menu({
  4. items:[{
  5. text: ‘历史‘,
  6. menu: [{
  7. text: ‘今天‘
  8. },{
  9. text: ‘昨天‘
  10. }]
  11. }]
  12. });
  13. var tb = new Ext.Toolbar({
  14. width : 300,
  15. items : [{
  16. text: ‘文件‘,
  17. menu : menuFile
  18. }]
  19. });
  20. new Ext.Viewport({
  21. items: [tb]
  22. });
  23. });
  24. </script>

4.多选菜单

[plain] view plaincopy

  1. 单选和多选都使用Ext.menu.CheckItem,唯一不用的是group参数

效果图

代码

[javascript] view plaincopy

  1. <script type="text/javascript" defer>
  2. Ext.onReady(function(){
  3. var menuCheck = new Ext.menu.Menu({
  4. items : [
  5. new Ext.menu.CheckItem({
  6. text : ‘粗体‘,
  7. checkHandler : function(item,checked){
  8. Ext.Msg.alert(‘多选‘,(checked ? ‘选中‘:‘取消‘)+‘粗体‘);
  9. }
  10. }),
  11. new Ext.menu.CheckItem({
  12. text : ‘斜体‘,
  13. checkHandler : function(item,checked){
  14. Ext.Msg.alert(‘多选‘,(checked ? ‘选中‘:‘取消‘)+‘斜体‘);
  15. }
  16. })
  17. ]
  18. });
  19. var tb = new Ext.Toolbar({
  20. items : [{
  21. text : ‘字形‘,
  22. menu : menuCheck
  23. }]
  24. });
  25. new Ext.Viewport({
  26. items : [tb]
  27. });
  28. });
  29. </script>

5.单选按钮菜单

[plain] view plaincopy

  1. 单选和多选都使用Ext.menu.CheckItem,唯一不用的是group参数

效果图

代码

[javascript] view plaincopy

  1. <script type="text/javascript" defer>
  2. Ext.onReady(function(){
  3. var menuRadio = new Ext.menu.Menu({
  4. items : [
  5. new Ext.menu.CheckItem({
  6. text : ‘宋体‘,
  7. group : ‘font‘,
  8. checkHandler : function(item,checked){
  9. Ext.Msg.alert(‘单选‘,(checked ? ‘选中‘:‘取消‘)+‘宋体‘);
  10. }
  11. }),
  12. new Ext.menu.CheckItem({
  13. text : ‘黑体‘,
  14. group : ‘font‘,
  15. checkHandler : function(item,checked){
  16. Ext.Msg.alert(‘单选‘,(checked ? ‘选中‘:‘取消‘)+‘黑体‘);
  17. }
  18. }),
  19. new Ext.menu.CheckItem({
  20. text : ‘楷体‘,
  21. group : ‘font‘,
  22. checkHandler : function(item,checked){
  23. Ext.Msg.alert(‘单选‘,(checked ? ‘选中‘:‘取消‘)+‘楷体‘);
  24. }
  25. })
  26. ]
  27. });
  28. var tb = new Ext.Toolbar({
  29. items : [{
  30. text : ‘字体‘,
  31. menu : menuRadio
  32. }]
  33. });
  34. new Ext.Viewport({
  35. items : [tb]
  36. });
  37. });
  38. </script>

6.日期菜单
效果图

代码

[javascript] view plaincopy

  1. <script type="text/javascript" defer>
  2. Ext.onReady(function(){
  3. var tb = new Ext.Toolbar({
  4. items : [{
  5. text : ‘日期‘,
  6. menu : new Ext.menu.DateMenu({
  7. handler : function(dp, date){
  8. Ext.Msg.alert(‘选择日期‘, ‘选择的日期是 {0}.‘, date.format(‘Y年m月d日‘));
  9. }
  10. })
  11. }]
  12. });
  13. new Ext.Viewport({
  14. items : [tb]
  15. });
  16. });
  17. </script>

7.颜色菜单

[plain] view plaincopy

  1. Ext本身一些问题,颜色选中的时候handler会执行两次,第二次的参数传入一个event对象,
  2. 所以要加typeof进行判断,以免出现问题
  3. 最后颜色值返回6位的字符串,在它前面加#就可以使用了

效果图

代码

[javascript] view plaincopy

  1. <script type="text/javascript" defer>
  2. Ext.onReady(function(){
  3. var tb = new Ext.Toolbar({
  4. items : [{
  5. text : ‘颜色‘,
  6. menu: new Ext.menu.ColorMenu({
  7. handler : function(cm, color){
  8. if (typeof color == ‘string‘) {
  9. Ext.Msg.alert(‘选择颜色‘, ‘选择的颜色是 ‘ + color);
  10. }
  11. }
  12. })
  13. }]
  14. });
  15. new Ext.Viewport({
  16. items : [tb]
  17. });
  18. });
  19. </script>

8.右键弹出菜单

[javascript] view plaincopy

  1. <script type="text/javascript">
  2. Ext.onReady(function(){
  3. var contextmenu = new Ext.menu.Menu({
  4. items: [{
  5. text: ‘新建‘
  6. },{
  7. text: ‘修改‘
  8. },{
  9. text: ‘删除‘
  10. },{
  11. text: ‘显示‘
  12. }]
  13. });
  14. Ext.get(document).on(‘contextmenu‘, function(e) {
  15. e.preventDefault();
  16. contextmenu.showAt(e.getXY());
  17. });
  18. });
  19. </script>

9.使用Ext.menu.MenuMgr统一管理菜单

[plain] view plaincopy

  1. Ext为我们提供了MenuMgr来统一管理页面上的所有菜单
  2. 每创建一个菜单都会注册到Ext.menu.MenuMgr中,可以使用MenuMgr的函数对菜单进行操作,
  3. Ext.menu.MenuMgr是一个单例,我们不需要创建就可以直接调用功能函数get(),根据id获取对应的菜单

代码

[javascript] view plaincopy

  1. var menuWj = new Ext.menu.Menu({
  2. id: ‘menu1‘,
  3. allowOtherMenus: true,
  4. items: [
  5. {text: ‘今天‘},
  6. {text: ‘昨天‘}
  7. ]
  8. });
  9. Ext.get(‘showButton‘).on(‘click‘, function() {
  10. //获取menu实例
  11. var menu1 = Ext.menu.MenuMgr.get(‘menu1‘);
  12. menu1.show(tb.el);
  13. Ext.getDoc().removeAllListeners();
  14. });
  15. Ext.get(‘hideButton‘).on(‘click‘, function() {
  16. Ext.menu.MenuMgr.hideAll();
  17. });

10工具条加文本框和时间框
效果图

代码

[javascript] view plaincopy

  1. <script type="text/javascript">
  2. Ext.onReady(function(){
  3. var tb = new Ext.Toolbar({
  4. items : [
  5. ‘文本框‘,
  6. new Ext.form.TextField({
  7. name: ‘text‘
  8. }),
  9. ‘时间框‘,
  10. new Ext.form.DateField({
  11. name: ‘date‘
  12. })
  13. ]
  14. });
  15. new Ext.Viewport({
  16. items : [tb]
  17. });
  18. });
  19. </script>

11工具条加HTML标签
效果图

代码

[javascript] view plaincopy

  1. <script type="text/javascript">
  2. Ext.onReady(function(){
  3. var tb = new Ext.Toolbar({
  4. items : [
  5. ‘<span style="color:red;font-weight:bold;">红字</span>‘,
  6. ‘<input type="text">‘,
  7. ‘<button>按钮</button>‘
  8. ]
  9. });
  10. new Ext.Viewport({
  11. items : [tb]
  12. });
  13. });
  14. </script>

12.工具条加按钮的三种方法

[javascript] view plaincopy

  1. <script type="text/javascript">
  2. Ext.onReady(function(){
  3. var tb = new Ext.Toolbar({
  4. items : [{
  5. text : ‘按钮1‘
  6. },
  7. new Ext.Button({
  8. text : ‘按钮2‘
  9. }),
  10. new Ext.Toolbar.Button({
  11. text : ‘按钮3‘
  12. })]
  13. });
  14. new Ext.Viewport({
  15. items : [tb]
  16. });
  17. });
  18. </script>

13. Ext.Toolbar.Spacer

[plain] view plaincopy

  1. Ext.Toolbar.Spacer向菜单添加空白元素,
  2. xtype = tbspacer它是一个2px的空白

[javascript] view plaincopy

  1. tb.add({
  2. xtype : ‘tbspacer‘
  3. });

14. Ext.Toolbar.Separator

[plain] view plaincopy

  1. Ext.Toolbar.Separator向菜单添加一个竖线
  2. xtype = tbseparator 或者 –

[javascript] view plaincopy

  1. tb.add({
  2. xtype : ‘tbseparator‘
  3. });

15. Ext.Toolbar.Fill

[plain] view plaincopy

  1. 将处于它右侧的工具条组件以右对齐的方式排列在工具条右侧
  2. xtype=tbfill 或者->

[javascript] view plaincopy

    1. tb.add({
    2. xtype : ‘tbfill‘
    3. });
时间: 2024-08-06 16:04:37

Extjs-工具条和菜单 Ext.menu和Ext.Toolbar的相关文章

2014年8月24日 菜单 工具条 右键菜单(上下文菜单)

今天说说菜单 工具条 右键菜单吧,总的来说这些东西其实就是同一个东西.以前我们在做插件的时候遇到右键菜单啊,菜单什么的都会习惯性地去用actionSets这个拓展点.不过现在官方却把这个扩展点已经被deprecated弃用了..官方的说明: Do not use this extension point, it will be removed in future versions of this product. Instead, use the extension point org.ecli

窗体皮肤实现 - 在标题栏上增加快速工具条(四)

前面做的工作就是想在标题区域增加快速工具条.前续的基础工作完成,想要在标题区域增加特殊区域都非常方便.只要在绘制时控制自定义区域需要占用标题区域多少空间,然后直接在所占位置绘制.做这个事情前,稍微把代码规整了下.所以界面皮肤处理放到一个单元中. 主要处理步骤 1.划出一个新区域(整个工具条作为一个区域) 2.处理区域检测(HitTest) 3.如果是新区域,把相应消息传给这个区域处理. 4.响应鼠标点击,执行Action 通过上述步骤就能扩展出所想要的标题区快速工具条的. 标题按钮区域是作为一个

[ExtJS学习笔记]第八节 Extjs的Ext.toolbar.Toolbar工具条组件及其应用

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38515499 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- Ext JS API: http://docs.sencha.

[ExtJS5学习笔记]第八节 Extjs5的Ext.toolbar.Toolbar工具条组件及其应用

本文地址:http://blog.csdn.net/sushengmiyan/article/details/38515499 本文作者:sushengmiyan -------------------------------------------------------------资源链接----------------------------------------------------------------------- Ext JS API: http://docs.sencha.

QT学习之路--菜单、工具条、状态栏

下面一些是 Menu Bar,用于显示菜单;再下面一点事 Toolbar areas,用于显示工具条,Status Bar,就是状态栏. Qt 提供了一个 QStatusBar 类来实现状态栏. Qt 里面也有一个类似的类,叫做 QAction QAction 能够根据添加的位置来改变自己的样子 ——如果添加到菜单中,就会显示成一个菜单项;如果添加到工具条,就会显示成一个按钮. Qt提供的颜色选择对话框:QColorDialog. QColor color = QColorDialog::get

[转]ExtJs4 笔记(13) Ext.menu.Menu 菜单、Ext.draw.Component 绘图、Ext.resizer.Resizer 大小变更

作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律责任. 本篇讲解菜单.绘图.还有大小变更控件.菜单控件可以附加到各种其他控件中,比如按钮.工具栏等,甚至可以直接通过通过右键打开(模拟右键菜单):ext对绘图的支持可以让我们通过js来绘图:大小变更控件可以让各种html元素获取可变更大小的能力.下面我们一一详细介绍. 一.Ext.menu.Menu

菜单与工具条的同步 APP_STANDARD.SYNCHRONIZE

初始情况下,菜单与工具条的状态是一致的,但程序中动态改变某一属性时,工具条并不能相应地改变,所以必须编写代码完成同步.通过调用以下函数来完成同步:APP_STANDARD.SYNCHRONIZE需要注意的是,当触发以下TRIGGER 以后,同步将自动完成,无需人工完成.WHEN–NEW–RECORD–INSTANCEWHEN–NEW–BLOCK–INSTANCEWHEN–NEW–ITEM–INSTANCE在FORM的开发过程中,我们在代码中设置了块的可修改.可删除属性时,但是却菜单栏上的工具条并

菜单和工具条(二)

首先来添加图标.QAction的图标会显示在菜单项的前面以及工具条按钮上面显示. 为了添加图标,我们首先要使用Qt的资源文件.在QtCreator的项目上右击,选择New File...,然后选择resource file. 然后点击next,选择好位置,Finish即可.为了使用方便,我就把这个文件建在根目录下,建议应该在仔细规划好文件之后,建在专门的rsources文件夹下.完成之后,生成的是一个.qrc文件,qrc其实是Qt Recource Collection的缩写.它只是一个普通的X

ExtJS 4 【Ext.menu.Menu】

<div id="toolbar"></div>   .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin