Current state of GUI's

motaito via Digitalmars-d digitalmars-d at puremagic.com
Thu Sep 3 05:19:23 PDT 2015


Hi,

I haven't used D before and wanted to take a closer look at it. 
However, there are a few things that keep me from doing so. Most 
notably I am somewhat confused about the state of GUI's. I have 
looked at a couple projects and online resources, but the 
resources I found seam to be quite outdated. Sorry in advance, if 
I have missed some update on the topic. I wanted to ask, if there 
is something in the workings (or already done) to provide a 
standard way to create GUI's. Something supported by D, not an 
independent project. Independent projects tend to scare me away, 
as they almost always get abandoned at some point. I am looking 
for a cross platform (Windows, Linux, BSD) solution.

I very much enjoyed working with QT before, especially QML and 
would like to use something, that essentially replaces C++ with D 
for QML. I only found QtD which also seams to be abandoned. Or 
(maybe even preferable) something similar to .NET and WPF as this 
makes it very easy and flexible to create modern GUI's. I would 
like to install a D environment and get working without having to 
build other projects for GUI's.

e.g.
import std.GUI;

void main(string[] args)
{
	auto win = loadGUIFromXML("Path/to/gui.xml");
	win.show();
}

The XML could then have bindings to D-Modules to handle events 
and perform the actual tasks.

e.g.
<dgui>
	<resources>
		<import module="someModule.d" id="sm" />
	</resources>
	<window width="640" height="480">
		<button text="click me" clickEvent="sm:someFunction()" />
		<content path="path/to/other/xml/gui/for/nested/components" />
	</window>
</dgui>

// some component to be loaded into the window above
<dgui>
	<resources>
		<import module="otherModule.d" id="om" />
	</resources>
	<component>
		<button text="click me" clickEvent="om:otherFunction()" 
orientation="LeftToRight">
			<image path="src/to/icon.png" />
			<text content="some text for the button"/>
		</button>
		<label text="some label text" />
	</component>
</dgui>

Does D offer something like this by now? What is the current 
state/standard for GUI creation?


More information about the Digitalmars-d mailing list