Название: QTreeWidget Отправлено: carhun от Май 13, 2012, 22:52 Добрый день.
Возник такой вопрос, как лучше реализовать такого рода интерфейс. ( см. приложенный файлик, да, он фиговый, но лучше я нарисовать не смогу=) ). Соотв., как я делаю сейчас: 1. Создаю QTreeWidget 2. Создаю для QTreeWidget QTreeWidgetItem с названием графика 3. Создаю child() для QTreeWidgetItem в к-ый я запихиваю QwtPlot. Все было бы хорошо, но оно как не красиво получается, хотелось бы так как я "нарисовал" на картинке, но тогда возникает пару проблем/вопросов: 1. как сделать, что бы постоянно появляляся слева треуголльничек и на него можно было нажимать и соотв. от этого появлялся или исчезал график? 2. почему когда я создал QTreeWidget с 2мя столбцами и делаю что-то на подобие этого, то получаю что QwtPlot не растягивается автоматически: Код: QTreeWidgetItem *top = new QTreeWidgetItem(); Еще приложу картинки, как у меня получается сейчас, что бы было яснее по поводу моих комменатриев, что я хочу... И еще вопрос общего характера. Что делать, если намечается такого рода кода, какой написан выше достаточно много... Т.е. будет много подобного кода, где будет создаваться практически одинаковые QTreeWidgetItem. Собственно, как с этим бороться? Спасибо за внимание и надеюсь, что вы сможете мне что-то подсказать по этому поводу. Название: Re: QTreeWidget Отправлено: carhun от Май 15, 2012, 14:44 Добрый день!
Не большое добовление, я не уверен, что мне надо конктерно QTreeWidet... Так что если подобного рода виждет делается как-то по другому, то подскажите как.. Или что бы получить такой интерфейс может надо вообще с нуля создавать такой виджет? Спасибо за внимание. Название: Re: QTreeWidget Отправлено: V1KT0P от Май 15, 2012, 15:47 Либо через делегаты, либо если через делегаты не удается создать нужную вещь, то с нуля тоже делается просто.
Название: Re: QTreeWidget Отправлено: carhun от Май 16, 2012, 10:53 А не подскажите как отловить нажатие на треугольничек? Ну, или как это делает Qt, что когда я нажимаю на треугольник, он открывает все чайлды? Когда я нажимаю 2й раз на треугольник, то тогда генерируется сингал itemCollapsed, а как отловить когда нажимается первый раз?
И можете дать какой-то туториал по тому как создать с нуля свои виджеты? Название: Re: QTreeWidget Отправлено: kambala от Май 16, 2012, 11:03 А не подскажите как отловить нажатие на треугольничек? Ну, или как это делает Qt, что когда я нажимаю на треугольник, он открывает все чайлды? Когда я нажимаю 2й раз на треугольник, то тогда генерируется сингал itemCollapsed, а как отловить когда нажимается первый раз? ну как так можно читать справку?!Цитировать void QTreeWidget::itemCollapsed ( QTreeWidgetItem * item ) [signal] This signal is emitted when the specified item is collapsed so that none of its children are displayed. Note: This signal will not be emitted if an item changes its state when collapseAll() is invoked. See also QTreeWidgetItem::isExpanded(), itemExpanded(), and collapseItem(). Название: Re: QTreeWidget Отправлено: carhun от Май 16, 2012, 12:01 Видимо я плохо читал справу, но я до отправки сообщения на форум попробывал отловить вообще все синалы след. образом:
Код: #ifndef GRAPHICWIDGET_H Код: #include "graphicwidget.h" И как результат при нажатии на треугольник вызывается только: Код: void GraphicWidget::itemCollapsed(QTreeWidgetItem *item) Вызывается естственно на 2е нажатие на треугольник... Соотвественно, вопрос, что я делаю не так тогда? Название: Re: QTreeWidget Отправлено: kambala от Май 16, 2012, 12:03 ну и где у тебя коннект для itemExpanded()?
Название: Re: QTreeWidget Отправлено: carhun от Май 16, 2012, 12:14 Блин...
Спасибо всем, на данный момент мне все понятно. Тему можно закрывать. |