Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на 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)