Russian Qt Forum
Апрель 25, 2024, 09:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 8
1  Qt / Пользовательский интерфейс (GUI) / Re: QTreeView - сложные элементы и отдельный редактор : Ноябрь 08, 2020, 17:18
Понял, спасибо, тогда это то что нужно
2  Qt / Пользовательский интерфейс (GUI) / Re: QTreeView - сложные элементы и отдельный редактор : Ноябрь 08, 2020, 16:18
На сколько я знаю QTreeWidget не подразумевает изменение виджетов в итемах. А в моем примере виджет изменяется - меняются миниатюра, имя, значки, цвет и тд.
3  Qt / Пользовательский интерфейс (GUI) / Re: QTreeView - сложные элементы и отдельный редактор : Ноябрь 07, 2020, 19:36
ну вот да, отдельный виджет. А как его использовать в качестве элемента?
4  Qt / Пользовательский интерфейс (GUI) / QTreeView - сложные элементы и отдельный редактор [РЕШЕНО] : Ноябрь 04, 2020, 18:00
Почитал про QTreeView, почти во всех примерах используются простенькие итемы на одно текстовое поле с соответствующим редактором в делегате. А вот как реализовать несколько сложных делегатов с постоянным отображением подвиджетов и отдельным редактором для них - не понятно. Объясню подробнее, на примере слоёв в фотошопе:
Слои - https://ibb.co/LxKhLdZ
Редактор (открывается по дабблклику) - https://ibb.co/Vjs6Grf

То есть в понятиях Qt нужно сделать как минимум два делегата - итем, отображающий сам слой (с именем, икнокой блокировки, маской и тд) и итем, отображающий группу слоёв (иконка с папкой, стрелочка, имя и тд).
Как это сделать? Как запихать в один QTreeView два делегата? Или это как-то делается в одном делегате? Ну, например, создается нужный виджет в зависимости от роли?
Видел стандартный пример со звёздами, но там отрисовка была в переопределенном методе paint, но не рисовать же все виджеты вручную? Можно ли как-то установить готовый класс виджета для отображения? И отдельное окно для редактирования?

То есть в идеале хотелось бы чтоб итем отображал всё вышеперечисленное, а по двойному клику на надписи - редактировалась сама надпись (прямо на итеме), по двойному клику в другом месте - открывался полноценный редактор слоя.
5  Qt / Общие вопросы / Re: Конфликт локальной и глобальной библиотеки : Ноябрь 26, 2018, 13:31
Ааа, теперь понятно. Это вроде как в Qt Creator уже не изменить. Спасибо, разобрался)
6  Qt / Общие вопросы / Re: Конфликт локальной и глобальной библиотеки : Ноябрь 25, 2018, 21:09
Не совсем понял, в -I. находятся мои инклуды, так? А системные сами подключаются в самом конце? Но раз так, то зачем вообще нужны скобки и кавычки, если системные библиотеки в любом случае имеют самый низкий приоритет подключения?
7  Qt / Общие вопросы / Re: Конфликт локальной и глобальной библиотеки : Ноябрь 25, 2018, 20:14
Не знаю, как получить список путей в инклудпатх? time.h не нуждается в явном указании компилятору, т.к. является системной библиотекой. Но в любом случае, если она там есть, <time.h> должен брать именно ее, а не локальную. И даже если ее там нет, все равно должен брать системную.

Вот вывод консоли сборки:

g++ -c -fno-keep-inline-dllexport -O2 -std=gnu++11 -Wextra -Wall -W -fexceptions -mthreads -DUNICODE -D_UNICODE -I..\TimeCollision -I. -IC:\Qt\5.10.0\mingw53_32\mkspecs\win32-g++  -o release\main.o ..\TimeCollision\main.cpp
..\TimeCollision\main.cpp: In function 'int main()':
..\TimeCollision\main.cpp:12:26: error: 'clock' was not declared in this scope
  cout << "Time" << clock();
8  Qt / Общие вопросы / Re: Конфликт локальной и глобальной библиотеки : Ноябрь 25, 2018, 18:25
Если я ошибаюсь, то в чем разница между скобками и кавычками?

