Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Разъяснение QTreeWidget [QT] |
Автор: xAndeRx 3.3.2015, 23:43 |
Доброй ночи всем. У меня такая задача, построить дерево, из последовательности чисел. Закономерность разделения на узлах не важна, это на усмотрение. Меня интересует сейчас другое. Я новичок в плане QT, использую QT Creator. Нашел виджет TreeWidget, подходящий под мою задачу, но не могу разобраться как с ним справиться. То есть, как в него занести определенную последовательность чисел и разбить на узлы дерева. Подкиньте кто простенький пример, как занести в этот виджет данные и уже от этого я смогу отталкиваться, чтобы разобраться в этом. Буду очень благодарен. ![]() |
Автор: math64 4.3.2015, 09:19 |
Примеры есть в самом Qt. Поищите QTreeWidget в каталоге примеров. Еще можно в редакторе форм заполнить QTreeWidget своими данными, откомпилировать и посмотреть на код сгенрированный в ui_mainwindow.h. |
Автор: xAndeRx 4.3.2015, 19:02 | ||||
Создал через редактор, как вы посоветовали, понял что и к чему написано в коде ниже. Но тут же возник вопрос, как мне вручную прописывать это?(а не через редактор). То есть, чтобы была программа которая, после введения чисел раскидывала бы их в эти колонки? Мне же это нужно писать в MainWindow.cpp.
|
Автор: math64 5.3.2015, 08:37 |
При компиляции по mainform.ui, приведённому вами, генерируется ui_mainwindow.h . Встаньте на строчку #include "ui_mainwindow.h" в mainform.cpp и нажмите F2. Код, подобный сгенерированному, вам нужно создавать вручную. setupUi создает виджеты, retranslateUi создает строки с учетом возможности переключения языка, но не учитывает, что содержмиое treeWidget пожет поменяться при работе программы. Вам это деление делать необязательно, все можно сделать в конструкторе MainWindow. Русские буквы в генерированном коде будут заменены на такие - "\320\236\321\202\320\272\321\200\321\213\321\202\321\214" ("Открыть"), поэтому для исследования лучше вводить текст на английском. |
Автор: Amp 5.3.2015, 11:54 |
Можно же проще, в дизайнере выбрать "Форма" -> "Показать код" |
Автор: xAndeRx 5.3.2015, 23:43 | ||
Немного продвинулся и уже создал некое дерево из элементов. Выстроенных по правилу: 1)Вершина - минимальный элемент (и сортировка идет чем ниже дерево, тем больше значение элемента. 2)Потом деление на четные и нечетные 3)И все полученные цифры сгруппировать, если они одинаковые.(то есть, если есть три экземпляра числа "10" то 1-ое число сделать узлом и в его child остальные 2 засунуть. Так вот с 3-им пунктом проблемка... Не пойму как при встрече одинаковых элементов(у меня массив отсортирован, то есть все одинаковые идут подряд), запихнуть последующие в child первого. Мой вариант:
|