DOMANDA Interfaccia Grafica In C

JDany

Utente Attivo
417
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Salve. Sono nuovo a programmare in C. So fare cose basilari, esempio usare istruzioni come if-else, switch, dichiarare variabili e stamparle a video. L'unico problema è che non mi piace che ogni volta che eseguo, anche un semplice programma, si apre nel DOS di Windows. Vorrei usare un'interfaccia grafica, anche una già creata, anche per studiare il codice. Solo che non trovo nulla online, tutti dicono la stessa cosa, cioè che è difficile, usa programmi come visual di MS. Voi sapete dove trovare un codice per una "semplice" interfaccia grafica? Per programmare uso DevC++.
 

SoWimDP31

Nuovo Utente
"Semplice", "GUI" e "C" non possono stare nella stessa frase.
No, seriamente, avevo il tuo stesso dubbio l'anno scorso, quando abbiamo iniziato a farlo a scuola. Ad oggi ti posso dire che tutti sconsigliano le GUI su C proprio per la difficoltà nel crearle.


(se vuoi fare piccole interfacce grafiche, il modo più facile è Java + NetBeans)

Inviato da Redmi 5 Plus tramite App ufficiale di Tom\'s Hardware Italia Forum
 

Cibachrome

Utente Èlite
12,144
4,362
Hardware Utente
"Semplice", "GUI" e "C" non possono stare nella stessa frase.
No, seriamente, avevo il tuo stesso dubbio l'anno scorso, quando abbiamo iniziato a farlo a scuola. Ad oggi ti posso dire che tutti sconsigliano le GUI su C proprio per la difficoltà nel crearle.


(se vuoi fare piccole interfacce grafiche, il modo più facile è Java + NetBeans)

Inviato da Redmi 5 Plus tramite App ufficiale di Tom\'s Hardware Italia Forum
Invece in C++ oppure in C#?
 

SoWimDP31

Nuovo Utente
"Semplice", "GUI" e "C" non possono stare nella stessa frase.
No, seriamente, avevo il tuo stesso dubbio l'anno scorso, quando abbiamo iniziato a farlo a scuola. Ad oggi ti posso dire che tutti sconsigliano le GUI su C proprio per la difficoltà nel crearle.


(se vuoi fare piccole interfacce grafiche, il modo più facile è Java + NetBeans)

Inviato da Redmi 5 Plus tramite App ufficiale di Tom\'s Hardware Italia Forum
Invece in C++ oppure in C#?
Eh,qualcosina li si può trovare....
Purtroppo però a scuola fanno il C classico, non ti so dire, mai fatto il ++ o il #

Inviato da Redmi 5 Plus tramite App ufficiale di Tom\'s Hardware Italia Forum
 

DispatchCode

Utente Attivo
619
377
Hardware Utente
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Salve. Sono nuovo a programmare in C. So fare cose basilari, esempio usare istruzioni come if-else, switch, dichiarare variabili e stamparle a video. L'unico problema è che non mi piace che ogni volta che eseguo, anche un semplice programma, si apre nel DOS di Windows. Vorrei usare un'interfaccia grafica, anche una già creata, anche per studiare il codice. Solo che non trovo nulla online, tutti dicono la stessa cosa, cioè che è difficile, usa programmi come visual di MS. Voi sapete dove trovare un codice per una "semplice" interfaccia grafica? Per programmare uso DevC++.
Mi permetto di suggerirti di lasciar perdere le GUI al momento allora.
In primis, quando si Impara, si devono evitare tools per creare le GUI, che sia per Java o C++ o altro.
Alcune scelte comunque sono: SFML, GTK+, SDL2. Ti suggerivo di proseguire nello studio del C in quanto ti mancano concetti fondamentali - a quanto si evince - per poter utilizzare queste librerie; un esempio su tutti, i puntatori.

@Cibachrome: con C++ è analogo, ma hai ad esempio anche WxWidgets.
Altre lib molto usate sono le Qt. QtCreator è uno strumento molto interessante (ma è bene prima sbatterci il muso, altrimenti non si imparerà molto).

Inviato da ONEPLUS A5000 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
  • Mi piace
Reactions: Andretti60

Andretti60

Utente Èlite
3,768
2,539
Hardware Utente
...
Altre lib molto usate sono le Qt. QtCreator è uno strumento molto interessante (ma è bene prima sbatterci il muso, altrimenti non si imparerà molto) ...
concordo. Tra l'altro "Qt" si pronuncia come la parola inglese "cute" (ossia "carino")
Il linguaggio C non è nato per creare interfacce grafiche, molto più conveniente usare Java (multi piattaforma) o i linguaggi specifici del sistema operativo (per esempio C# per Windows). Ovvio non significa non si possa fare, io per esempio programmavo XWindows usando il linguaggio C, che è quello che si faceva al tempo (XWindow purtroppo è sparito), sarebbe un po’ come dire ho imparato a usare un cacciavite, e vorrei adesso piantare un chiodo.
Comunque attenzione: creare programmi con interfaccia grafica non è semplice come possa apparire, richiede parecchia esperienza.
 

pabloski

Utente Èlite
1,982
408
Hardware Utente
XWindow purtroppo è sparito)
Wa no, perchè vuoi suonare il requiem di X? XWindow nella sua implementazione originale sarà relegato in qualche magazzino di qualche università americana, ma X11 è vivo sotto forma di Xorg. C'è gente che ancora oggi usa Xcb o peggio Xlib per programmare direttamente sotto X. Non è sano e non è semplice ( no widget ) ma si può fare.


Comunque attenzione: creare programmi con interfaccia grafica non è semplice come possa apparire, richiede parecchia esperienza.
Purtroppo devo concordare. I pattern che si è costretti a seguire nell'implementazione delle GUI sono assurdi. Del resto il grosso delle innovazioni nella programmazione moderna sono nate da e per le GUI.

Non è esagerato dire che un buon 80% del lavoro di programmazione per un'applicazione "tipica" consiste nel realizzare la GUI...qualcosa da cui cerco di fuggire ogni volta che posso.

Ma permettetemi di dire che le tecnologie basate su HTML5 in questo aiutano tantissimo. Se solo le implementazioni fossero un pelino più leggere di Electron, come ad esempio Sciter.
 
  • Mi piace
Reactions: Andretti60

pabloski

Utente Èlite
1,982
408
Hardware Utente
Vorrei usare un'interfaccia grafica, anche una già creata, anche per studiare il codice. Solo che non trovo nulla online, tutti dicono la stessa cosa, cioè che è difficile, usa programmi come visual di MS. Voi sapete dove trovare un codice per una "semplice" interfaccia grafica? Per programmare uso DevC++.
Oltre al mio precedente post e a quante scritto dagli altri, in particolare sul fatto che non hai ancora padroneggiato i puntatori ( e senza in C non vai da nessuna parte ), mi sento di puntualizzare un paio di cose:

  1. Dev-C++ è carino, ma è vecchio e abbandonato. L'ultima versione è del 2015 e da allora parecchie cose sono cambiate. Ti conviene optare per un ambiente di sviluppo mantenuto, tipo Codeblocks o Codelite.
  2. Visual Studio è appunto un IDE per programmare in vari linguaggi e offre un discreto meccanismo integrato per realizzare interfacce grafiche. Ma QtCreator fa lo stesso e ce ne sono altri, per i più svariati linguaggi.
  3. E' importante chiarire che il C, come linguaggio, non predispone nulla per lo sviluppo di interfacce grafiche ( nemmeno esistevano quando fu inventato il C ). Per cui o ci si appoggia a librerie esterne e alle API dei vari sistemi operativi. Windows usa ad esempio Win32, deprecato con Windows 10 che invece mira a sostituirlo con Windows RT. Ma c'è ancora e si può usare. Potrebbe essere un esercizio interessante, perchè presenta sostanziali difficoltà e ti permette di fare pratica ed approfondire vari e fondamentali argomenti del C.
  4. Esistono le librerie che chiedi: IUP, FLTK, GTK+, EFL. E ci sono librerie per il solo disegno ( senza i widget ) tipo SDL e Cairo. Ma basta passare al C++ che ti si apre un universo di possibilità.
Penso che a questo punto sia solo questione di intenzioni. Fossi in te mi arrampicherei su Win32 e magari SDL/Cairo e darei un'occhiata a GTK+ ( che trovi ovunque ci sia di mezzo il cross-platform, compresi JavaFX e altri GUI toolkit similari ).

Sarebbe interessante dare pure un'occhiatina ai sorgenti di librerie "semplici" come FLTK e IUP, giusto per capire quali avanzati pattern di programmazione si usano nell'ambiente delle GUI.
 
  • Mi piace
Reactions: Andretti60

JDany

Utente Attivo
417
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
"Semplice", "GUI" e "C" non possono stare nella stessa frase.
No, seriamente, avevo il tuo stesso dubbio l'anno scorso, quando abbiamo iniziato a farlo a scuola. Ad oggi ti posso dire che tutti sconsigliano le GUI su C proprio per la difficoltà nel crearle.


