Creating a multi purpose node editor, if there is none available



  • I am looking for an easy way to have my lab workers to process data from our experiments. I did choose QT as main framework, since we have equal number of OSX and Win machines at the lab, so this makes things easier.

    Now, since I am one of the 2 developers in the lab (I do work as researcher but I know also how to program a bit), I am trying to make something simple to handle for our lab technicians and researchers, which has basic computer skills. I did choose to use a node based editor to have them line up blocks, so I can then convert these in experiments and have everything set up in our computers; although I did not find anything ready to use.

    I am willing to write my own implementation of a basic node based interface, in which case I would appreciate any sort of pointer and help about where to start...but if there is something already written that I can leverage upon, I would take it with joy.

    Thanks in advance!


  • Qt Champions 2016

    Hi
    Im not sure what the term "Node editor" covers here
    but what about
    http://doc.qt.io/qt-5/qtwidgets-graphicsview-diagramscene-example.html
    for a starting point.



  • Thanks a lot! This is a great start to grasp how thing works in Qt graphic libraries.

    It is similar to what I had in mind; Now I need to figure out if there is a way to make it more similar to what you see in a 3D program like Blender or Maya for example; where you have input and output and you connect them via lines.

    To give an idea of an experiment, imagine this

    CompoundA get mixed in SolutionA; the output processed in a spectrometer, then you add a ReagentA, which get tested again in the spectrometer. Once done, you separate by centrifuge the ReagentA and the mixture; then try ReagentB and so on

    As you can see it is important to know what goes in and what goes out; which is why I took these node editors for 3d shaders as example for what I want to obtain, since they are clear, straightforward and can't really mess up anything when you have a node for each compound, reagent and solution; on top of the machinery that does the various operations.





  • @patrik08 Very nice! This is exactly what I was looking for.

    BTW how do you use the source code? Do you have to compile it first? I am new to QT, and the readme did not have much info about how to use it. Thanks!


  • Qt Champions 2016

    @joejoo
    Hi
    It seems to be a Cmake project so you need to install that and then build the app using
    the project file provided.
    Its called a "General-purpose Qt-based library" so it might create a lib to use.



  • @mrjj said in Creating a multi purpose node editor, if there is none available:

    @joejoo
    Hi
    It seems to be a Cmake project so you need to install that and then build the app using
    the project file provided.
    Its called a "General-purpose Qt-based library" so it might create a lib to use.

    Thanks a lot for the hints!

    So I did install cmake; in my program folder (I use W10); while QT is in the root of my C drive.

    After installation I can see that running cmake using the Windows power shell is working, so I assume it did set the environment variable correctly.

    I did open the source folder and ran cmake in it; although I get this error:

    CMake Error at C:/Qt/5.9.1/msvc2017_64/lib/cmake/Qt5Core/Qt5CoreMacros.cmake:63 (file):
      file attempted to create a directory:
     C:/Users/labdev/Desktop/nodeeditor-master/resources into a source directory.
    

    From my understanding, it is trying to create a dir but it fail? I did run powershell as administrator, so I am not sure why it is getting this error. Should I make changes to the CMakeList file? Just shooting in the dark here


  • Lifetime Qt Champion

    Hi,

    Can you show what you did before building your project ?

    Usually building cmake projects starts by creating a build folder either at the root of the project sources or beside it, then go into it and call cmake .. if you are still in project sources or cmake ../myprojectname if you put the build folder beside it.



  • @SGaist

    Hi,

    I did get the zip file from the repo, unzipped in my download folder and then created a build folder in it.

    Then I did open powershell as admin, did cd into the build folder and then ran cmake ..
    I did try also to run cmake . in the root of the project folder but I get the same error as printed above.


  • Lifetime Qt Champion

    Just built it on macOS. without any problem...

    Which version of cmake are you using ?



  • @SGaist
    I see, I am on Windows 10 BTW.

    I did download the latest on the Cmake website: 3.9.0 for x64. I have latest Qt 5.9 and Visual Studio 2017 community edition


  • Lifetime Qt Champion

    What shell are you starting when you want to compile the application ?



  • powershell; does the same either if I start it as admin or not


  • Qt Champions 2016

    @joejoo
    Hi
    Powershell sound wrong to me. Normally visual studio have a developer cmd prompt link that
    set all the environment variables etc. (not tried 2017)

    https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs

    did they make it a powershell thing in 2017 ?



  • @mrjj said in Creating a multi purpose node editor, if there is none available:

    @joejoo
    Hi
    Powershell sound wrong to me. Normally visual studio have a developer cmd prompt link that
    set all the environment variables etc. (not tried 2017)

    https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs

    did they make it a powershell thing in 2017 ?

    Well, I don't even get to the point where VS is in the picture; I am running Cmake; to create the VS files that I will open in that environment. Instead I get nothing because cmake error out saying that it can't create a folder.

    On windows I know no other shell, beside powershell. I use that also to build and run VS project if I don't need the IDE launched.
    At this point I shall try with OSX; since there it seems to build without problems, and see if there is any difference.


  • Qt Champions 2016

    @joejoo
    Its a bit odd.
    Just downloaded , unpacked and build it with vs2015
    with
    cmake .. -DCMAKE_PREFIX_PATH="C:\Qt\5.7\msvc2015\lib\cmake\Qt5"
    No issues what so ever.
    alt text



  • @mrjj said in Creating a multi purpose node editor, if there is none available:

    @joejoo
    Its a bit odd.
    Just downloaded , unpacked and build it with vs2015
    with
    cmake .. -DCMAKE_PREFIX_PATH="C:\Qt\5.7\msvc2015\lib\cmake\Qt5"
    No issues what so ever.
    alt text

    I see, you are using a different command prompt, I never ever heard of that; but it is installed with VS somehow.

    I did build with the same string you used (I have a different QT version though, but it is building!

    Now I did run the solution and I get a build error because I am building in X64 instead of x86, trying to change the project configuration. In the worst case I have to re-install QT since I have only X64 folder installed; I didn't think that I may need the x86, but if this project require it, then I have to install and build using that version.



  • Finally I was successful in building the solution!

    The trick was that I needed the VS2017 QT install that support x86, once used that for DCMAKE_PREFIX_PATH it did build the solution and VS2017 was happy to build all the various examples and items in the solution.

    Now the problem is that each exe is complaing because QT5Widgets.dll cannot be found. I thought that cmake and VS would be able to find all the required DLL; do I need to import something before build the solution, or do I have to set some global variables?

    Sorry for the hassle; but the QT environment, when you work outside QT designer is quite daunting for a beginner.


  • Qt Champions 2016

    @joejoo said in Creating a multi purpose node editor, if there is none available:

    exe is complaing because QT5Widgets.dll

    Hi
    That is normal.
    You need to make a deployment folder for it with the needed dlls.

    http://www.tripleboot.org/?p=138

    note there is the windeploy tool to help



  • cmake file is easy to read
    https://github.com/paceholder/nodeeditor/blob/master/CMakeLists.txt

    take all source from https://github.com/paceholder/nodeeditor

    remove example folder move in other dir …

    target_link_libraries(nodes
    Qt5::Core
    Qt5::Widgets
    Qt5::Gui
    Qt5::OpenGL)

    at top dir one console
    qmake -project after you have a pro file

    fill pro file Qt5::Core Qt5::Widgets Qt5::Gui Qt5::OpenGL as module frameworks
    template static libs

    take example set pro file to static lib and dir…
    and you build one sample…



  • So the last post was done in august, it's now November, this issue is still not fixed! Who is to blame here? Is the CMakeLists provided in the repo crap?

    I just installed Qt 5.9.2 and VS2017, and with this library I am running into exactly the same problem as the OP. I have tried all the solutions here, but none of them are working, it still complains about

    CMake Error at D:/Qt/5.9.2/msvc2017_64/lib/cmake/Qt5Core/Qt5CoreMacros.cmake:63 (file):

    attempting to create a directory, and I cannot get this project to build.

    I would like to add this project as a sub project to our main Qt project, but as it seems, the developer will not put pro files on the github repository and I am not going to make all of them manually.



  • I have the similar

    klaus@linux-8rwt:~/Workbench/QT5/3rdparty/nodeeditor-master> cmake CMakeLists.txt
    CMake Error at /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:63 (file):
    file attempted to create a directory:
    /home/klaus/Workbench/QT5/3rdparty/nodeeditor-master/resources into a
    source directory.
    Call Stack (most recent call first):
    /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:214 (qt5_make_output_file)
    /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:285 (_QT5_PARSE_QRC_FILE)
    CMakeLists.txt:49 (qt5_add_resources)



  • I have the similar problem under linux

    klaus@linux-8rwt:~/Workbench/QT5/3rdparty/nodeeditor-master> cmake CMakeLists.txt
    CMake Error at /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:63 (file):
    file attempted to create a directory:
    /home/klaus/Workbench/QT5/3rdparty/nodeeditor-master/resources into a
    source directory.
    Call Stack (most recent call first):
    /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:214 (qt5_make_output_file)
    /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:285 (_QT5_PARSE_QRC_FILE)
    CMakeLists.txt:49 (qt5_add_resources)

    Has some one an idea that helps?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.