Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

"Trust me. I know what I'm doing." -- Sledge Hammer


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

SubjectAuthor
o c++ and qtb

1
c++ and qt

<yDQ6xIYf1cJRosESYdDckyWGQV0@jntp>

  copy mid

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

  copy link   Newsgroups: comp.lang.c++
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!pasdenom.info!from-devjntp
Message-ID: <yDQ6xIYf1cJRosESYdDckyWGQV0@jntp>
JNTP-Route: news2.nemoweb.net
JNTP-DataType: Article
Subject: c++ and qt
Newsgroups: comp.lang.c++
JNTP-HashClient: IGebjr6uuMPMfZNXe_5bTu16udA
JNTP-ThreadID: P_HnLIRgO7MRBwqIzMfYU0w2qnI
JNTP-Uri: http://news2.nemoweb.net/?DataID=yDQ6xIYf1cJRosESYdDckyWGQV0@jntp
Supersedes: <FQgSItdYDAd7WAHcMLvOeq0be3M@jntp>
User-Agent: Nemo/0.999a
JNTP-OriginServer: news2.nemoweb.net
Date: Tue, 16 Jan 24 21:25:20 +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-16T21:25:20Z/8624627"; 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 (b)
 by: b - Tue, 16 Jan 2024 21:25 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

import QtQuick 2.15
import QtQuick.Controls 2.15
// import calculator ? ? ? how ?

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");

QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [url](QObject* obj, const QUrl& objUrl) {
if (!obj && url == objUrl)
QCoreApplication::exit(-1);
}, Qt::QueuedConnection);
engine.load(url);

return app.exec();}

calculator.h

// calculator.h
#ifndef CALCULATOR_H
#define CALCULATOR_H

class 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_OBJECT

public:
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