(se vuoi fare piccole interfacce grafiche, il modo più facile è Java + NetBeans)

Inviato da Redmi 5 Plus tramite App ufficiale di Tom\'s Hardware Italia Forum
Mi sono spiegato male :hihi:. Per semplice intendevo qualcosa di diverso dal DOS, tipo uno schermata bianca dove vedere i risultati. Io sono in seconda ITIS, a settembre inizio informatica ma li non studiamo il C, ma Java, che ho studiato per un po' poi ho lasciato.
 

JDany

Utente Attivo
417
23
Hardware Utente
CPU
Intel Core i5 7500
Scheda Madre
ASUS H170-Pro
Hard Disk
Seagate 1 TB
RAM
Corsair Vengeance LPX 2x8 GB
Scheda Video
NVIDIA GTX 1050 Ti
Monitor
Philips Gaming Monitor 24"
Alimentatore
Corsair CX450M
Case
Sharkoon VS4-V
Sistema Operativo
Windows 10 Pro
Oltre al mio precedente post e a quante scritto dagli altri, in particolare sul fatto che non hai ancora padroneggiato i puntatori ( e senza in C non vai da nessuna parte ), mi sento di puntualizzare un paio di cose:

  1. Dev-C++ è carino, ma è vecchio e abbandonato. L'ultima versione è del 2015 e da allora parecchie cose sono cambiate. Ti conviene optare per un ambiente di sviluppo mantenuto, tipo Codeblocks o Codelite.
  2. Visual Studio è appunto un IDE per programmare in vari linguaggi e offre un discreto meccanismo integrato per realizzare interfacce grafiche. Ma QtCreator fa lo stesso e ce ne sono altri, per i più svariati linguaggi.
  3. E' importante chiarire che il C, come linguaggio, non predispone nulla per lo sviluppo di interfacce grafiche ( nemmeno esistevano quando fu inventato il C ). Per cui o ci si appoggia a librerie esterne e alle API dei vari sistemi operativi. Windows usa ad esempio Win32, deprecato con Windows 10 che invece mira a sostituirlo con Windows RT. Ma c'è ancora e si può usare. Potrebbe essere un esercizio interessante, perchè presenta sostanziali difficoltà e ti permette di fare pratica ed approfondire vari e fondamentali argomenti del C.
  4. Esistono le librerie che chiedi: IUP, FLTK, GTK+, EFL. E ci sono librerie per il solo disegno ( senza i widget ) tipo SDL e Cairo. Ma basta passare al C++ che ti si apre un universo di possibilità.
Penso che a questo punto sia solo questione di intenzioni. Fossi in te mi arrampicherei su Win32 e magari SDL/Cairo e darei un'occhiata a GTK+ ( che trovi ovunque ci sia di mezzo il cross-platform, compresi JavaFX e altri GUI toolkit similari ).

Sarebbe interessante dare pure un'occhiatina ai sorgenti di librerie "semplici" come FLTK e IUP, giusto per capire quali avanzati pattern di programmazione si usano nell'ambiente delle GUI.
Si ancora devo studiare i puntatori e anche l'allocazione di memoria dinamica. Insomma mi manca la parte più succulenta :hihi:. Comunque grazie per i consigli.
 
  • Mi piace
Reactions: Andretti60

Andretti60

Utente Èlite
3,768
2,539
Hardware Utente
... C'è gente che ancora oggi usa Xcb o peggio Xlib per programmare direttamente sotto X. Non è sano e non è semplice ( no widget ) ma si può fare. ...
Stai parlando con uno che nei primi anni 80 scrisse un intero X Toolkit usando solo Xlib :) quando ero all'uni, su Sun Workstations. Mi ci divertii un sacco, erano gli anni che passavo 20 ore per giorno in laboratorio e il mio relatore dovetti venire a prendermi di peso per farmi dare l'ultimo esame, ormai avevo perso ogni interesse e volevo solo programmare. Non ebbi poi nessun problema a trovare lavoro, potevo scrivere in C la nona sinfonia di Beethoven. Lo uso ancora adesso infatti, assieme a molti altri.
 
  • Mi piace
Reactions: Slaw

Andretti60

