转自:https://llying.iteye.com/blog/324681

面板中可以有工具栏,工具栏可以位于面板顶部或底部,Ext中工具栏是由Ext.Toolbar类来表示。工具栏上可以放按钮、文本、分隔符等内容。面板对象中内置了很多实用的工具,可以直接通过面板的tools配置选项往面板头部加入预定义的工具栏选项。

这里工具栏主要用于面板中(panel,window等)
这里我们使用toolbar.js toolbar.html来进行演示

下面我们演示一下在window中应用工具栏
我们先创建一个window

1 Ext.onReady(function(){
2     var win = new Ext.Window({
3         width:400,
4         height:300,
5         title:"窗体"
6     });
7     win.show();
8 });

 

我们可以看到右上角有一个关闭按钮 那其实就是一个头部工具栏按钮
window中有一个tools的配置选项,他的作用就是定义这个头部的工具栏,他接收的是一个数组
数组中的元素包含id,handle等一系列属性,其中id的值是通过Ext事先定义的一系列中选择填入的,handler是对应的响应事件。handler可以传递三个参数 Event,toolEl,panel

 1 Ext.onReady(function(){
 2     var win = new Ext.Window({
 3         width:400,
 4         height:300,
 5         title:"窗体",
 6         tools:[{
 7             id:"toggle"
 8         },{
 9             id:"close"
10         },{
11             id:"help"
12         }]
13     });
14     win.show();
15 });

 

这里还有一些属性比如qtip,on这里的on很特殊,可以是我们自定义的一些事件 比如鼠标移入等等具体可以参见addListener
这里需要说明的是在使用qtip之前需要调用Ext的qtip初始化方法

 1 Ext.onReady(function(){
 2     Ext.QuickTips.init();
 3     var win = new Ext.Window({
 4         width:400,
 5         height:300,
 6         title:"窗体",
 7         tools:[{
 8             id:"toggle",
 9             handler:function(e,t,p){
10                 
11                 },
12             qtip:"hello"
13         },{
14             id:"close"
15         },{
16             id:"help"
17         }]
18     });
19     win.show();
20 });

 

tbar属性是顶部工具栏,可以有数组和object
我们先来看看ToolBar类,ToolBar的构造方法可以通过object或者数组类型的配置选项进行创建

 1 Ext.onReady(function(){
 2     Ext.QuickTips.init();
 3     var win = new Ext.Window({
 4         width:400,
 5         height:300,
 6         title:"窗体",
 7         tools:[{
 8             id:"toggle",
 9             handler:function(e,t,p){
10                 
11                 },
12             qtip:"hello"
13         },{
14             id:"close"
15         },{
16             id:"help"
17         }],
18         tbar:new Ext.Toolbar({
19             width:200,
20             height:50
21         })
22     });
23     win.show();
24 });

 

我们看到这里面得工具栏 不过我们并没有添加工具,下面我们向里面添加一些工具项。
这里我们通过add方法进行添加

 1 Ext.onReady(function(){
 2     Ext.QuickTips.init();
 3     var win = new Ext.Window({
 4         width:400,
 5         height:300,
 6         title:"窗体",
 7         tools:[{
 8             id:"toggle",
 9             handler:function(e,t,p){
10                 
11                 },
12             qtip:"hello"
13         },{
14             id:"close"
15         },{
16             id:"help"
17         }],
18         tbar:new Ext.Toolbar({
19             width:200,
20             height:50
21         })
22     });
23     win.show();
24     win.getTopToolbar().add(new Ext.Toolbar.TextItem("titem"))
25 });

 

由于只是文本item所以没有什么按钮效果

我们再来加几个

 1 Ext.onReady(function(){
 2     Ext.QuickTips.init();
 3     var win = new Ext.Window({
 4         width:400,
 5         height:300,
 6         title:"窗体",
 7         tools:[{
 8             id:"toggle",
 9             handler:function(e,t,p){
10                 
11                 },
12             qtip:"hello"
13         },{
14             id:"close"
15         },{
16             id:"help"
17         }],
18         tbar:new Ext.Toolbar({
19             width:200,
20             height:50
21         })
22     });
23     win.show();
24     win.getTopToolbar().add(new Ext.Toolbar.Fill());
25     win.getTopToolbar().add(new Ext.Toolbar.TextItem("titem"));
26     win.getTopToolbar().add(new Ext.Toolbar.Button({text:"bitem"}));
27     
28 });

 

