Реклама

Тег → qt

  • Cobra91151
  • Вопрос
  • 7 октября 2017 г. 16:28

Проблема при подключении к WiFi сетям

c++, qt, windows-application

Здравствуйте! Проблема в том что при реестрации соединения нужно выслать сигнал со статической функции.

Код:

WirelessConnect.h
static void WINAPI notificationCallBack(PWLAN_NOTIFICATION_DATA wlanData, PVOID context);
WirelessConnect.cpp DWORD dwResult = 0; dwResult = WlanRegisterNotification(hClient, WLAN_NOTIFICATION_SOURCE_ALL, TRUE, notificationCallBack, NULL, NULL, &dwPrevNotif); void WINAPI WirelessConnect::notificationCallBack(PWLAN_NOTIFICATION_DATA wlanData, PVOID context) { context = NULL; switch (wlanData->NotificationCode) { case wlan_notification_acm_connection_complete: emit apConnectionComplete(); qDebug() << "Connected!"; break; case wlan_notification_acm_connection_attempt_fail: emit apConnectionFailed(); qDebug() << "Failed!"; break; default: break; } } Test.cpp: WirelessConnect *wirelessAPConnect = new WirelessConnect(); connect(wirelessAPConnect, &WirelessConnect::apConnectionComplete, setAPConnection); connect(wirelessAPConnect, &WirelessConnect::apConnectionFailed, setAPConnectionFailed);

Ошибка: error: C2355: 'this': can only be referenced inside non-static member functions or non-static data member initializers.

Делал по другому:

dwResult = WlanRegisterNotification(hClient, WLAN_NOTIFICATION_SOURCE_ALL, TRUE, notificationCallBack, this, NULL, &dwPrevNotif);

void WINAPI WirelessConnect::notificationCallBack(PWLAN_NOTIFICATION_DATA wlanData, PVOID context)
{
    WirelessConnect *pThis = (WirelessConnect*)context;
    switch (wlanData->NotificationCode) {
        case wlan_notification_acm_connection_complete:
            pThis->apConnectionComplete();
        break;

        case wlan_notification_acm_connection_attempt_fail:
            pThis->apConnectionFailed();
        break;

        default:
            break;
    }
}

WLAN_CONNECTION_PARAMETERS connectionParameters;
connectionParameters.wlanConnectionMode = wlan_connection_mode_profile;
connectionParameters.strProfile = apName.toStdWString().c_str();
connectionParameters.dwFlags = 0;
connectionParameters.pDot11Ssid = NULL;
connectionParameters.pDesiredBssidList = 0;
connectionParameters.dot11BssType = dot11_BSS_type_any;
dwResult = WlanConnect(hClient, &pIfInfo->InterfaceGuid, &connectionParameters, NULL);

Сигнал передается но получается что идет или сбой программы позже или пишет что отключено сразу после подключения. Не могу точно проверить через Debugger где получается сбой, так как функция WlanConnect при подключении до сети возращает код 87 (неверный параметр) только в режиме Debug, в режиме Release все работает. Как думаете в чем может быть проблема и как это исправить? Спасибо.
  • Troffe
  • Вопрос
  • 12 сентября 2017 г. 19:42

Title bar

qml, qt, c++

Можно ли в QtQuick убрать\изменить  системный title bar? Если да можно пример пожалуйста.

  • Cobra91151
  • Вопрос
  • 8 сентября 2017 г. 13:04

Проблема при компиляции WebKit для Qt 5.7.1

qt, webkit, qt 5.7.1

Здравствуйте! Я хочу скомпилировать WebKit модуль для Qt 5.7.1 . Проблема:


ICU is required
Скриншот:
https://i.stack.imgur.com/Pc3JT.png

