我目前正试图了解ext js 4的主题功能,并且在按钮样式方面遇到了一些麻烦。
使用提供的scss变量设置按钮尺寸是不太可能的,但是有一些javascript配置选项。因为我不想将这些设置应用于每个按钮实例,我一直在寻找一种为按钮类设置'config defaults'的方法。
设置默认高度时,以下方法效果很好:
Ext.button.Button.prototype.height = 15;
不幸的是,这似乎不可能用于'minWidth'配置:
Ext.button.Button.prototype.minWidth = 1; //nope, sorry
有没有办法为'minWidth'设置默认值?
答案 0 :(得分:1)
如果要在框架中为每个按钮更改它。使用覆盖系统。
应用/重写/ Button.js 强>
Ext.define('App.overrides.Button', {}, function() {
Ext.override(Ext.button.Button, {
minWidth: 20
});
});
<强> app.js 强>
Ext.onReady(function() {
/*
* Load Overrides
*/
Ext.require([
'App.overrides.Button'
]);
});
var app = Ext.Application({.....
我不确定这是多么明智,因为像tab这样的东西从按钮延伸,它可能会产生一些不利影响。但那就是如何做到的。
答案 1 :(得分:1)
Ext.override(Ext.panel.Panel, {
minButtonWidth: 1
});
Ext.override(Ext.button.Button, {
minWidth: 1
});
设置Ext.button.Button.prototype.minWidth = 1;
是正确的(更好地使用简短回答中提到的覆盖),但ExtJs内部处理设置Ext.panel.Panel
的默认minWidth为75时忽略(参见bridgeToolbars()
函数)。因此,如果您使用Panel工具栏之外的按钮,您的初始尝试将起作用。
此外,makeButtons()
Ext.window.MessageBox
函数中有75个按钮的硬编码minWidth。
在我看来,你应该打开一个bug报告@sencha,因为应该有一个可用的,更全局的设置。
更新:这是使用ExtJS 4.1测试的