[C++, Python] C++ e GUI

Messaggioda powamaker » 11/02/2017, 12:04

Ciao a tutti,

scrivo principalmente codice in C++ e mi piacerebbe cominciare ad integrarlo ad una GUI. Tempo fa avevo utilizzato OpenGL e non mi era piaciuto granché.
Ultimamente mi sono state consigliate queste: FLTK, GTK, Qt, Qwt, wxWidgets, VTK. Voi cosa ne pensate? Qual è la migliore? Sono tutte gratuite? (Sono dubbioso su Qt).
Per avere risultati migliori mi consigliereste di scrivere una GUI con un altro linguaggio? E, se si, quale e come lo integrereste?

Grazie a tutti per l'attenzione :) !


EDIT: sono estremamente incuriosito anche da Python quindi se i consigli lo includessero (per esempio creare la GUI in Python -anche se so che non è estremamente adatto - per iniziare ad approcciarmi al suo mondo) ve ne sarei ancor più riconoscente :wink:
powamaker
Junior Member
Junior Member
 
Messaggio: 67 di 142
Iscritto il: 21/02/2013, 15:22

Re: [C++, Python] C++ e GUI

Messaggioda Raptorista » 11/02/2017, 22:15

Io ho utilizzato Qt in passato, che è gratuita per utilizzi non commerciali e senza alcune estensioni esotiche. A me è piaciuta molto, ha anche un sacco di cose oltre alla sola grafica [Database SQL, Network, ...] e c'è sia per C++ sia per Python, quindi se poi vuoi cambiare linguaggio non devi imparare un'altra libreria.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4185 di 9616
Iscritto il: 28/09/2008, 19:58

Re: [C++, Python] C++ e GUI

Messaggioda powamaker » 12/02/2017, 09:34

Ti ringrazio molto :) !!!
powamaker
Junior Member
Junior Member
 
Messaggio: 68 di 142
Iscritto il: 21/02/2013, 15:22

Re: [C++, Python] C++ e GUI

Messaggioda Raptorista » 12/02/2017, 11:13

I libri di Summerfield su Qt sono molto buoni, anche se per la versione precedente [Qt4]. Cerca qualche buon libro di Qt5, sicuramente ce ne sono.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4188 di 9616
Iscritto il: 28/09/2008, 19:58

Re: [C++, Python] C++ e GUI

Messaggioda powamaker » 12/02/2017, 12:02

Va bene, allora guardo :) ! E grazie per i consigli!!
powamaker
Junior Member
Junior Member
 
Messaggio: 69 di 142
Iscritto il: 21/02/2013, 15:22

Re: [C++, Python] C++ e GUI

Messaggioda apatriarca » 13/02/2017, 00:42

Ho usato alcuni degli strumenti da te elencati. Sono tutti gratuiti, a patto di seguire le limitazioni richieste dalle licenze. Qt richiede in particolare che la tua applicazione non includa le librerie all'interno dell'eseguibile del tuo codice ma che carichi invece tali librerie dinamicamente. In pratica non è un problema. E' comunque fatto tutto in modo automatico. Credo che wxWidget possa avere limitazioni simili (non ho letto la licenza con attenzione ma dice che è essenziamente LGPL che è quella che usa anche Qt).

Le librerie che hai elencato sono molto diverse come obiettivi e funzionalità. Infatti:
- OpenGL: Si tratta di una libreria di basso livello per la creazione di scene tridimensionali (e non solo). Deve necessariamente appoggiarsi ad una libreria che ha il compito di creare la finestra e altro. Non è insomma pensata per creare GUI anche se è possibile farlo con molti sforzi.
- FLTK: Questo è effettivamente un framework per creare GUI. L'ho usato poco e non mi è piaciuto più di tanto, ma la tua esperienza potrebbe essere diversa.
- GTK: Nato in C ma ad oggetti, per cui fa uso di una particolare implementazione di questi concetti nel linguaggio C. Dovrebbe esserci un binding per il C++, ma non l'ho mai usato. Usata in C, fa il suo dovere.
- Qt: E' quella che ho usato di più e una volta che hai imparato i concetti principali è abbastanza facile e veloce da usare. Fa un po' di tutto per cui forse a volte può apparire un po' "pesante". La versione 5 supporta il C++11 ed è quindi in generale più bella da usare.
- Qwt: è una libreria basata su Qt per aggiungere alcune funzionalità. Nessuna di queste funzionalità riguarda le GUI di base.
- wxWidgets: Non l'ho mai usata anche se è (era?) abbastanza popolare.
- VTK: E' una libreria per la visualizzazione scientifica. Non ha nulla a che fare con le GUI. Supporta l'inclusione in una GUI Qt.

Credo che python abbia binding per ognuna di queste librerie. Molti software che fanno uso di Qt permettono la creazione di finestre di dialogo e altre funzionalità in Python. Non è tuttavia qualcosa di automatico o semplice da fare dal punto di vista dell'applicazione in C++.
apatriarca
Moderatore
Moderatore
 
Messaggio: 4538 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: [C++, Python] C++ e GUI

Messaggioda powamaker » 13/02/2017, 08:34

Ciao, grazie per la risposta dettagliata :) !!!
Il fatto che Qt debba caricare le librerie dinamicamente implica (e scusami la domanda da ignorante) che sui dispositivi su cui andrà a girare l'applicazione sia presente il framework, giusto?
Puoi per favore rispiegarmi ciò che hai detto alla fine riguardo Python e C++?
Grazie mille :) !!!
powamaker
Junior Member
Junior Member
 
Messaggio: 70 di 142
Iscritto il: 21/02/2013, 15:22

Re: [C++, Python] C++ e GUI

Messaggioda Luc@s » 13/02/2017, 09:50

python

Codice:
#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
ZetCode PyQt4 tutorial

In this example, we create a simple
window in PyQt4.

author: Jan Bodnar
website: zetcode.com
last edited: October 2011
"""

import sys
from PyQt4 import QtGui


def main():
   
    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()
   
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()


C++
Codice:
#include <QApplication>
#include <QPushButton>
 
int main(int argc, char **argv)
{
 QApplication app (argc, argv);
 
 QPushButton button ("Hello world !");
 button.show();
 
 return app.exec();
}
----
Luca Francesca <[email protected]>
System Engineer Lead @ Salesforce

Info: https://www.linkedin.com/in/lucafrancesca/
Luc@s
Senior Member
Senior Member
 
Messaggio: 1461 di 1955
Iscritto il: 01/05/2006, 17:21
Località: Irlanda

Re: [C++, Python] C++ e GUI

Messaggioda Raptorista » 13/02/2017, 10:05

@Luc@s: di grazia, questo lapidario copia-incolla di codice che cosa dovrebbe significare?
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4191 di 9616
Iscritto il: 28/09/2008, 19:58

Re: [C++, Python] C++ e GUI

Messaggioda Luc@s » 13/02/2017, 10:06

La differenza tra python e C++.
Io in base a quello andrei di C++ :)
----
Luca Francesca <[email protected]>
System Engineer Lead @ Salesforce

Info: https://www.linkedin.com/in/lucafrancesca/
Luc@s
Senior Member
Senior Member
 
Messaggio: 1462 di 1955
Iscritto il: 01/05/2006, 17:21
Località: Irlanda

Prossimo

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite