Я думаю, проблема в том, что вы добавляете HTML-код так, как это не думается.Я думаю, что очередь qx делает некоторые вещи, которые не работают, как показывает ваш пример.Я сделал небольшой пример, чтобы показать, как это можно сделать с помощью собственного виджета:
qx.Class.define("my.Upload",
{
extend : qx.ui.core.Widget,
members :
{
_createContentElement : function()
{
return new qx.html.Element(
"input",
{
overflowX: "hidden",
overflowY: "hidden"
},
{
type: "file"
}
);
},
getFiles : function() {
return this.getContentElement().getDomElement().files;
}
}
});
var upload = new my.Upload();
var doc = this.getRoot();
doc.setLayout(new qx.ui.layout.VBox(10));
doc.add(upload);
var button1 = new qx.ui.form.Button("Test");
doc.add(button1);
button1.addListener("execute", function(e) {
alert(upload.getFiles().length);
});
Вот ссылка на пример работающей площадки: http://tinyurl.com/6xwxfq8