Utente Èlite
3,768
2,539
Hardware Utente
... I pattern che si è costretti a seguire nell'implementazione delle GUI sono assurdi. Del resto il grosso delle innovazioni nella programmazione moderna sono nate da e per le GUI.
...
Non posso fare altro che concordare. A quello poi aggiungiamo la completa mancanza di standard tra architetture, chi vuole creare applicazioni multi piattaforma deve fare salti mortali. Stiamo cercando di creare nuovi paradigmi tipo MVVM, vedi link sotto, ma nessuno veramente funziona in tutti i casi. Prima di creare una applicazione GUI bisogna sempre fare un sacco di analisi di progetto per capire quale sia la strada giusta. E purtroppo quasi sempre la strada giusta non esiste e bisogna scendere a compromessi. Per esempio io scrissi programmi usando Visual Basic una quindicina di anni fa (orrore...) che funzionano però ancora adesso!
https://en.m.wikipedia.org/wiki/Model–view–viewmodel
 

pabloski

Utente Èlite
1,982
408
Hardware Utente
chi vuole creare applicazioni multi piattaforma deve fare salti mortali
I pattern architetturali hanno un loro perchè ed è giusto che si studino sempre nuove soluzioni. Negli anni si è però trascurato proprio il discorso multipiattaforma, ovvero come astrarre le UI e come renderle realizzabili con immediatezza.

Ad un certo punto qualcuno si è svegliato e ha capito che bisognava cambiare le regole e sono nati Xaml, QtQuick, ecc... Ma solo dopo che HTML aveva insegnato a tutti come si fanno le interfacce. Al che il passo logico è stata la realizzazione di soluzioni come Electron. E tutto bello, funge ed è stupendo per quell'uso.

Ma non sarebbe ora di pensare a soluzioni tipo React Native per PC e quant'altro? O magari a soluzioni simil-Electron ma basate su un motore HTML/CSS e Javascript un pelino più parco di risorse? Che poi usare Chromium...che te ne fai delle API USB in un'applicaizone Electron? Mi piacerebbe chiederlo agli sviluppatori xD

E per carità esistono soluzioni del genere, tipo Sciter o React Native per Windows, ma le vedo ancora troppo di nicchia, poco supportate e poco pubblicizzate. Eppure si tratta di risistematizzare l'esistente, perchè è lampante che HTML e compagni effettivamente riescono a quadrare il cerchio dello sviluppo delle UI, per cui non bisogna cercare qualcos'altro.
 

rctimelines

Utente Èlite
4,459
1,510
Hardware Utente
CPU
AMD Ryzen 7 2700X | INTEL i5-6600k | INTEL i5-4460... altri
Dissipatore
wraith MAX | Arctic Freezer 11LP | stock
Scheda Madre
Asrock Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
Hard Disk
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
Scheda Video
RadeonPro WX3100 4G | KFA2 GTX 970 4G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | Acer 24" FHD | Benq 19" FHD
Sistema Operativo
Windows10-pro64/OpenSUSE-QL42.3/Manjaro-17.0.2-KDE
Quante pippe per una domanda di un adolescente che chiede l'output in un widget di una finestra anziché in una videata di testo... Non mi pare che abbia chiesto di costruire un'interfaccia grafica!

Purtroppo in C devi richiamare via software le specifiche librerie del sistema per visualizzare gli oggetti che ti servono. In realtà visual studio di MS rende disponibili i tools per poter utilizzare la GUI.. ma in effetti mi pare che non ci sia il C :)

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

Hobet

Utente Attivo
609
222
Hardware Utente
CPU
i5 6600k
Dissipatore
AIO H100
Scheda Madre
ASUS z170 Deluxe
Hard Disk
1 WD Blue 1 TB; evo 850 500gb
RAM
Vengeance 4x4
Scheda Video
GTX 1070ti MSI
Scheda Audio
Nope
Monitor
MG278Q
Case
750D Corsair
Internet
Fastweb 200/30
Sistema Operativo
PucyBuntu
Salve. Sono nuovo a programmare in C. So fare cose basilari, esempio usare istruzioni come if-else, switch, dichiarare variabili e stamparle a video. L'unico problema è che non mi piace che ogni volta che eseguo, anche un semplice programma, si apre nel DOS di Windows. Vorrei usare un'interfaccia grafica, anche una già creata, anche per studiare il codice. Solo che non trovo nulla online, tutti dicono la stessa cosa, cioè che è difficile, usa programmi come visual di MS. Voi sapete dove trovare un codice per una "semplice" interfaccia grafica? Per programmare uso DevC++.
Quoto quello che ha detto l'utente sopra, pare che tu abbia chiesto per fare chissà cosa. Guarda puoi usare semplicemente le librerie native di windows per fare semplici interfacce.
 

Entra

oppure Accedi utilizzando