这里Fill很有意思 通过他我们可以实现对齐方式

 1 Ext.onReady(function(){
 2     Ext.QuickTips.init();
 3     var win = new Ext.Window({
 4         width:400,
 5         height:300,
 6         title:"窗体",
 7         tools:[{
 8             id:"toggle",
 9             handler:function(e,t,p){
10                 
11                 },
12             qtip:"hello"
13         },{
14             id:"close"
15         },{
16             id:"help"
17         }],
18         tbar:new Ext.Toolbar({
19             width:200,
20             height:50
21         })
22     });
23     win.show();
24     win.getTopToolbar().add(new Ext.Toolbar.Fill());
25     win.getTopToolbar().add(new Ext.Toolbar.TextItem("titem"));
26     win.getTopToolbar().add(new Ext.Toolbar.Spacer());
27     win.getTopToolbar().add(new Ext.Toolbar.Separator());
28     win.getTopToolbar().add([new Ext.Toolbar.Spacer(),new Ext.Toolbar.Spacer()]);
29     win.getTopToolbar().add(new Ext.Toolbar.Button({text:"bitem"}));
30     
31 });

 

Spacer是空格 Separator是分隔符 add方法可以是多个参数

当然也可以通过配置选项的方式 不适用new

 1 win.getTopToolbar().add(new Ext.Toolbar.Fill());

2 win.getTopToolbar().add({xtype:"tbfill"}); 

 

上面的两句是等效的
一般我们是不会指定toolbar的宽高,他会自适应
默认toolbar的参数是button

 1         tbar:new Ext.Toolbar({
 2             //width:200,
 3             //height:50
 4         })
 5     });
 6     win.show();
 7     win.getTopToolbar().add({text:"defButton"});
 8     win.getTopToolbar().add(new Ext.Toolbar.TextItem("titem"));
 9     win.getTopToolbar().add(new Ext.Toolbar.Spacer());
10     win.getTopToolbar().add(new Ext.Toolbar.Separator());
11     win.getTopToolbar().add([new Ext.Toolbar.Spacer(),new Ext.Toolbar.Spacer()]);
12     win.getTopToolbar().add(new Ext.Toolbar.Button({text:"bitem"}));

 

这里的Ext.ToolBar.Button中有一个pressed : Boolean
表示是否显示已按下状态
这里还有一个SplitButton 我们在里面可以看到他有一个menu的配置选项,他可以给我们呈现出下拉菜单按钮

 1 win.getTopToolbar().add({text:"defButton",pressed:true});
 2     win.getTopToolbar().add(new Ext.Toolbar.TextItem("titem"));
 3     win.getTopToolbar().add(new Ext.Toolbar.Spacer());
 4     win.getTopToolbar().add(new Ext.Toolbar.Separator());
 5     win.getTopToolbar().add([new Ext.Toolbar.Spacer(),new Ext.Toolbar.Spacer()]);
 6     win.getTopToolbar().add(new Ext.Toolbar.Button({text:"bitem"}));
 7     
 8     var menu = new Ext.menu.Menu({
 9         items:[{
10             text:"first"
11         },"-",{
12             text:"second"
13         }]
14     })
15     win.getTopToolbar().add(new Ext.Toolbar.SplitButton({
16         text:"splitbutton",
17         menu:menu
18     }));

 

这里需要注意win.getTopToolbar()必须写在win.show()方法之后,因为必须先进行渲染才能取得一些他的一些东西
当然也可以通过window中的tbar:【】进行添加toolbar中的相关信息

 1 Ext.onReady(function(){
 2     Ext.QuickTips.init();
 3     var win = new Ext.Window({
 4         width:400,
 5         height:300,
 6         title:"窗体",
 7         tools:[{
 8             id:"toggle",
 9             handler:function(e,t,p){
10                 
11                 },
12             qtip:"hello"
13         },{
14             id:"close"
15         },{
16             id:"help"
17         }],
18         tbar:[new Ext.Toolbar.Spacer(),new Ext.Toolbar.Spacer()]
19     });
20     win.show();
21 });

与tbar对应的还有一个bbar只不过位置是在底部,使用上面还是一样的

 1 Ext.onReady(function(){
 2     Ext.QuickTips.init();
 3     var win = new Ext.Window({
 4         width:400,
 5         height:300,
 6         title:"窗体",
 7         tools:[{
 8             id:"toggle",
 9             handler:function(e,t,p){
10                 
11                 },
12             qtip:"hello"
13         },{
14             id:"close"
15         },{
16             id:"help"
17         }],
18         tbar:new Ext.Toolbar({
19             //width:200,
20             //height:50
21         }),
22         bbar:[new Ext.Toolbar.Button({text:"bitem"})]
23     });
24     win.show();

 

posted on 2017-10-16 14:26  Sharpest  阅读(220)  评论(0编辑  收藏  举报