Getting Qte5 to work
evilrat
evilrat666 at gmail.com
Wed Oct 28 06:52:35 UTC 2020
On Tuesday, 27 October 2020 at 11:46:02 UTC, Josh Dredge wrote:
> Hi all, I'm completely new to D and while I'm not new to
> programming in general, I mostly do web development,
Welcome! If by web development you also have back-end programming
then you should be like 50% know how desktop programming works.
>
> I'm looking at learning D, but would like to stick with what I
> know on desktop in terms of event-driven GUI based applications.
Just an advice, Qte5 isn't well maintained, the other
alternatives such as 'dlangui' also seems abandoned, so basically
the only maintained UI library here is gtk-d, but there was
recently a nice tutorial series written about it.
Though I admit I've kind of dropped from the D for the 6 months.
> I have Visual D installed, as well as QtCreator and was hoping
> to be able to use Qt with D. I'm happy without any GUI builder
> for now, but still need a working GUI library! Qte5 looks fine
> but need to figure out how to implement it.
>
> I've installed D in "C:\D" (Windows 10 x64).
> I've installed Qte5 in "C:\D\Qte5".
>
> Quite simply typing "import Qte5;" into the code doesn't work
> (module not found), and I'm not sure how to make sure the
> library is correctly installed and reference. Is there a setup
> guide? I found one on Youtube but it didn't really explain
> anything. What's the way to do it?
>
First, since you are already trying to work with C++ (Qt is a C++
framework after all) under the hood you will likely need to
install MS build tools and Windows SDK, this will get you missing
libraries and first-class support for building native binaries.
Now to the point - 'module not found' is a compiler message that
tells you 'there were no such module in module search paths',
with dmd you can point compiler to look for qte5 dir with -I flag
(or recently -i to also build these), then you also need to pass
built .lib OR .obj files for Qte5 that contains compiled code
otherwise you'll see link errors.
So for building your code it is better (for now) to use
'dub'(official build system & package manager, usually ships with
compilers)
Let's just make a new dub project and add qte as dependency
(since it's already on dub registry)
- Let's create a new project in current working directory named
MyAwesomeProject, just hit enter for all questions
$> dub init MyAwesomeProject
- Now go to this folder
$> cd MyAwesomeProject
- Clone qte5 repo to your project (or download and unzip)
$> git clone https://github.com/MGWL/QtE5
- And let's add Qte5 dependency(btw you can see it here
https://code.dlang.org/packages/qte5), note that it is completely
unrelated with our cloned repo
$> dub add qte5
- Now open your dub.json in your project and replace dependency
path (we do this because it is semi-abandoned, and last published
version was 4 years ago, even though there was some recent
activity on master branch) so your dependency section should like
this
"dependencies": {
"qte5": { "path" : "./QtE5" },
},
- If you try to build it right now it will error, so we have to
"fix" it, so go to QtE5 folder, open dub.json and remove
'sourceFiles' section, it should build just fine without it.
- Copy example code from QtE5/example/example.d and replace
your source/app.d with it
- Build using dub
$> dub build
- Done! Now if you have Qt5 installed and present in you system
%PATH% environment variable (or copied DLL's next to executable)
I assume it should work. (since I don't have I can't test if it
actually works)
- (Optional) It is possible to (re)generate VisualD project
after you modify your dub project configuration, (additionally it
can take any other build options such as --arch or --config, but
ultimately it generates exactly one variant of all possible
arch/config flavors)
$> dub generate visuald
Where to get packages?
D packages and dub (note though that not everyone publish it
here, some people have extra fancy stuff on their github/gitlab)
- https://code.dlang.org/
More information about the Digitalmars-d-learn
mailing list