Просмотр сообщений
|
Страниц: 1 2 [3] 4 5 ... 8
|
33
|
Qt / Общие вопросы / Ошибки в сигналах-слотах [Решено]
|
: Июнь 04, 2017, 21:21
|
Все работало нормально пока не поменял компилятор mingw на msvc2015. Появилась куча разных ошибок во всех коннектах. Ошибки прикрепил скрином, коннекты самые обычные: C++ (Qt) connect(ui->resetBatton, &ClickableLabel::clicked, this, &reset); connect(ui->hueSlider, &QSlider::valueChanged, this, valueChanged); connect(labelWidget, &LabelWidget::valueChanged, &Engine::instance(), Engine::compute);
При этом коннекты на лямбды ошибок не вызывают: C++ (Qt) connect(ui->actionSave, &QAction::triggered, [this]() { saveImageAction(); });
|
|
|
34
|
Qt / Qt-инструментарий / Re: Помогите разобраться с компиляторами.
|
: Июнь 04, 2017, 21:09
|
Как оказалось параметры qmake были такими: -spec winrt-arm-msvc2015 При чем тут winrt и arm - не понятно. Я качал не UWP, а обычную сборку mscv2015. При чем там в списке сборок можно было выбрать следующие компиляторы: mscv2013 64 mscv2015 32 mscv2015 64 mscv2017 64 Очень странный выбор. Где mscv2013 32? Где mscv2017 32? Почему mscv2015 32 и mscv2015 64 имеют армовый qmake? В сборке 5.8 таких косяков не было - там все четко: mscv2013 32 mscv2013 64 mscv2015 32 mscv2015 64 с нормально настроенными qmake-ами Это я что-то не понимаю или косяк тех, кто все эти билды выкатывал?
|
|
|
36
|
Qt / Qt-инструментарий / Помогите разобраться с компиляторами.
|
: Июнь 04, 2017, 08:50
|
Скачал Qt 5.9 сборки MSVC2015 32 и 64 бита. Пустой проект компилируется с ошибкой: :-1: предупреждение: «C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe» используется qmake, но «C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe» задан в комплекте. Обновите комплект или выберите подходящей для вашей целевой платформы mkspec для qmake. Захожу в настройки комплектов, а там черти что (прикрепил скриншот). Что из этого что, какой компилятор нужный (64бита), как настроить?
|
|
|
37
|
Qt / Пользовательский интерфейс (GUI) / И снова DPI. Поддержка масштабирования интерфейса
|
: Май 31, 2017, 16:07
|
Пробовал использовать QT_DEVICE_PIXEL_RATIO со значением auto - не работает на windows 10 (на ХР норм). Пробовал QApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true) - работает плохо. Во-первых, если увеличение в системе стоит 125%, то интерфейс не масштабируется. Если 150% - то масштабируется в два раза. То есть окно может пребывать только в двух состояниях - либо х1, либо х2. Во-вторых, эта фича появилась в Qt 5.6, а начиная с этой версии на некоторых компьютерах в редких случаях возникает баг: https://bugreports.qt.io/browse/QTBUG-56367его не исправили вплоть до Qt 5.8 (5.9 только сегодня релизнулся, еще не смотрел - нет проблемного пк). Этот баг проявляется много где (гуи драйвера видеокарты, calibre) и много у кого, в т.ч. и у меня. Поэтому я использую стабильную Qt 5.5.1 Пробовал вручную ставить QT_SCALE_FACTOR - работает идеально, то, что нужно. Но для того, чтобы узнать какое значение ставить, нужно запросить devicePixelRatio, а это можно сделать только после инициализации QApplication, но QT_SCALE_FACTOR нужно ставить до инициализации QApplication... Короче вопрос: как узнать devicePixelRatio (то, что выставляет пользователь в настройках винды - 100%, 125% и пр) до инициализации QApplication? Ну либо подскажите как еще можно скейлить гуи
|
|
|
41
|
Qt / Общие вопросы / QPainter рисует текст в полосочку (OpenGL) [Решено]
|
: Май 15, 2017, 17:57
|
Рисую текст на QOpenGLWidget, в методе paintGL через QPainter: C++ (Qt) QPainter p(this); QFont font(sfont); font.setPixelSize(size); p.setPen(QColor::fromRgb(r, g, b)); p.setFont(font); p.resetTransform(); p.translate(pos); p.rotate(angle); p.drawText(rect, text); p.end();
Все переменные я переименовал для упрощения, гарантируется, что у них адекватные тип и значения. На всех ПК текст выглядит нормально, и только на одном (видеокарта GeForce GT 630) отображается в полосочку (скриншот). В чем может быть проблема?
|
|
|
45
|
Qt / Установка, сборка, отладка, тестирование / Re: Грузит не ту DLL
|
: Декабрь 14, 2016, 17:03
|
Короче я просто переименовал libstdc++-6.dll в libstdc++-X.dll и заменил все ее упоминания во всех своих зависимых длл. Очень грязный хак, но как быстрое временное решение пока сойдет.
Всем большое спасибо за помощь. Вот уж точно dll hell :c
|
|
|
Страниц: 1 2 [3] 4 5 ... 8
|
|
|