v
vlaaad2014 января 2020 г. 21:02

Использование FileDialog с Qt Quick Controls 2

filedialog, qml, qtquickcontrols

Всем привет. Я пишу desktop-приложение на C++ и QML, используя Qt Quick Controls 2. В этом приложении мне необходим FileDialog для открытия и сохранения файла. Проблема в том, что FileDialog в сочетании с Qt Quick Controls 2 работает очень плохо (скрин прикладываю).
FileDialog с Qt Quick Controls 2

Начал разбираться с этой проблемой, создал тестовый проект, где в окне есть только Button (по нажатию на которую происходит вызов FileDialog) И TextField (в который записывается URL выбранного файла) и понял, что если поменять Qt Quick Controls 2 на Qt Quick Controls 1, FileDialog работает корректно.

FileDialog с Qt Quick Controls 1

По очевидным причинам я не хочу переписывать код и менять Qt Quick Controls 2 на устаревшие Qt Quick Controls 1. Возникает вопрос: Как быть? Можно ли как-то решить данную проблему?

Тестовый проект также прикладываю:
FileDialogQML.rar FileDialogQML.rar

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

7
t
  • 14 января 2020 г. 21:37
  • (ред.)
  • Ответ был помечен как решение.

Попробуй это:

import Qt.labs.platform 1.1 as Labs

Labs.FileDialog {
    ...
}

- может поможет: https://doc.qt.io/qt-5/qml-qt-labs-platform-filedialog.html

    Алексей Внуков
    • 14 января 2020 г. 21:47

    проверил, что на первых контролах чо на вторых - открывает одинаково. каждый раз делал пересборку
    Win 7x64 Qt 5.13

      v
      • 14 января 2020 г. 21:52

      Да, буквально 10 минут назад увидел статью на сайте Qt об отличии Qt Quick Controls 2 от Qt Quick Controls 1 и увидел, что "новый" FileDialog нужно искать в Qt.labs.platform. Зашел на форум и увидел твой ответ, который это подтвердил. Спасибо большое!)

        v
        • 15 января 2020 г. 0:34

        Удивительно, но после нескольких запусков, казалось бы решение - добавить Qt.labs.platform, тоже перестает работать! Появляются опять эти черные иконки...Это мистика! Меня смутило, что у Алексея Внукова https://evileg.com/ru/forum/topic/1213/#post-7010 все работало даже с Qt Quick Controls 1...Я решил обновить версию Qt с 5.13.2 на 5.14.0 и теперь все работает как часы! Причем, и с Qt Quick Controls 1 и Qt.labs.platform. Похоже, версия Qt 5.13.2 действительно очень косячная, ибо очень резко Qt выпустило обновление в виде Qt 5.14.0))

          t
          • 15 января 2020 г. 0:38

          А на 5.12.6 работает?

            v
            • 15 января 2020 г. 1:22
            • (ред.)

            Не пробовал)

              v
              • 15 января 2020 г. 1:24

              Не пробовал)

                Комментарии

                Только авторизованные пользователи могут публиковать комментарии.
                Пожалуйста, авторизуйтесь или зарегистрируйтесь
                Ua

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

                • Результат:84баллов,
                • Очки рейтинга4
                Ua

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

                • Результат:42баллов,
                • Очки рейтинга-8
                ОК

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

                • Результат:47баллов,
                • Очки рейтинга-6
                Последние комментарии
                ИМ
                Игорь Максимов22 ноября 2024 г. 21:51
                Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                Evgenii Legotckoi
                Evgenii Legotckoi31 октября 2024 г. 23:37
                Django - Урок 064. Как написать расширение для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                A
                ALO1ZE19 октября 2024 г. 17:19
                Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                ИМ
                Игорь Максимов5 октября 2024 г. 16:51
                Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                d
                dblas55 июля 2024 г. 20:02
                QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                Сейчас обсуждают на форуме
                f
                firstlunoxod15 февраля 2025 г. 13:46
                Рисование на QGraphicsScene при зажатой кнопке мыши Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
                Дмитрий
                Дмитрий3 февраля 2025 г. 16:24
                Создание deb-пакета. Как создать ярлык на рабочем столе после установки собственного deb-пакета? Всем привет. Сделал свой deb-пакет с программой. Всё устанавливается и работает. Ставлю по пути /usr/bin/my_application. Как для пользователя при установке пакета сразу создать ярлык на раб…
                NW
                Nayo Wai30 января 2025 г. 19:22
                не запускается компьютер!!! Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
                n
                nkly3 января 2025 г. 12:52
                Нужно запретить перемещение только некоторых итемов, остальные перемещать можно. Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
                M
                Marsel17 августа 2023 г. 0:26
                OAuth2.0 через VK, получение email Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.

                Следите за нами в социальных сетях