Реклама

Тег → qt

  • Dmitras
  • Статья
  • 12 августа 2017 г. 0:58

Использование возможностей winExtras при работе с QML

winextras, qt, qml, TaskbarButton, ThumbnailToolBar, JumpList

Некоторое время назад я написал несколько статей об использовании библиотеки QtWinExtras, которая открывает доступ к специальным возможностям, доступным только для ОС Windows. Теперь хочется сказать пару слов о том, как повторить тоже c использованием QML.  Для этого нам понадобится создать проект Qt Quick, подключить в проекте модуль winextras

import QtWinExtras 1.0

и использовать 3 объекта: TaskbarButton для создания строкой прогресса и управления ей, ThumbnailToolBar для работы кнопками на всплывающем окне панели задач и JumpList (для работы с jumpList). Также добавим FileDialog для полноценной работы jumpList.

  • GUVadim
  • Вопрос
  • 21 июля 2017 г. 12:54

Обрезка участка изображения с сохранением пропорций

crop image qt aspect ration

В общем буду краток и просто посмотрите --> видео .
Уже голову сломал думая как выделить участок с определением координат и сохранение пропорций.

  • Dmitras
  • Статья
  • 6 июля 2017 г. 22:22

Использование gif-анимации в Qt с помощью класса QMovie

qt, qmovie, gif, анимация, gif-анимация

Все видели в интернете красивые анимированные изображения. Их можно скачать на свой компьютер качестве файла с расширением gif. Возникает вопрос — можно ли использовать разместить эти картинки в своих программах? Можно, отвечает библиотека Qt. Рассмотрим, как это сделать.

Создаём новый проект типа Qt widgets. Добавляем объект класса QMovie для воспроизведения анимации. На форме размещаем объект класса QLabel. В конструкторе приложения указываем имя файла для объекта, воспроизводящего анимацию:

mo.setFileName(":/ico/loader.gif");

Передаём указатель на этот объект в lable:

ui->label->setMovie(&mo);

Запускаем воспроизведение анимации:

mo.start();
  • tetta
  • Вопрос
  • 1 июня 2017 г. 17:29

Ошибка в QFileDialog

qt creator

*Я уже создавал этот вопрос, но не смог его почему-то найти, так что вот новый. Вот эта ошибка, может она быть из-за того что ищет decstop на англ. , а у меня на русском? И вторая версия: может быть эта ошибка из-за того, что у меня не открыто от имени администратора? И возможно решение: можно ли изменить место, где искать файл в коде?

  • tetta
  • Вопрос
  • 1 июня 2017 г. 2:45

Проверка активировано ли окно

qt

Как сделать так, что когда одно окно открыто, то я не могу нажать на определенную кнопку?

Проблема с получением данных об установленных программах

с++, qt, windows-application

Здравствуйте! Я хочу получить данные программ через реестр, проблема в том что у меня находит 900 записей, а если проверить через Панель Управления (Установка и удаление программ) то только 213. Я пробовал получать данные через

QSettings
и также через Win API. Я хочу записать эти данные в
QTreeWidgetItem (QTreeWidget)
Вывести нужно списком - иконку/название/версию/разработчика/путь установки и удаления программ Код Qt
QStringList allLocalMachineX86Keys;
QString displayIcon;
QString iconFile;
QIcon programIcon;
QStringList displayIconSplitted;
QString iconSplittedData;
QFileIconProvider fileIconProvider;
QString displayName;

QSettings registryKeyLocalMachineX86("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", QSettings::NativeFormat);
allLocalMachineX86Keys = registryKeyLocalMachineX86.allKeys();

for (QString key : allLocalMachineX86Keys) {
    if (!key.isEmpty()) {
        if (key.contains("DisplayIcon")) {
            displayIcon = registryKeyLocalMachineX86.value(key).toString();

            if (displayIcon.contains("\"")) {
                displayIconSplitted = displayIcon.split("\"");
                iconSplittedData = displayIconSplitted.value(displayIconSplitted.length() - 2);
                iconFile = iconSplittedData;
            } else if (displayIcon.contains(",")) {
                displayIconSplitted = displayIcon.split(",");
                iconSplittedData = displayIconSplitted.value(displayIconSplitted.length() - 2);
                iconFile = iconSplittedData;
            } else {
                iconFile = displayIcon;
            }

            if (iconFile.contains(".ico")) {
                programIcon = QIcon(iconFile);
            } else {
                QFileInfo fileInfo(iconFile);
                programIcon = fileIconProvider.icon(fileInfo);
            }
        } else {
            programIcon = QtWin::fromHICON(LoadIcon(NULL, IDI_APPLICATION));
        }

        if (key.contains("DisplayName") && registryKeyLocalMachineX86.value(key).toString() != "") {
            displayName = registryKeyLocalMachineX86.value(key).toString();
            emit appData(programIcon, displayName);
        }
    }
}
Если закоментировать этот код, тогда некоторые иконки программ или пустые или не от той программы:
// } else {
//     programIcon = QtWin::fromHICON(LoadIcon(NULL, IDI_APPLICATION));
// }
Скриншот: Спасибо заранее.

