首页 > 其他分享 >Ext Designer1.0试用手记

Ext Designer1.0试用手记

时间:2023-08-03 17:38:44浏览次数:64  
标签:Designer1.0 xtype title text Ext 手记 items border panel


 

 

    Ext官网在4月22日推出了Ext Designer 1.0正式版,该版本可以试用14天。下面就是笔者的试用过程。
    安装过程很简单,在这里就不赘述了。
    软件运行后,将出现一个下图所示的注册窗口:

   

    这里需要一个官网论坛帐号。
    注册后,将显示以下窗口:

   

  

单击“ New project ”开始一个新项目,然后会看到下图的设计窗口。

 

设计窗口和我们习惯的 IDE 工具一样。下面我们尝试制作一个传统的 3 个区域布局界面。

首先在左边控件的“ Containers ”中找到“ Viewport ”,将其拖入设计区域,将看到如下图的结果。

 

 

单击设计区域“ Viewport ”右上角的齿轮按钮,将看到如下图所示的小窗口。

 

 

在下拉列表中选择“ border ”。这样就定义了 Viewport 内将使用“ Borderlayout ”作为容器。

在左边“ Containers ”内将一个“ Panel ”拖到“ Viewport ”内,单击“ Panel ”右上角的齿轮图标将其“ layout ”修改为“ Fit ”,“ region ”修改为“ north ”。然后在右边“ Component Config ”中将其“ height ”设置为 28 ,“ hedaer ”和“ border ”设置为不选择。

然后将一个“ Toolbar ”加入到 Panel 中。将一个“ Button ”拖到“ Toolbar ”内,修改其“ Text ”为“文件”。然后单击齿轮图标,增加“新建”和“打开”两个子菜单。完成后将看到如下图所示的结果。

 

 

 

接着将一个“ Treepanel ”拖到“ Viewport ”中,并对应修改以下属性:

l  Title :目录

l  Width : 200

l  MinWidth : 300

l  Region : west

l  Split :勾上

完成后,将一个“ tabpanel ”拖到“ Viewport ”内。最后结果如下图所示。

 

 

经过以上几个步骤就轻松完成了一个界面的布局。现在我们来看看其生成的代码。

生成的代码分两种,一种是类代码,一种是 JSON 代码。

 

生成的类代码如下:

 

MyViewportUi = Ext.extend(Ext.Viewport, {
    layout: 'border',
    initComponent: function() {
        this.items = [
            {
                xtype: 'panel',
                title: 'My Panel',
                region: 'north',
                layout: 'fit',
                height: 28,
                border: false,
                header: false,
                tbar: {
                    xtype: 'toolbar',
                    items: [
                        {
                            xtype: 'button',
                            text: '文件',
                            menu: {
                                xtype: 'menu',
                                items: [
                                    {
                                        xtype: 'menuitem',
                                        text: '新建'
                                    },
                                    {
                                        xtype: 'menuitem',
                                        text: '打开'
                                    }
                                ]
                            }
                        }
                    ]
                }
            },
            {
                xtype: 'treepanel',
                title: '目录',
                region: 'west',
                split: true,
                minWidth: 300,
                width: 200,
                border: true,
                root: {
                    text: 'Root Node'
                },
                loader: {

                }
            },
            {
                xtype: 'tabpanel',
                activeTab: 0,
                region: 'center',
                items: [
                    {
                        xtype: 'panel',
                        title: 'Tab 1'
                    },
                    {
                        xtype: 'panel',
                        title: 'Tab 2'
                    },
                    {
                        xtype: 'panel',
                        title: 'Tab 3'
                    }
                ]
            }
        ];
        MyViewportUi.superclass.initComponent.call(this);
    }
});


 

生成的 JSON 代码如下:

 

