ExtJS 4桌面-如何设置桌面快捷方式工具提示

ExtJS 4桌面-如何设置桌面快捷方式工具提示,extjs,extjs4,extjs-mvc,Extjs,Extjs4,Extjs Mvc,为桌面快捷方式设置工具提示的最佳方式是什么 在我的getDesktopConfig()中,我创建了一个包含iconCls、module、name字段的快捷方式数据数组。以下是将用户模块快捷方式添加到阵列,然后将阵列设置为快捷方式数据存储的数据属性的示例,快捷方式数据存储用于创建桌面快捷方式: Ext.define("MyDesktop.App", { extend: "Ext.ux.desktop.App", .... getDesktopConfig: functio

为桌面快捷方式设置工具提示的最佳方式是什么

在我的getDesktopConfig()中,我创建了一个包含iconCls、module、name字段的快捷方式数据数组。以下是将用户模块快捷方式添加到阵列,然后将阵列设置为快捷方式数据存储的数据属性的示例,快捷方式数据存储用于创建桌面快捷方式:

Ext.define("MyDesktop.App", {
extend: "Ext.ux.desktop.App",

....

getDesktopConfig:            function () {
    var b = this;
    var a = b.callParent();

    .....

    shortcut_data.push({
            iconCls:        "users-shortcut",
            module:         "users-module-window",
            name:           "Users"
        });

    ......

    return Ext.apply(a,{
        contextMenuItems:    [{
            text:           "Dashboards",
            handler:         b.onDashboards,
            scope:           b
        }],
        shortcuts:           Ext.create("Ext.data.Store",{
            model:          "Ext.ux.desktop.ShortcutModel",
            data:            shortcut_data
        }),
        wallpaper:          "/assets/MyApp_Wallpaper.jpg",
        wallpaperStretch:    false
    })
})
},
.....

假设快捷方式是由按钮衍生工具生成的,我会使用工具提示:“一些文本”配置用于快捷方式数据。

为工具提示在Ext.ux.desktop.ShortcutModel中添加一个字段。在这里,我把它命名为qtipText。Ext.ux.desktop.ShortcutModel显示现在如下所示:

Ext.define('Ext.ux.desktop.ShortcutModel', {
    extend: 'Ext.data.Model',
    fields: [
       { name: 'name' },
       { name: 'iconCls' },
       { name: 'module' },
       { name: 'qtipText' }
    ]
}); 
现在,在定义快捷方式时,将此字段与工具提示的值一起添加:

shortcut_data.push({
            iconCls:        "users-shortcut",
            module:         "users-module-window",
            name:           "Users",
            qtipText:       "Open Users Window"
        });
在Ext.ux.desktop.desktop的initComponent方法中,您将看到shortcutsView的itemclick事件有一个侦听器。只需为itemmouseenter事件添加另一个侦听器:

me.shortcutsView.on('itemmouseenter', me.onShortcutItemMouseEnter, me);
按如下方式定义处理程序:

onShortcutItemMouseEnter: function (dataView, record) {
    if(!dataView.tip)
         dataView.tip = Ext.create('Ext.tip.ToolTip', {
          target: dataView.el,
          delegate: dataView.itemSelector,                            
          trackMouse: true,
          html: record.get('qtipText')
      });
    else
      dataView.tip.update(record.get('qtipText'));
},

dataView.tip首次不存在,我们为此视图创建了工具提示。稍后,我们只需根据记录更新提示文本(对应于鼠标移动过的快捷方式)。

您缺少一条关键信息。呈现快捷方式的组件是什么?如果这是您的快捷方式配置{iconCls:“用户快捷方式”,模块:“用户模块窗口”,名称:“用户”}它应用于什么?快捷方式将添加到桌面应用程序。更新问题。我理解。但是我不熟悉这个应用,你能提供快捷图标的ExtJS组件类型吗?它是按钮的衍生物吗?桌面上的“快捷方式”对象是Ext.data.Store。每个“快捷方式”项都是Ext.ux.desktop.ShortcutModel,其定义是:Ext.define(“Ext.ux.desktop.ShortcutModel”),{extend:“Ext.data.Model”,字段:[{name:“name”},{name:“iconCls”},{name:“module}];你很困惑。存储只是一个记录数组。每个记录都是一个快捷方式的配置。但此配置应用于呈现快捷方式的组件。该组件可能是一个外部按钮。。。对吗?这很有意义,这是我尝试的第一件事,包括将该属性添加到ShortcutModel。运气不好,有工具提示吗?也就是说,QTIP是否已通过以下方式初始化:Ext.QuickTips.init();请查看Sencha演示桌面应用程序: