Выбор оптимальных макетов для изменяемых размеров окон в qooxdoo - PullRequest
0 голосов
/ 28 августа 2011

Я пытаюсь понять Qooxdoo.

Итак, окно с использованием макета "VBox" работает, панель инструментов тоже, но компонент таблицы работает неправильно.

qx.Class.define("tiny.MainWindow",
{
extend : qx.ui.window.Window,

construct : function()
{
  this.base(arguments, "tiny")
  this.setContentPadding(0);

  this.setWidth(400);
  this.setHeight(300);

  var layout = new qx.ui.layout.VBox();
  this.setLayout(layout);
  this.setShowMinimize(false);
  this.setAllowClose(false);
  this.setContentPadding(0);
  this.open();

  // toolbar and buttons is hidden
  // because only table works wrong

  var tableModel = new qx.ui.table.model.Simple();
  tableModel.setColumns(["ID"]);
  tableModel.setData([[0],[1],[2],[3]]);

  var table = new qx.ui.table.Table(tableModel);
  this.add(table, {row: 1, column: 0, colSpan: 10});

  this.add(table, {flex: 1});
}
});

var tiny_window = new tiny.MainWindow();
tiny_window.open();  
tiny_window.moveTo(100, 100);

У меня естьполучил такой вывод: «Свойство 'row' не поддерживается макетом VBox!"

Таблица отображается правильно, но вертикальное изменение размера не меняет вертикальный размер таблицы.

Итак, чтоТипы макетов, которые я должен использовать с компонентом таблицы, панелью инструментов?

PS: Я уже попробовал макет "Dock".Здесь ошибка похожа: «Свойство 'row' не поддерживается макетом Dock !: Значение 'row' должно иметь любое из значений, определенных в массиве 'flex, edge, height, width'".Может мне нужен другой способ определения размера таблицы?

1 Ответ

2 голосов
/ 28 августа 2011

просто брось линию

this.add(table, {row: 1, column: 0, colSpan: 10});

это действительно только для макета сетки

Оптимальный макет в вашем случае с одним элементом в окне, вероятно, будет

qx.ui.layout.Grow()
...