Russian Qt Forum
Ноябрь 25, 2024, 02:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вызвать функцию перед началом работы программы  (Прочитано 2001 раз)
kolik151
Гость
« : Ноябрь 16, 2015, 21:40 »

!приложение на qml
До того как программа начала работать, нужно скопировать файлы из ресурсов на пк, когда скопировано: продолжить работу программы и далее geodatabase по указанному пути уже находит уже скопированный на пк нужный ему файл.
Но как вызвать функцию, до того как appwindow загрузилось?

Цитировать
ApplicationWindow {
    id: appWindow
    //и т.д.
 
   function copylocaldata(){
        resourceFolder.makePath(output_path)
        resourceFolder.copyFile(":/Resources/I.geodatabase", output_path+"I.geodatabase")
   }
 
    FileFolder{
        id:resourceFolder
    }
 
    Geodatabase {
        id:gdb1
        path: output_path+"I.geodatabase"
    }
    //далее программа
}
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Ноябрь 16, 2015, 22:31 »

в main.cpp перед загрузкой QML файла
Код:
Здесь ваш код;
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
return app.exec();

Если C++ по каким-то причинам не хотите трогать, тогда
Код:
ApplicationWindow {
    id: appWindow
    //и т.д.
 
   function copylocaldata(){
        resourceFolder.makePath(output_path)
        resourceFolder.copyFile(":/Resources/I.geodatabase", output_path+"I.geodatabase")
   }
 
    FileFolder{
        id:resourceFolder
    }
 
    Geodatabase {
        id:gdb1
    }
   
    Component.onCompleted: {
         copylocaldata();
         gdb1.path = output_path+"I.geodatabase";
         //если output_path это свойство и может изменяться, то можно сделать биндинг
         //gdb1.path = Qt.binding(function() { return output_path+"I.geodatabase"; });
    }

    //далее программа
}
« Последнее редактирование: Ноябрь 16, 2015, 22:36 от kibsoft » Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
kolik151
Гость
« Ответ #2 : Ноябрь 16, 2015, 22:50 »

kibsoft, спасибо все работает  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.