B
Наурыз 28, 2017, 3:43 Т.Қ.

Добавление иконки для узла дерева

Здравствуйте, я новичок в программировании на Qt и возник такой вопрос. Как импортировать иконки в узел дерева. Что для этого лучше применять? Необходимые форматы ico, bmp,png,svg. Спасибо

2

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

3
Evgenii Legotckoi
  • Наурыз 28, 2017, 5:09 Т.Қ.

Добрый день.
Какого именно дерева? Что конкретно подразумевали под этим? Например, отображение папок (каталогов) в древовидном стиле?

Обычно изображения для интерфейса хранятся в ресурсных файлах. Например, в следующей статье есть вариант с хранением изображений курсоров в ресурсном файле и загрузкой их для изменения внешнего вида курсора мыши.

Что касается "дерева", то конкретизируйте это дерево.

ico и bmp - использовать не стоит. ico - это для Windows и то для иконки приложения только. BMP использовать - это вообще уже моветон, забудьте. А вот png или svg - очень даже хорошо подходят.

    B
    • Наурыз 28, 2017, 9:54 Т.Қ.

    Да, я подразумевал что-то наподобие отображения папок в дереве, ну а точнее простого списка в древовидном стиле, к элементам которого нужно добавить функцию импортирования картинки.

      Evgenii Legotckoi
      • Наурыз 28, 2017, 10:48 Т.Қ.
      • Жауап шешім ретінде белгіленді.

      Вообще, для подобного можно использовать QTreeWidget и QTreeWidgetItem . Можете в графическом дизайнере кинуть в окно QTreeWidget, а в конструкторе класса окна заполнить его нужными элементами.

      QList<QTreeWidgetItem *> items;
      for (int i = 0; i < 10; ++i)
      {
          QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget, QStringList(QString("item: %1").arg(i)));
          item->setIcon(0, QIcon(":/EVILEG.jpg"));  // Это файл с иконкой с ресурсного файла.
          item->addChild(new QTreeWidgetItem(item, QStringList(QString("Child widget"))));
          items.append(item);
      }
      ui->treeWidget->insertTopLevelItems(0, items);

      Во вложении скриншот того, как отрабатывает этот код.

        Пікірлер

        Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
        Кіріңіз немесе Тіркеліңіз