Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

Ignorance is bliss. -- Thomas Gray Fortune updates the great quotes, #42: BLISS is ignorance.


devel / comp.lang.c++ / c++ and qt

SubjectAuthor
o c++ and qtbubu

1
c++ and qt

<FQgSItdYDAd7WAHcMLvOeq0be3M@jntp>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=3055&group=comp.lang.c%2B%2B#3055

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!news.niel.me!pasdenom.info!from-devjntp
Message-ID: <FQgSItdYDAd7WAHcMLvOeq0be3M@jntp>
JNTP-Route: news2.nemoweb.net
JNTP-DataType: Article
Subject: c++ and qt
Newsgroups: comp.lang.c++
JNTP-HashClient: LKH6r05zbeQZQWX4ZPnnKUhDLoE
JNTP-ThreadID: P_HnLIRgO7MRBwqIzMfYU0w2qnI
JNTP-Uri: http://news2.nemoweb.net/?DataID=FQgSItdYDAd7WAHcMLvOeq0be3M@jntp
User-Agent: Nemo/0.999a
JNTP-OriginServer: news2.nemoweb.net
Date: Tue, 16 Jan 24 20:52:56 +0000
Organization: Nemoweb
JNTP-Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0
Injection-Info: news2.nemoweb.net; posting-host="168b0b30881a359436f5afefe854379e61f00a0d"; logging-data="2024-01-16T20:52:56Z/8624537"; posting-account="227@news2.nemoweb.net"; mail-complaints-to="newsmaster@news2.nemoweb.net"
JNTP-ProtocolVersion: 0.21.1
JNTP-Server: PhpNemoServer/0.94.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-JNTP-JsonNewsGateway: 0.96
From: bruno.donati@hotmail.fr (bubu)
 by: bubu - Tue, 16 Jan 2024 20:52 UTC

Hi,

Sorry for my bad english and sorry for my bad level in qt.

I would like to use a qml program and c++ libraries (with import).

I use Visual Studio on windows.

I have several problems (and I put an example here-after) :
- how to use c++ with qml
- how to use a library written in c++ to use in a program in QML with
IMPORT statement.
- how to build executable and librarie with cmake?

My example is here :

main.qml

ApplicationWindow {
visible: true
width: 400
height: 300
title: "Calculator"

Calculatrice {
id: calculatrice
}

Column {
anchors.centerIn: parent
spacing: 10

TextField {
id: input1
placeholderText: "Entrez le premier nombre"
validator: DoubleValidator {
bottom: -1000000000.0
top: 1000000000.0
}
}

TextField {
id: input2
placeholderText: "Entrez le deuxième nombre"
validator: DoubleValidator {
bottom: -1000000000.0
top: 1000000000.0
}
}

Row {
spacing: 10

Button {
text: "Additionner"
onClicked: {
resultLabel.text = "Résultat: " +
calculator.add(parseFloat(input1.text), parseFloat(input2.text))
}
}

Button {
text: "Soustraire"
onClicked: {
resultLabel.text = "Résultat: " +
calculator.subtract(parseFloat(input1.text), parseFloat(input2.text))
}
}

Button {
text: "Multiplier"
onClicked: {
resultLabel.text = "Résultat: " +
calculator.multiply(parseFloat(input1.text), parseFloat(input2.text))
}
}
}

Label {
id: resultLabel
text: "Résultat: "
}
}
}

main.cpp

#include <QGuiApplication>#include <QQmlApplicationEngine>#include
<QtCore>//#include "calculator.cpp"int main(int argc, char* argv[]){
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv); QQmlApplicationEngine engine;
//qmlRegisterType<Calculator>("Calculator", 1, 0, "Calculator"); const
QUrl url(QStringLiteral("qrc:/main.qml"));
QObject::connect(&amp;engine, &amp;QQmlApplicationEngine::objectCreated,
&amp;app, [url](QObject* obj, const QUrl&amp; objUrl) { if
(!obj &amp;&amp; url == objUrl) QCoreApplication::exit(-1);
}, Qt::QueuedConnection); engine.load(url); return
app.exec();}

calculator.h

// calculator.h#ifndef CALCULATOR_H#define CALCULATOR_Hclass Calculator
{public: double add(double a, double b) const; double subtract(double a,
double b) const; double multiply(double a, double b) const;};#endif //
CALCULATOR_H

calculator.cpp

#include <QObject>class Calculator : public QObject{ Q_OBJECTpublic:
Q_INVOKABLE double add(double a, double b) const { return a + b;
} Q_INVOKABLE double subtract(double a, double b) const { return
a - b; } Q_INVOKABLE double multiply(double a, double b) const {
return a * b; }};

Could you help me, please.
It make errors on building. Why ?
How to build library for qml (using IMPORT) and executable with cmake ?

Sorry. I have a lot of problems. I will have others questions after.

Thanks a lot.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor