Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-04-2010, 17:26   #1
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8271
[C++] Inserire icona "Salva" su bottone (MFC VisualC++)

Sto imparando a utilizzare le MFC che VisualStudio 6 mette a disposizione per fare le GUI. Non riesco a capire come mettere un'icona su un pulsante (voglio creare il pulsantino SALVA e APRI con le stesse icone di windows).

Dando un'occhiata ai file sorgente non riesco a trovare il file dove vengono dichiarati i bottoni e tutta la GUI, magari servono quelli non lo sò.

Come si fà?
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 15-04-2010, 20:48   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Welcome to the strange world of MFC
http://www.codeproject.com/KB/buttons/iconbutton.aspx

Tutto questo codice per fare un pulsante con una icona, cose che gli altri framework ti offrono gratuitamente.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-04-2010, 21:20   #3
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8271
OOOHH, allora visto che ti indendi di code::blocks mi devi aiutare ad installarlo xkè io ci ho già provato 2 volte ma non ci riesco. A quanto pare devo usare le WxWidget (giusto?) xò mi blocco al punto della compilazione dei sorgenti di questo plugin, xkè mi dà errori strani e mi si ferma.

Cosa intendi per altri framework, io sono alle prime armi e ho fatto con ciò che avevo!

Mi aiuteresti?
__________________
System Failure

Ultima modifica di Perseverance : 15-04-2010 alle 21:28.
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 00:08   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Vuoi usare un framework diverso da MFC ? http://qt.nokia.com/downloads
Ci sono IDE e librerie.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 07:20   #5
theking0
Member
 
L'Avatar di theking0
 
Iscritto dal: Jul 2007
Messaggi: 45
Quote:
Originariamente inviato da cionci Guarda i messaggi
Vuoi usare un framework diverso da MFC ? http://qt.nokia.com/downloads
Ci sono IDE e librerie.
Come dice cionci puoi usare le Qt di Nokia, sono multi piattaforma e hanno una curva di apprendimento abbastanza ripida (le impari in fretta).

se scarichi questo pacchetto e lo installi ti ritrovi già tutto pronto per sviluppare: SDK e QtCreator (un ottimo IDE) il tutto già configurato.
theking0 è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 11:15   #6
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8271
Ti ringrazio molto, mi metterò a studiare questo Qt SDK. Intanto però ho perseverato nel cercare risposta sulle MFC e ho capito che devo ridefinire il metodo disegna_bottone, però sono davvero criptiche le MFC. Ho seguito questa guida http://www.codeguru.com/cpp/controls...icle.php/c5157

Ho installato l'SDK completo di quel programma che mi hai linkato, mi ha portato via mezz'ora per l'installazione ma mi pare un bel programmino per sviluppare in c++ GUI.

__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 11:28   #7
theking0
Member
 
L'Avatar di theking0
 
Iscritto dal: Jul 2007
Messaggi: 45
Quote:
Originariamente inviato da Perseverance Guarda i messaggi
Ti ringrazio molto, mi metterò a studiare questo Qt SDK. Intanto però ho perseverato nel cercare risposta sulle MFC e ho capito che devo ridefinire il metodo disegna_bottone, però sono davvero criptiche le MFC. Ho seguito questa guida http://www.codeguru.com/cpp/controls...icle.php/c5157
le MFC ormai sono più che deprecate, è un framework sviluppato quasi 20 anni fa e che nel tempo la sua struttura non è pressoché cambiata, quindi capirai anche tu che dopo tutti questi anni le tecnologia si evolvono e migliorano.

Quello che in MFC fai in una giornata di lavoro con le Qt lo fai in un decimo del tempo, senza contare poi che le MFC NON sono portabili, le Qt SI.

Quote:
Ho installato l'SDK completo di quel programma che mi hai linkato, mi ha portato via mezz'ora per l'installazione ma mi pare un bel programmino per sviluppare in c++ GUI.
Si, effettivamente ci mette un po a installare il tutto, ma una volta finito non devi configurare più nulla
theking0 è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 11:37   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da theking0 Guarda i messaggi
Quello che in MFC fai in una giornata di lavoro con le Qt lo fai in un decimo del tempo
Forse meno. Con gli style sheet cambiare il colore dei controlli è immediato ad esempio.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 11:43   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Fai conto che quello che hai trovato scritto su quella pagina per cambiare il colore dello sfondo e del testo con le Qt si fa così:

ui->pushButton->setAutoFillBackground(true);
ui->pushButton->setStyleSheet("background-color: rgb(255, 0, 0); color: rgb(255, 255, 255)");
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 12:04   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Per farti apprezzare ancora di più, crea un nuovo progetto con Qt, metti qualche pulsante.
Ora apri il main e modificalo così:
Codice:
#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    a.setStyleSheet("QPushButton {"\
       "background-color: red;"\
       "border-style: outset;"\
       "border-width: 2px;"\
       "border-radius: 10px;"\
       "border-color: beige;"\
       "font: bold 14px;"\
       "min-width: 10em;"\
       "padding: 6px;"\
       "};"\
       "QPushButton:pressed {"\
       "background-color: rgb(224, 0, 0);"\
       "border-style: inset;"\
       "};");
    MainWindow w;
    w.show();
    return a.exec();
}
Il bello è che lo puoi anche cambiare a runtime

Ultima modifica di cionci : 16-04-2010 alle 12:12.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 14:00   #11
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8271
UeeUee calma, devo ancora capire dove sono i bottoni per salvare e aprire i progetti E' un'interfaccia nuova e mi sento spaesato al momento. Gli ho dato un'occhiata e il programma mi piace. Peccato che impieghi 3 minuti a compilarmi un file banalissimo (sarà anche colpa del mio procio AMD Thunderbird a 800Mhz). Non c'è un compilatore più lesto?
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 14:18   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
3 minuti sono tantini. Mi sembra strano che ci metta così tanto. Prova a liberare un po' di memoria. Quanta ram hai ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 18:02   #13
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8271
768 MB di ram, anche quando provai il WxDevC++ col mingw32 i tempi erano quelli. Cosa pensi che sia?
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 18:07   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Perseverance Guarda i messaggi
768 MB di ram, anche quando provai il WxDevC++ col mingw32 i tempi erano quelli. Cosa pensi che sia?
Forse ti swappa ? Mi sembrano veramente esagerati. Su Linux ci mette 10 secondi a compilare un progetto. Anche su Windows non mi sembrava che fossero così alti.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 18:27   #15
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8271
E' davvero strano, ho riavviato e creato un progetto Qt4 GUI, ora in 20 secondi lo compila e lo avvia. Probabilmente faceva così xkè non avevo riavviato il pc da anni. Cmq non ho swap, 768MB di RAM pura.
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2010, 18:33   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Perseverance Guarda i messaggi
Cmq non ho swap, 768MB di RAM pura.
Fai molto male...è per quello che ti si rallentava. A lungo andare si verifica il fenomeno chiamato frammentazione della Ram. In pratica i programmi fanno fatica a trovare spazio contiguo per allocare memoria. Per fare questo si devo far girare complessi algoritmi di mappatura e spostamento.
Se attivi lo swap non hai di questi problemi, perché periodicamente i programmi vengono scaricati comunque su disco e la ram resta sempre molto più compattata.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v