Версия для печати темы
Форум на CrossPlatform.RU _ Qt GUI _ QTableWidget, мастер-детэйл по плюсику
Автор: kuler 27.1.2009, 11:05
можно ли сделать мастер-детэйл по плюсику?
Автор: Litkevich Yuriy 27.1.2009, 12:14
Цитата(kuler @ 27.1.2009, 14:05)
можно ли сделать мастер-детэйл по плюсику?
это уже дерево будет, а не таблица
Автор: kuler 27.1.2009, 14:33
Цитата(Litkevich Yuriy @ 27.1.2009, 12:14)
это уже дерево будет
дерево характеризуется тем что у него нет колонок, а так да. Такие компоненты есть, но в qt не знаю
Автор: ViGOur 27.1.2009, 14:56
Цитата(kuler @ 27.1.2009, 14:33)
дерево характеризуется тем что у него нет колонок, а так да. Такие компоненты есть, но в qt не знаю
В Qt у дерева есть колонки, сам посмотри...
Автор: Litkevich Yuriy 27.1.2009, 15:00
Цитата(ViGOur @ 27.1.2009, 17:56)
В Qt у дерева есть колонки, сам посмотри
угу, http://doc.crossplatform.ru/qt/4.4.3/gallery.html
Автор: kuler 29.1.2009, 14:54
Цитата(ViGOur @ 27.1.2009, 14:56)
В Qt у дерева есть колонки, сам посмотри...
есть, но разве не они не на все дерево? мне то надо чтобы к примеру итемы второго уровня имели свою шапку, третьего - другую свою
Автор: ViGOur 29.1.2009, 15:03
Аааа, понятно.
Тогда для твоей задачи нужно делать самому, но это в принципе не сложно.
Автор: kuler 29.1.2009, 16:29
Цитата(ViGOur @ 29.1.2009, 15:03)
нужно делать самому,
что делать?
Автор: ViGOur 29.1.2009, 17:29
Чтобы у каждой ветки дерева был свой список с колонками.
Автор: kuler 29.1.2009, 17:51
Цитата(ViGOur @ 29.1.2009, 17:29)
тобы у каждой ветки дерева был свой список с колонками.
это примерно как? и нет ли каких то других компонентов чтобы это сразу было
Автор: Litkevich Yuriy 29.1.2009, 20:22
Цитата(kuler @ 29.1.2009, 20:51)
и нет ли каких то других компонентов чтобы это сразу было
думаю нету. Хотя я толком это представить и не смог. У тебя есть скрин подобного?
Автор: kuler 30.1.2009, 11:39
Цитата(Litkevich Yuriy @ 29.1.2009, 20:22)
У тебя есть скрин подобного?
http://devexpress.com/Products/VCL/ExQuantumGrid/appearance.xml
второй рисунок сверху
Автор: Litkevich Yuriy 30.1.2009, 14:00
kuler, там в основе дерево, и просто вставлен виджет в качестве одного из элементов дерева
так же как в Дизайнере в панели "Widget Box", просто по одному элементу на родителя и спратяны пунктирчики изображающие само дерево.
Автор: kuler 30.1.2009, 15:27
Цитата(Litkevich Yuriy @ 30.1.2009, 14:00)
так же как в Дизайнере в панели
ну там нет хедеров колонок
Цитата(Litkevich Yuriy @ 30.1.2009, 14:00)
ам в основе дерево,
нет, это такая таблица, как table widget только с возможностью делать так
Автор: Litkevich Yuriy 30.1.2009, 16:57
Цитата(kuler @ 30.1.2009, 18:27)
ну там нет хедеров колонок
ну включить/выключить не проблема. В примере заголовок один: "Company|Country|State"
Цитата(kuler @ 30.1.2009, 18:27)
нет, это такая таблица, как table widget только с возможностью делать так
я назвал это тем, чем это будет в Qt.
Автор: kuler 30.1.2009, 17:03
Цитата(Litkevich Yuriy @ 30.1.2009, 16:57)
В примере заголовок один: "Company|Country|State"
а order no sale date?
Автор: Litkevich Yuriy 30.1.2009, 17:27
Цитата(kuler @ 30.1.2009, 20:03)
а order no sale date?
смотри на картинку внимательно:
|
|-нулевая строка - заголовок,
|-первая строка - Kauai Dive Shope...
|-третья строка - Krik Enterprises....,
| |- а ее дочернией ветвью является виджет со вкладками (QTabWidget) в который помещено еще, себе подобное, дерево
здесь я "нарисовал" дерево только для наглядности.
Автор: kuler 2.2.2009, 11:42
а у QTreeWidgetItem нет чтоли свойства widget? нужно через QTreeWidget узнавать вставлен ли виджет?
сделал вот так, фигня какаято
void TestProject::on_treeWidget_itemExpanded(QTreeWidgetItem* item)
{
if (!item->treeWidget()->itemWidget(item, 1))
item->treeWidget()->setItemWidget(item, 1, new QTableWidget(5, 5));
}
что нужно добавить?
Автор: kuler 2.2.2009, 14:34
при попытке такого кода тоже ничего хорошего не получается:
if (!item->treeWidget()->itemWidget(item, 1))
{
QTreeWidget* tree = new QTreeWidget();
QTreeWidgetItem* item2 = new QTreeWidgetItem();
item2->setText(0, "abc");
tree->insertTopLevelItem(0, item2);
item->treeWidget()->setItemWidget(item, 0, tree);
}
Автор: Litkevich Yuriy 2.2.2009, 14:52
Цитата(kuler @ 2.2.2009, 14:42)
if (!item->treeWidget()->itemWidget(item, 1))
а у тебя в элементе (item) уже помещено еще одно дерево?
Автор: kuler 2.2.2009, 15:19
Цитата(Litkevich Yuriy @ 2.2.2009, 14:52)
а у тебя в элементе (item) уже помещено еще одно дерево?
нет, это как раз типа и есть проверка чтобы вставлять один раз
Автор: Litkevich Yuriy 2.2.2009, 20:11
kuler, а что у тебя получается?
Автор: kuler 3.2.2009, 10:42
вот такое
код
void TestProject::on_treeWidget_itemExpanded(QTreeWidgetItem* item)
{
if (!item->treeWidget()->itemWidget(item, 1))
{
QTreeWidget* tree = new QTreeWidget();
QTreeWidgetItem* item2 = new QTreeWidgetItem();
item2->setText(0, "abc");
tree->insertTopLevelItem(0, item2);
item->treeWidget()->setItemWidget(item, 0, tree);
}
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)