АФАИК "" сперва ищут в текущей фапке, а <> сразу в include_paths, но это не точно.

Вот да, а тут получается, что <> берет сразу из текущей папки. Не порядок)
9  Qt / Общие вопросы / Re: Конфликт локальной и глобальной библиотеки : Ноябрь 25, 2018, 16:28
Сделал минимальный проект с демонстрацией
10  Qt / Общие вопросы / Re: Конфликт локальной и глобальной библиотеки : Ноябрь 25, 2018, 16:16
Под глобальной областью я подразумеваю системные библиотеки, которые идут вместе с компилятором и пути к которым не требуется явно указывать при компиляции. time.h - одна из них. Сейчас проверил - так оно и есть. По идеи должно работать так:
#include <time.h> - подключается системная библиотека
#include "time.h" - подключается моя библиотека из проекта

Если я ошибаюсь, то в чем разница между скобками и кавычками?

https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
11  Qt / Общие вопросы / Re: Конфликт локальной и глобальной библиотеки : Ноябрь 25, 2018, 04:52
TIME_H меня сразу напрягает, pragma once ?

Нет, это не помогло. По сути pragma once никак не влияет на очередность поиска хедера для включения. Тут проблема именно в том, что #include <time.h> по какой то причине ссылается именно на мой (локальный) файл, вместо системного (глобального).
12  Qt / Общие вопросы / Конфликт локальной и глобальной библиотеки : Ноябрь 24, 2018, 18:46
Есть пустой widgets проект с собственным классом Time:
Код
C++ (Qt)
#ifndef TIME_H
#define TIME_H
 
#include <QElapsedTimer>
 
class Time
{
static QElapsedTimer timer;
static qint64 startTime;
static float _time;
static qint64 _frames;
static float _fps;
static float _delta;
static float _avrDelta;
 
public:
Time() = delete;
 
static void tic();
 
inline static qint64 frames() { return _frames; }
inline static float fps() { return _fps; }
inline static float time() { return _time; }
inline static float delta() { return _delta; }
inline static float avrDelta() { return _avrDelta; }
};
 
#endif // TIME_H
 

В Qt 5.10 получается конфликт библиотек, а именно в файле <ctime>, который есть в chrono, который есть в qobject.

в ctime подключается хедер #include <time.h>, который почему то ссылается на мой хедер time.h, хотя угловые скобки должны в первую очередь искать в глобальной области видимости. Как с этим бороться? Очевидно, можно переименовать свой класс или поместить хедер в подпапку, но хочется разобраться, ведь так быть не должно.
13  Qt / Мультимедиа / Re: Как посчитать общий вес всех QImage в массиве? : Июнь 29, 2018, 16:33
Да, действительно, спасибо, попробую.
14  Qt / Мультимедиа / Как посчитать общий вес всех QImage в массиве? : Июнь 29, 2018, 10:55
Не секрет, что QImage хранит свой массив пикселей в кэше отдельно от объекта. Таким образом, два одинаковых изображения могут занимать места как одно.
В общем, есть вектор изображений:
Код
C++ (Qt)
QVector<QImage> images;
Среди его элементов есть одинаковые изображения (с одним кэшем), например:
  • изображение 1
  • изображение 2
  • изображение 2
  • изображение 2
  • изображение 1
  • изображение 3
То есть шесть разных объектов, но по сути всего три изображения, то есть в кэше хранятся всего три картинки.
Вопрос: как посчитать реально занимаемый объем этого вектора? В мегабайтах.
15  Qt / Пользовательский интерфейс (GUI) / Re: Скрыть расширения файлов в фильтре QFileDialog : Февраль 09, 2018, 19:22
Код
C++ (Qt)
   QStringList fileNames = QFileDialog::getOpenFileNames(this, title,
      QString(),tr("Файл УФЭБС (*.dat *.xml);;Все файлы (*.*)"));
 
Не понял, а в чем отличие от моего варианта? То же самое - расширения не скрываются. Прикрепил скриншот и выделил то, что не нужно отображать.
Страниц: [1] 2 3 ... 8

Страница сгенерирована за 0.111 секунд. Запросов: 23.