Menu

Custom GUI Components: IntelliLED

Anonymous
2016-01-16
2016-01-18
  • Anonymous

    Anonymous - 2016-01-16

    Hi Stefan,
    thank you for your last great release,
    please find in attachment a DEMO of a GUI component (called IntelliLED). Every LED element has its own ON-OFF threshold (in this version settable only in the designer). put the component.dll in the plugins/designer/ folder and test the simple example. You need the special test version of ScriptCommunicator to run this example.
    Do you think to introduce the GUI plugins in future releases of ScriptCommnicator?
    Kindest regards,
    Pier Andrea.

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-16

    Hi Pier,

    thx for your example Project.
    The functionallity of GUI plugins is already part of ScriptCommunicator (but not documentated and not tested on Linux and Mac OS X). I will document this feature for the next release. Can I use your project as an official example?

    What do you think about the new 'simple script editor'?

    PS: The feature 'GUI plugins' is a really good a idea. Thx for this.

    Best regards,
    Stefan

     

    Last edit: Stefan Zieker 2016-01-16
  • Anonymous

    Anonymous - 2016-01-16

    Hi Stefan,
    of course, you can use my contribution.
    I think that distributing the logic between the scripts and the intelligent GUI elements (I'll start to make a small lib soon) may be also an attracting idea for people no so skilled in JS programming. The connectivity of the designer can be exploited more (immagine a transparent GUI element for converting a number in binary signals and activating intelligent LEDs...or intelligent LED bars, gauges, DSO for plotting arrays in just one scriptcommunicator call).
    Thank you again.
    Pier Andrea.
    ps: please rememeber that the original LED example is not mine, if you decide to include the plugin source code I think you have to thank Mark Wilson (http://www.ics.com/blog/integrating-custom-widget-qt-designer).

     
  • Anonymous

    Anonymous - 2016-01-16

    Hi Stefan,
    your simple script editor is just amazing. I like the function list and the new linenumbering useful for script debugging (thank you!). I' v noted that also the intellisense is working!
    Few days ago I've started to study this project: http://mneuroth.de/projects/Visiscript.html
    Do your think it could be possible to extend the intellisense to the ScriptCommunicator keywords (in the future, obviously).
    Great work Stefan.
    Kindest regards,
    Pier Andrea.

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-16

    Hi Pier,

    I think the intellisense should completly work for objects with a static predefined name (scriptThread, cust,...)
    but for all other objects I don't think that it is possible (because you can not know which type a variable has (you can only see which functions are called and show this in the intellisense)).

    Maybe you can load the ui file and parse the type of the ui elements.

    But I haven't really looked at QScintilla for this, maybe it's still possible.

    Best regards,
    Stefan

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-17

    Hi Pier,

    I have changed the loading of GUI plugins a little bit:
    - the libraries must conatain the new function GetScriptCommunicatorWidgetName
    - ScriptCommunicator loads all libraries in the designer folder and looks with the function above if the library is for loading of the current widget

    This has the advantage that the name of the library doesn't matter. I have testet this on Windows,Linux and Mac OS X.

    PS: I have uploaded the new prerelease (and I have change the LED a little bit).

    Best regards,
    Stefan

     
  • Anonymous

    Anonymous - 2016-01-17

    Hi Stefan,
    you did a great work. I like a lot the solution you found for the interconnection PLUGIN-SCRIPTCOMMUNICATOR an also the new look of the LED component (the alphaChannel manipulation for transparency is very clever!).
    Yesterday I've started to work with the QT clipboard because I think that it could be useful to add two routines for copying and pasting PLAIN TEXT to/from the Clipboard. I succcesfully pasted plain text FROM the Windows Clipboard to a textEdit widget. The copy is a little bit more tricky and I'm working on it. I do not know it this could be difficult on other platforms (MAC, LINUX) but sometimes it could be useful to copy text data and paste it directly into a statistical analysisi software. Also the table widget, very complete in cell-manipulation routines, lacks of the basic routines for selecting/copyng columun text. I understand that it could be very difficult beause a single cell is a container for a lot of differend objects, but having the possibility to create a working spreadsheet could be amazing. There are suggestions for future development but, at moment, I can do at least every thing in virtue of your amazing software.
    Thank you again.
    Kindest regards,
    Pier Andrea.

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-17

    Hi Pier,

    '...lacks of the basic routines for selecting/copyng columun text': Do you mean the text or the widget of a singel cell or do you mean the text of a column header?

    Best regards,
    Stefan

     
  • Anonymous

    Anonymous - 2016-01-17

    Hi Stefan,
    at cell level every thing is ok. the difficult is to copy a range of selected cells-columns Do you think it could be possible to return the actual multiline/multicolumn selection of the table? Like a 2D array of booleans for knowing if a cell is selected (true) or not (false)? on the basis of this routine it could be possible to access to text content at cell level and, for instance, save to file or copy to clipboard entire table.sections (like a real spreadsheet).
    Cheers,
    Pier Andrea.

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-17

    Hi Pier,

    I would be no problem to get the row and column of the current selected cells (via QTableWidget::selectedItems() ).

    Best regards,
    Stefan

     

    Last edit: Stefan Zieker 2016-01-17
  • Anonymous

    Anonymous - 2016-01-18

    Hi Stefan,
    it should be great, Thank you.
    Kindest regards,
    Pier Andrea.

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-18

    Hi Pier,

    I have uploaded a new pre-release which contains:
    - ScriptTableWidget::cellSelectionChangedSignal
    - ScriptTableWidget::getAllSelectedCells
    - ScriptTableWidget::getWidget
    - changed behavior in ScriptTableWidget::insertWidget
    - ScriptWidget::getClassName

    You can find an example in exampleScripts\WorkerScripts\Gui\includedScripts\testTableWidget.js.

    Best regards,
    Stefan

     

    Last edit: Stefan Zieker 2016-01-18
  • Anonymous

    Anonymous - 2016-01-18

    Hi Stefan,
    Thank you for your update.
    I'll try the new functionalities ASAP.
    Kindest regards,
    Pier Andrea.

     
  • Anonymous

    Anonymous - 2016-01-18

    Hi Stefan,
    The GUI example seems to not work anymore with the test version (alos with testTableWidget.js I have problems) I've tryed also to launch the test.exe file without success. Is it possible that I made some mistake in launching the new test version?
    Kindest regards,
    Pier Andrea.

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-18

    Hi Pier,

    make sure that you are running the script from the revision 623 (delete ScriptCommunicator_3_30 in your documents folder).

    The test.exe can be ignored (I have forgotten to delete this file).

    Best regards,
    Stefan

     
  • Anonymous

    Anonymous - 2016-01-18

    Hi Stefan,
    The example works now!
    I did a little bit of confusion with SC versions.
    I'll try to play with tables now.
    Thank you again.
    Pier Andrea.

    ps. Do you have experience woth JS closures? Do you think it could be possible to use closures with SC?

     
  • Stefan Zieker

    Stefan Zieker - 2016-01-18

    Hi Pier,

    I have no experience with closure. But I read this http://www.w3schools.com/js/js_function_closures.asp and testet the following code (which works):

    var add = (function ()
    {
        var counter = 0;
        return function () 
        {
            scriptThread.appendTextToConsole("counter: " + counter);
            return counter += 1;
        }
    })();
    
    add();
    add();
    add();
    

    Best regards,
    Stefan

     
  • Anonymous

    Anonymous - 2016-01-18

    Hi Stefan,
    this is great. It could be possible to use vars as function pointers!
    I've used this approach in LUA programming and it is amazing because (as you know) you can change the functionality on the fly.
    I'm thinking about closures for filtering data dynamically without any mods of core files but just re-assignments of routines to vars. I have to do some tests about the context.
    I have to try also the eval() function of ECMAScript for executing code passed among scripts in form of Strings. I think that the SC possibilities are very wide.
    Thank you.
    Kindet Regards,
    Pier Andrea.

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.