Пробовал настроить Qt - configure -icu ( http://doc.qt.io/qt-5/windows-requirements.html#icu )

Но за некоторое время компиляции - ошибки:

https://ddgobkiprc33d.cloudfront.net/fc8670e3-a3f2-4a4b-872a-759f91cc15a6.png

Как исправить это? Спасибо.

QTableView connected with QSqlTableModel flickers (scrolls to the bottom and returns)

qt, qsql, QSqlDataBase, QSqlTableModel, QTableView

Hello guys I have a problem using table view. I have a tableview connected with a QSqlTableModel. On its 2nd column I want to have check state to control the row's Status (active/inactive) but when I try to push the check box QTableView scrolls to the bottom and returns to it's previous position. Is there any solution?

    bool ProjectsModel::setData(const QModelIndex &index, const QVariant &value, int role)
    {
        if(index.column() == STATUS_INDEX) {
            QSqlRecord rec = this->record(index.row());
            QString qrstr;
     
            qrstr = (rec.field(index.column()).value().toInt() == 1) ? "update " + tableName() + " set Status=0 where BRACE_ID=" : "update " + tableName() + " set Status=1 where BRACE_ID=";
            qrstr += QString().setNum(index.row()+1);
     
            braceDatabase->exec(qrstr.toUtf8().constData());
            return true;
        }
     
        return false;
    }
     
    void DataBase::updateTablesSlot()
    {
        if(projectsModel)
            projectsModel->select();
        if(attributesModel)
            attributesModel->select();
        if(targetsModel)
            targetsModel->select();
    }
     
    void DataBase::exec(const std::string &querystr)
    {
    		QSqlQuery qr(db);
            qr.exec(querystr.c_str());
            //qDebug() <<"Command :" << querystr.c_str() << "-> "<< query->lastError().text();
            updateTables(); 
    }
  • 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));
// }
Скриншот: Спасибо заранее.
Реклама
  • MinusNol
  • 18 октября 2017 г. 16:09

C++ - Тест 003. Условия и циклы

  • Результат - 85 баллов
  • MinusNol
  • 18 октября 2017 г. 15:41

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

  • Результат - 58 баллов
  • loctyr
  • 18 октября 2017 г. 10:25

Qt - Тест 001. Сигналы и слоты

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

QML - Урок 031. Отключаем системное обрамление окна в QML и пишем код для обработки перемещения и ресайза окна

Задать свои property в окне и проверять их в методах изменения размера для topArea, bottomArea, rightArea, leftArea. В обработчиках onMouseYChanged, onMouseXChanged. Из-за отключен...

  • Troffe
  • 18 октября 2017 г. 14:35

QML - Урок 031. Отключаем системное обрамление окна в QML и пишем код для обработки перемещения и ресайза окна

После отключения системного обрамления не работают minimumHeight и minimumWidth. Что делать?

  • cordsac
  • 17 октября 2017 г. 15:29

Qt/C++ - Урок 045. SvgReader на Qt. Восстановление данных из файла SVG в QGraphicsScene

Sir I post is as a topic,please help me to solve this problem

  • EVILEG
  • 17 октября 2017 г. 11:44

Qt/C++ - Урок 045. SvgReader на Qt. Восстановление данных из файла SVG в QGraphicsScene

I think You have another version of SVG file. First, need to see content of SVG file. It is simple XML-format, therefore just need to research content. Do You want just open SVG file or ...

  • cordsac
  • 17 октября 2017 г. 2:09

Qt/C++ - Урок 045. SvgReader на Qt. Восстановление данных из файла SVG в QGraphicsScene

Sir,I tried your code for open ellipse item.but my program not open ellipse item.what should I need to do? here is my code : readsvg.cpp QL...

Сейчас обсуждают на форуме
  • cordsac
  • 17 октября 2017 г. 19:28

How can I open SVG file through QT

Okay,Thank you sir :)

  • EVILEG
  • 16 октября 2017 г. 20:34

Qt, Загрузка изображения в QImage

Сам view нужно поместить в внутри окна, а не просто создать его. Можете создать в графическом редакторе Qt Creator`а окно, набросать там QGraphicsView и потом посмотреть в сгенерированном...

  • mihenze
  • 15 октября 2017 г. 21:30

Рисуем линию QGraphicsItem за мышью

Большое спасибо!

  • EVILEG
  • 15 октября 2017 г. 18:58

Описание класса С++ в QtCreator

Для начала добавьте недостающие методы и участники для Q_PROPERTY. Для этого вызовите контекстное меню через ПКМ у Q_PROPERTY, там будет пункт "добавить недостающие члены". Автоматически...

  • EVILEG
  • 15 октября 2017 г. 15:34

Qt+Google Drive

Добрый день! Как-то не занимался этим, поэтому такого примера у меня нет в загашниках.