GUI libraries

Bruno Deligny bruno.deligny at gmail.com
Mon Dec 2 11:35:05 PST 2013


On Saturday, 30 November 2013 at 10:02:40 UTC, Russel Winder 
wrote:
> I am using QML/Go (and QML/Python, two separate backend 
> implementations
> based on the same QML) for a pet project (which as a sideline 
> supports
> my Python and Go training courses and is research for a possible
> startup). I had been hoping to do QML/D as well but the only 
> graphics
> engine that is really viable with D just now is GtkD. I may 
> well try a
> GtkD/Vibe.d/D version of this but it is really back burner. If 
> there was
> a possibility of QML/Vibe.d/D now that would be really 
> interesting.
> 

You may want take a look at DQuick :
https://github.com/D-Quick/DQuick

It runs on top of openGL too, the main difference is that you 
describe the UI in dedicated script files. Scripts allow to 
provide fully dynamical UIs.

An UI file (original lua script format for the moment) :

GraphicItem
{
     id = "main",

     Image {
         id = "kerningImageButton",

         source = "images/border-image.png",
         width = 300,
         height = 50,

         MouseArea {
             id = "kerningButton",
             width = function()
                 return kerningImageButton.width
             end,
             height = function()
                 return kerningImageButton.height
             end,
         },
     },

     ScrollView {
         id = "scrollView",

         y = function()
             return kerningImageButton.height
         end,
         width = function()
             return main.width
         end,
         height = function()
             return main.height - scrollView.y
         end,

         clip = true,

         Text {
             id = "text",

             wrapMode = Text.WrapMode.WordWrap,

             width = function()
                 return scrollView.width
             end,
             height = function()
                 return scrollView.height
             end,

             text = textFr,
             family = function()
                 if (kerningButton.pressed) then
                     return "AngsanaUPC"
                 end
                 return "Arial"
             end,
             fontSize = 24,
             fontStyle = function()
                 if (kerningButton.pressed) then
                     return Text.FontStyle.Italic
                 end
                 return Text.FontStyle.Regular
             end,
         },
     },
}


More information about the Digitalmars-d mailing list