Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. [SOLVED] How to use qt resources file containing .js and .qml files (Qt Quick 2 qmake project) to avoid full rebuild after every change in files?
QtWS25 Last Chance

[SOLVED] How to use qt resources file containing .js and .qml files (Qt Quick 2 qmake project) to avoid full rebuild after every change in files?

Scheduled Pinned Locked Moved QML and Qt Quick
3 Posts 2 Posters 2.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    rominf
    wrote on last edited by
    #1

    Hi.
    I have Qt Quick 2 project. I need to implement computer graphics lab: drawing ellipses with different algorithms. I decided to separate ui from algorithms and created ellipse.js file.

    As I understand there are 2 ways to use .qml and .js files: directly and as a qt resource part.
    Disadvantages of those ways:
    Directly.

    I must copy files to build dir (or make symlinks). I should do it every time I create a new .qml or .js file, I can forget about it.

    Final user will have binary file and .qml files. Even in the case of free (open-source) software sometimes better to have single file.

    Resources

    I have to edit my .qrc file every time I create a new .qml or .js file.

    Due this "bug":https://bugreports.qt-project.org/browse/QTCREATORBUG-1627 I have to rebuild whole project after every change in .qml or .js files.

    I prefer the second way, but frequent protracted rebuilds are annoying. This is really bad because Qt Quick was presented as a solution for fast prototyping, but if I have to wait ten seconds for compilation and linking after each iteration it isn't "fast prototyping". So I switched to the first way with ugly qml files loading:
    @QQmlComponent component(&engine, QUrl::fromLocalFile("../../main.qml"));@

    Are there ways to fix this situation? I heard about QBS but it's unstable yet.
    I also saw some examples with .qmlproject files like:
    @
    Project {
    ...
    QmlFiles {
    directory: "."
    },
    JavaScriptFiles {
    directory: "."
    }
    ...
    @
    but I cannot find how to use those .qmlproject files instead of .pro files.

    UPD: for pure QML projects it's worth to use .qmlproject (see below how)

    1 Reply Last reply
    0
    • J Offline
      J Offline
      JapieKrekel
      wrote on last edited by
      #2

      I believe with this bug it should be sufficient to run qmake again and then build.

      The .qmlproject file works for a pure qml project. It can be run with the qmlviewer or qmlscene depending on your QtQuick version.
      To see this work, in QtCreator simply create a Qt Quick 1 UI or Qt Quick 2 UI project in stead of Qt Quick application. This has the benefit of not needing to compile at all.

      1 Reply Last reply
      0
      • R Offline
        R Offline
        rominf
        wrote on last edited by
        #3

        Thank you, JapieKrekel, I did it and now it works fine! Program starts faster than before (but unfortunately slower than Qt Widgets application) and after changes I have to only press “Run”.

        I have one problem: I used Qt Fusion Style, not system style. How can I do this with qmlscene? I created "separate thread":https://qt-project.org/forums/viewthread/27602/ for this question.

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved