1

私は現在、ext js 4 のテーマ機能に頭を悩ませようとしていますが、ボタンのスタイリングに問題があります。

提供されている scss 変数を使用してボタンのサイズを設定することはできませんが、これにはいくつかの JavaScript 設定オプションがあります。これらの設定をすべてのボタン インスタンスに適用する必要がないため、ボタン クラスの「設定のデフォルト」を設定する方法を探していました。

デフォルトの高さを設定するときは、次のアプローチがうまくいきました。

Ext.button.Button.prototype.height = 15;

残念ながら、これは 'minWidth' 構成では不可能のようです:

Ext.button.Button.prototype.minWidth = 1; //nope, sorry

「minWidth」のデフォルト値を設定する方法はありますか?

4

2 に答える 2

1

簡潔な答え

Ext.override(Ext.panel.Panel, {
    minButtonWidth: 1
});
Ext.override(Ext.button.Button, {
    minWidth: 1
}); 

より長い答え

設定Ext.button.Button.prototype.minWidth = 1;は正しいです(短い回答で言及されているオーバーライドを使用することをお勧めします)が、75のデフォルトのminWidthを設定するExtJの内部処理によって無視されますExt.panel.PanelbridgeToolbars()関数を参照)。したがって、パネル ツールバーの外でボタンを使用する場合、最初の試みは機能します。

makeButtons()また、 の機能にはハードコーディングされた 75 個のボタンの minWidth がありますExt.window.MessageBox

私の意見では、バグレポート @sencha を開く必要があります。これには、テーマ設定可能な、よりグローバルな設定があるはずです。

更新: これは ExtJS 4.1 でテストされました

于 2012-06-21T10:15:23.227 に答える
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({.....

ただし、タブのようなものがボタンから伸びており、悪影響を与える可能性があるため、これがどれほど賢明かはわかりません。しかし、それはそれがどのように行われたかです。

于 2012-06-21T00:25:26.957 に答える