Просмотр сообщений
|
Страниц: [1]
|
1
|
Qt / Пользовательский интерфейс (GUI) / Re: Разные цвета для QLabel'ов с помощью QStyle.
|
: Ноябрь 20, 2021, 01:57
|
Я не понял, почему вы отказались от использования стилей CSS. Вы можете управлять оформлением каждого элемента. А как их объединить в группы, зависит от задачи и вашей фантазии: C++ (Qt) label->setStyleSheet("QLabel {color: green; background: WhiteSmoke;}"); label_2->setStyleSheet("QLabel {color: #0000FF; background: #9ACD32;}"); Не то, чтобы я совсем отказался, но тогда абсолютно для всех классов, в которых расположены виджеты нужно писать функцию изменения shyleSheet'а, и по сигналу виджета, который отвечает за изменение (например комбобокс со стилями), вызывать некоторую функцию, которая каскадно меняет стиль всего приложения, вызывая подобные функции у детей главного окна, которые, в свою очередь, делают тоже самое, и так вплоть до отдельных элементов. Это нормально до тех пор, пока вдруг не появится необходимость "немного переписать" цвета какого-то из стилей, или добавить новый стиль, ведь в этом случае придётся ползать по всем файлам, чтобы это осуществить. Я не отвергаю ни один из вариантов, а пытаюсь определить оптимальный путь решения.
|
|
|
2
|
Qt / Пользовательский интерфейс (GUI) / Разные цвета для QLabel'ов с помощью QStyle.
|
: Ноябрь 18, 2021, 23:07
|
Создаю графический интерфейс по готовому дизайну, есть необходимость, чтобы были ночная и дневная темы. Внешний вид большинства виджетов разительно отличается от стандартного Кьютишного, но главное, используются разные цвета для Label'ов. Если бы не было необходимости менять тему, то можно было бы ограничиться переписыванием paintEvent'ов, либо просто CSS использовать. Проблема в том, что в этом случае придётся в каждый виджет кидать какой-то сигнал об изменении стиля (напомню, что виджеты нестандартные и в разных местах могут выглядеть по разному, так что просто применить общую таблицу ко всему приложению не катит).
Исходя из этого, решил пойти путём создание своих 2-х стилей, которые будут отличаться только палитрой. Но тут встаёт проблема, у QLabel есть только одна роль для невыделенного текста, а именно WindowText. То есть я не могу таким образом задать разные цвета. У меня напрашивается только один вариант, это создавать для каждого цвета подкласс QLabel, и уже для них отдельно писать polish(QWidget *), ну а drawComplex у них обычный будет.
Может кто-нибудь сталкивался с такой задачей? Есть другие способы?
|
|
|
3
|
Qt / Вопросы новичков / Re: Точка входа в процедуру не найдена... /qwt.dll
|
: Март 19, 2021, 16:12
|
Короче проблема есть, системы одинаковые, я уже попробовал поставить на другой компьютер Qt и Qwt. Всё так же - проект, собранный на другом компьютере там работает, а скинутый с меня - нет. Пробовал запустить программу, в которой не использую Qwt, нормально работает на любом компе. Пошёл на stack, мб там что скажут.
|
|
|
5
|
Qt / Вопросы новичков / Re: Точка входа в процедуру не найдена... /qwt.dll
|
: Март 17, 2021, 22:18
|
скорее всего перепутаны mingw/msvc библиотеки
До этого у себя на компе использовал только qwt, скомпилированный для MSVS, проект также компилировал им. После того, как всплыла данная проблема, я попробовал всё сделать на MinGW: пересобрал библиотеку qwt, указал компилятору MinGW в Creator'е пути именно к dll-кам, которые собрал с помощью MinGW, собрал проект. Всё тоже самое - у меня на компе всё работает, а на других машинах ругается на qwt.dll. Ещё интересный момент, когда кидаю папку с программой на другой комп (со всеми библиотеками, которые подгрузил windeployqt + 2 библиотеки qwt), первым делом система ругается на отсутствие Qt5Core.dll, даже при том, что на компе есть Qt той же версии, что и у меня. Копирую эту либу - больше на её отсутствие не ругается, но меня смущает то, что у меня на компе эта либа в папке с exe не требуется и windeploy её не подгружает.
|
|
|
6
|
Qt / Вопросы новичков / Точка входа в процедуру не найдена... /qwt.dll
|
: Март 16, 2021, 18:41
|
Использую в проекте библиотеку qwt. Пока запускал проект на своей машине, всё было нормально, но как только решил запустить программу на другой, то вылезла ошибка "Точка входа в процедуру не найдена в библиотеке DLL... ". Короче ругается на qwt.dll. Он в папке с exe-шником есть.
|
|
|
10
|
Qt / Вопросы новичков / Сборка Qwt для 64-битной системы
|
: Сентябрь 01, 2020, 09:29
|
Здравствуйте! Пытаюсь собрать Qwt-6.1.4 под Qt 5.9.9. У меня 64-битная система пользуюсь MSVC 2019. До этого пробовал собрать Qwt с помощью встроенного в Qt MinGW32 всё получилось нормально, но модуль требует, чтобы я использовал при его сборке тот же компилятор, каким пользуюсь в работе, поэтому решил пересобрать под 64-бит, однако clang и nmake выдают ошибку. Прикрепляю вывод сборки. Подскажите, что делаю не так.
|
|
|
|
|