【发布时间】:2016-12-13 10:44:18
【问题描述】:
当我在 qooxdoo 中创建一个新的模态窗口时,它的 z-index 为 100000。 第二个窗口将获得 100002 的 z-index。等等。
如何将初始值设置为 1000 ?
【问题讨论】:
标签: qooxdoo
当我在 qooxdoo 中创建一个新的模态窗口时,它的 z-index 为 100000。 第二个窗口将获得 100002 的 z-index。等等。
如何将初始值设置为 1000 ?
【问题讨论】:
标签: qooxdoo
自动 zIndex 分配由 qx.ui.window.Manager 实例完成。见http://www.qooxdoo.org/5.0.1/pages/desktop/window_management.html
qx.ui.window.Manager 有一个私有成员 _minZIndex,它的初始值为 10000。为了改变它,你必须从 qx.ui.window.Manager 派生你自己的窗口管理器类,并在重写的构造函数中更改该值,像这样:
qx.Class.define("qx.ui.window.MyManager",
{
extend : qx.ui.window.Manager,
construct : function() {
this.base(arguments);
this._minZIndex = 1000;
}
});
(请根据您的需要更改类路径qx.ui.window.MyManager)。
在创建第一个窗口之前,您可以使用以下代码替换应用程序的窗口管理器。一个好地方是在您的应用程序中 qx.application.Standalone 的覆盖 main 方法的开头
(见:http://www.qooxdoo.org/devel/api/#qx.application.AbstractGui~main):
var oldWindowManager = this.getRoot().getWindowManager();
var desktop = oldWindowManager.getDesktop();
var windowManager = new qx.ui.window.MyManager();
windowManager.setDesktop(desktop);
this.getRoot().setWindowManager(windowManager);
qx.ui.core.queue.Widget.remove(oldWindowManager);
oldWindowManager.dispose();
【讨论】:
<approot>/myapp/source/class/ui/window/Manager.js 中创建了派生窗口管理器类,并在qx.Class.define 中创建了相应的命名空间,例如maypp.ui.window.Manager?您是运行./generate.py source 来测试源版本还是运行./generate.py build 来测试构建版本?
窗口是一个 qx.ui.core.Widget。它继承了 zIndex 属性。所以使用 setZIndex http://www.qooxdoo.org/current/apiviewer/#qx.ui.core.Widget~setZIndex
【讨论】: