QML не загружает плагины модуля, файлы dll не загружаются, говорит, что недостаточно места для обработки команды - PullRequest
0 голосов
/ 09 апреля 2020

Я занимаюсь разработкой приложения, имеющего функции для выбора цвета темы приложения, для этого я хочу использовать QML ColorDialogue. Но это доставляет мне проблемы. Вот мой код для ColorDialogue

ColorDialog {
    id: colorDialog
    title: "Please choose a color"
    onAccepted: {
        console.log("You chose: " + colorDialog.color)     
    }
    onRejected: {
        console.log("Canceled")
    }
    Component.onCompleted: visible = true
}

И ошибка, которую я получаю,

QQmlApplicationEngine failed to load component
qrc:/main.qml:41 Type OptionBar unavailable
qrc:/OptionBar.qml:99 Type ColorDialog unavailable
file:///C:/Qt/5.12.6/mingw73_32/qml/QtQuick/Dialogs/DefaultDialogWrapper.qml:41 plugin cannot be loaded for module "QtQuick.Controls": Cannot load library C:\Qt\5.12.6\mingw73_32\qml\QtQuick\Controls\qtquickcontrolsplugind.dll: Not enough storage is available to process this command.

Поэтому я решил пойти на компромисс с ColorPicker и попытался использовать простой диалог с EditBox, но ту же ошибку она мне дала. Я пытался использовать тот же ColorDialogue в моем проекте QML Practice, и там он работал нормально. Я не могу понять, как можно решить эту проблему?

1 Ответ

1 голос
/ 09 апреля 2020

Библиотека отладки C:\Qt\5.12.6\mingw73_32\qml\QtQuick\Controls\qtquickcontrolsplugind.dll слишком велика, чтобы загружать ее одним куском в память. То же, что описано здесь https://bugreports.qt.io/browse/QTBUG-64551. Два вопроса для вас:

  1. Почему вы используете 32-битный MinGW, пока доступен 64-битный? Есть ли какие-то особые c требования для этого? Вы хотите, чтобы он работал на старых системах?
  2. Работает ли сборка Release? Из вашего вопроса ясно, что вы используете отладочную конфигурацию.

Вы уверены, что при отладке приложения достаточно памяти? В противном случае это похоже на ошибку.

...