{
    "xtype": "viewport",
    "layout": "border",
    "items": [
        {
            "xtype": "panel",
            "title": "My Panel",
            "region": "north",
            "layout": "fit",
            "height": 28,
            "border": false,
            "header": false,
            "tbar": {
                "xtype": "toolbar",
                "items": [
                    {
                        "xtype": "button",
                        "text": "文件",
                        "menu": {
                            "xtype": "menu",
                            "items": [
                                {
                                    "xtype": "menuitem",
                                    "text": "新建"
                                },
                                {
                                    "xtype": "menuitem",
                                    "text": "打开"
                                }
                            ]
                        }
                    }
                ]
            }
        },
        {
            "xtype": "treepanel",
            "title": "目录",
            "region": "west",
            "split": true,
            "minWidth": 300,
            "width": 200,
            "border": true,
            "root": {
                "text": "Root Node"
            },
            "loader": {}
        },
        {
            "xtype": "tabpanel",
            "activeTab": 0,
            "region": "center",
            "items": [
                {
                    "xtype": "panel",
                    "title": "Tab 1"
                },
                {
                    "xtype": "panel",
                    "title": "Tab 2"
                },
                {
                    "xtype": "panel",
                    "title": "Tab 3"
                }
            ]
        }
    ]
}


 

从代码中可以看出,类代码对于实现代码的模块化是相当实用。当然,简单的 JSON 代码也提供了另外一种选择。

总体来说, Ext Designer 是一个不错的 UI 辅助设计工具,比较简单实用。不过软件的稳定性还需要加强,笔者在写这篇博文的试用过程中就崩溃过几次。

至于软件的价格,单用户人民币不到 1200 的价格对公司来说还是可以接受。

 

Ext Designer 下载地址: http://www.extjs.com/products/designer/download.php

 

 


 

 

 

标签:Designer1.0,xtype,title,text,Ext,手记,items,border,panel
From: https://blog.51cto.com/dqhuang/6951088

相关文章

  • 《Ext详解与实践》节选:自定义单元格的显示格式
    有时候,需要在Grid中显示一个链接,或根据数字的大小显示不同的颜色,又或者使用固定格式显示记录编号等,这就需要自定义单元格的显示格式。在Ext的Grid可以很容易的实现自定义单元格的显示格式。在定义Grid的ColumnModel的时候,在需要自定义显示格式的列中加入参数renderer,该参数指向一个......
  • 《Ext详解与实践》节选:文件上传
    rel="File-List"href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">rel="Edit-Time-Data"href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01......
  • UE5 unresolved external symbol 解决方案
    背景unresolvedexternalsymbol问题是模块代码使用了其他模块,build.cs文件中没有添加对这些模块的依赖问题Error LNK2001 unresolvedexternalsymbol"public:virtualvoid__cdeclUWidget::PreSave(classFObjectPreSaveContext)"(?PreSave@UWidget@@UEAAXVFObjectPreSaveCon......
  • 如何在 React 18 中使用 useSyncExternalStore
    原文useSyncExternalStore是React18中提供的自定义挂钩,可让您订阅外部存储并在外部存储更新时更新您的React组件。它对于订阅不是建立在React状态管理之上的外部存储特别有用。useSyncExternalStoreAPI您应该在组件的顶层调用useSyncExternalStore方法import{useSyncExte......
  • C语言关键字extern。
    extern:声明变量是在其他文件正声明(也可以看做是引用变量):extern用在变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。//文件1代码#include<stdio.h>externvoidlbw();//声明外部lbw()intmain(){ lbw();}//文件2代码#include<stdio.h>voidlbw......
  • 工具 – VS Code Extensions
    前言分享我用着的Extensions。 AngularLanguageService不用介绍,用Angular的必装。 BetterComments没什么鸟用,只是让注释有多点颜色morecolorful美美而已。 C#用C#的必装。 CodeSpellChecker检查英文有没有错别字。我这种英文差的人必备。 Consol......
  • 视频直播源码,android:textColor设置无效
    视频直播源码,android:textColor设置无效title_color.xml <?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android">  <itemandroid:color="@color/txt_blue"/>......
  • innerText和innerTml的区别
        ......
  • Hexo主题Next配置algolia站内搜索
    Algolia是一家为网站与移动应用提供托管式搜索API的初创企业,成立于2012年,总部位于旧金山,曾参加过去年的YC训练营。网站或移动应用只需嵌入简单代码数分钟即可实现搜索功能。实现的效果如下search注册Algolia打开Algolia进行注册。可直接使用github账号进行注册。创建index点......
  • ASP.NET WebForm中在TextBox输入框回车时会触发其他事件,如何处理?
    一、TextBox在输入框回车时会触发其他事件,如何解决?在ASP.NETWebForm中,在页面中按键盘上的回车键,会自动触发某些事件,但是这并不是我们想要的效果,我们可以设置将其取消,那如何处理呢?前台代码:<ul><li><span>名称:</span><asp:TextBoxID="txtCategoryName"runat="ser......