Проблема с получением значков для приложений

qt, c++, windows-application

Здравствуйте! Я хочу получить значки для всех установленных приложений (с помощью реестра) в Windows. Проблема в: QObject :: connect: не удается поставить в очередь аргументы типа 'QList ' (Убедитесь, что «QList » зарегистрирован с помощью qRegisterMetaType ().) Я подключаю данные из класса Worker QThread *programsThread = new QThread(); Worker *programsWorker = new Worker(); programsWorker->moveToThread(programsThread); connect(programsWorker, &Worker::appData, this, &Test::setAppData); QList programIcons; emit appData(programIcons, displayNames, displayVersions, publishers, installLocation, uninstallLocations); в `Test` классе записую данные в `QTreeWidgetItem` (`QTreeWidget`) void setAppData(QList icons, QStringList names, QStringList versions, QStringList publishers, QString installLocation, QStringList uninstallLocations); Как это исправить? Заранее спасибо.

  • tetta
  • Вопрос
  • 29 мая 2017 г. 18:09

Соединение двух разных окон

qt

Как это сделать? Сверху, слева где хочу применить(там отдельные окна, реализованные в разных файлах, но первый(там где меню) вызывает второго), справа, снизу пример.

  • tetta
  • Вопрос
  • 21 мая 2017 г. 23:21

Появление и рисование

qt, paintWidget

Как разрисововать отдельные части виджета? И как сделать так, что бы когда я наводил область, там появлялась кнопка или какоето свечение? И еще, можно ли сделать отдельные прозрачные области?

  • tetta
  • Вопрос
  • 19 мая 2017 г. 20:59

Кнопка ОК и mdi

qt, mdi

Как сделать так, что бы при нажатие на кнопку "ОК", открывался mdiarea ?

Реклама
  • BoostEX
  • 17 августа 2017 г. 16:45

C++ - Тест 001. Первая программа и типы данных

  • Результат - 73 баллов
  • Nordman
  • 15 августа 2017 г. 20:40

C++ - Тест 005. Структуры и Классы

  • Результат - 66 баллов

C++ - Тест 002. Константы

  • Результат - 33 баллов
Последние комментарии
  • EVILEG
  • 17 августа 2017 г. 18:33

Qt/C++ - Урок 069. Шифрование методом XOR

Не обратил внимания на это, Проверял с большим текстом.. По идее не должно.

Qt/C++ - Урок 069. Шифрование методом XOR

Шифрует/дешифрует текст от 8 символов, так и должно быть?

  • EVILEG
  • 15 августа 2017 г. 20:32

Qt/C++ - Урок 048. QThread - работа с потоками с помощью moveToThread

Нууу... тут уже вопрос к самому Qt4.8. Если честно, идей нет, да и копаться в deprecated коде желания тоже нет.

  • t000r
  • 15 августа 2017 г. 19:49

Qt/C++ - Урок 048. QThread - работа с потоками с помощью moveToThread

В qt5.6 всё нормально заработало. С 4.8 - нет

  • EVILEG
  • 15 августа 2017 г. 17:44

Qt/C++ - Урок 050. Логирование событий Qt приложения в текстовый файл

Я полистал информацию в интернетах, вроде как кто-то пытается подружить его с Qt5, но успешных результатов не нашёл. Да и на сайте как-то не заметно информации о том, что конкретно ему нужно, ...

Сейчас обсуждают на форуме

Сборка Qt / C++ проекта под windows и linux

вы имели ввиду это? если да, то как то не работает((( #include <iostream>#include <bitset> // заголовочный файл битовых полей#include <iomanip> // для манип...

  • alex_lip
  • 17 августа 2017 г. 19:11

Я только учусь..(как правильно присвоить значение объекту другого класса)

А что вы думаете про директиву friend ? class A { friend void B::changeValue(); private: int _value;};class B { void changeValue() { a-&...

  • EVILEG
  • 16 августа 2017 г. 13:38

Перевод кодировки строки из windows 1251 в Utf-8

Здесь необходимо использовать QTextCodec. Вещь это очень хитрая в том плане, что объект этого класса необходимо создавать с определённой кодировкой. Поскольку он будет гонять данные от заданной код...

  • EVILEG
  • 15 августа 2017 г. 17:09

Переключение между Qt::WindowMaximized и Qt::WindowNoState при фиксированном размере окна.

Согласен - это велосипед, но это гораздо меньше, чем отключить оформление окна и написать своё оформление )) Например, как здесь .

  • EVILEG
  • 13 августа 2017 г. 13:51

SQLITE speed up

Заполняете в цикле из объекта query? Можете показать тот кусок кода, где выполняете эти манипуляции? Ускорить код разве только некоторым манипуляциями с указателями или ссылками, н...