Visual Basic

C, C++, Java, ...

Re: Visual Basic

Messaggioda wakko_kid » 24/02/2012, 14:09

eltecprogetti ha scritto:Insomma,
a quanto pare sembra che nessuno sappia come fare a impostare all'avvio di una form il colore rosso di forecolor per una label, e che nessuno sappia come intercettare un click di un bottone!!!
Ognuno posta link di tutorial, ma è così complicato??
Non ci sarà una istruzione con una sintassi tipo: "Label->forecolor = ....." da scrivere da qualche parte tra i vari pezzi di codice in c?


1) è C++, non C.
2) magari non è che nessuno sappia, ma forse nessuno che sa legge un post intitolato "Visual Basic" in un forum linux... ;D. Se avessi scritto "cambiare forecolor di una label in C++/Qt" forse avresti attirato di più l'attenzione di chi programma in C++/Qt e quindi può aiutarti.
3) http://www.qtcentre.org/threads/22189-H ... ush-button , lo ho trovoato con una rapidissima ricerca google.

m_ui->pushButton_filter->setAutoFillBackground(true);
m_ui->pushButton_filter->setStyleSheet("background-color: rgb(255, 0, 0); color: rgb(255, 255, 255)");


P.S.:
Codice: Seleziona tutto
Ognuno posta link di tutorial, ma è così complicato??

e che vuoi di più? che ti facciano il tuo programma, magari a gratis? Un po' di pazienza!

Qt usa gli stylesheet per permetterti una ENORME versatilità in più. Praticamente puoi creare button con qualsiasi grafica da codice anziché dover armeggiare con immagini et similia.
Ultima modifica di wakko_kid il 24/02/2012, 18:40, modificato 1 volta in totale.
Avatar utente
wakko_kid
Sr. Member
Sr. Member
 
Messaggi: 300
Iscritto il: 20/08/2007, 21:02

Re: Visual Basic

Messaggioda eltecprogetti » 24/02/2012, 14:52

Grazie all'aiuto di "mrdebug" sono riuscito a partire e comincio a muovermi bene.

Adesso ho creato un'altra form dal progetto di partenza, e sono riuscito a rendere visibile nel Main.cpp una delle due form oppure anche entrambe.

Quello che non riesco a fare è di rendere hide la form in cui mi trovo premendo un bottone, e rendere invece visibile l'altra.

Mi aspettavo che nella routine di click del bottone, puntando alla form attuale con "ui->hide" (o qualcosa del genere) potessi renderla invisibile, ma non lo accetta. Ed inoltre non ho la più pallida idea di come indicare in questa routine che voglio rendere visibile un'altra form distinta da questa, non so come referenziarla, come accederla. Ho provato col suo nome "Form2->show" ma non ottengo nulla.

Senza rompere ancora le scatole a "mrdebug" in privato, c'è qualcuno che mi sa aiutare?

Grazie.
eltecprogetti
Newbie
Newbie
 
Messaggi: 35
Iscritto il: 23/02/2012, 10:27

Re: Visual Basic

Messaggioda wakko_kid » 24/02/2012, 17:20

Per referenziare qualcosa devi prima avere un puntatore verso questo cosa. In questo esempio il puntatore è frm2 che punta al form2

Codice: Seleziona tutto
#include "form2.h"

void Form1::Show()
{
    Form2 *frm2 = new Form2(parentOftheForm);
    frm2->show();
}


Per chiudere la finestra attuale:
Codice: Seleziona tutto
this->hide();


Ma se sei nuovo del C++, devi partire dai tutorial, altrimenti sarai su un forum a chiedere per ogni singola cosa tu debba fare.
Avatar utente
wakko_kid
Sr. Member
Sr. Member
 
Messaggi: 300
Iscritto il: 20/08/2007, 21:02

Re: Visual Basic

Messaggioda mrdebug » 24/02/2012, 20:42

A dire il vero, tranne il primo form tutti gli altri sono QDialog (modali). In questo modo metto in public "Ui::QDMioDialog *ui;", tra gli header "#include <QDialog>
#include <ui_qdmiodialog.h>".

Nella classe che lo invoca uso "QDMioDialog *Dialog= new QDMioDialog(this);" e poi "if (Dialog->exec()== QDialog::Accepted) {

Ciao ciao.
mrdebug
Sr. Member
Sr. Member
 
Messaggi: 271
Iscritto il: 23/07/2005, 7:38

Re: Visual Basic

Messaggioda eltecprogetti » 27/02/2012, 9:47

Grazie a Wakko_Kid,
funziona come mi hai detto, anche se dava errore su "parentOftheForm" che non lo trovava come valore.

Allora l'ho tolto ed ho scritto semplicemente:

Form2 *frm2 = new Form2();
frm2->show();

e così funziona.

Grazie mille.
eltecprogetti
Newbie
Newbie
 
Messaggi: 35
Iscritto il: 23/02/2012, 10:27

Re: Visual Basic

Messaggioda wakko_kid » 27/02/2012, 11:48

"parentOftheForm" non è un valore "di per sè".
Dovrebbe essere un oggetto che tu passi come parametro che indica chi è il "Genitore" del Form che ad esempio potresti utilizzare per sapere dall'interno del Form da chi è stato aperto.
Come hai visto è un paramatro opzionale.
Avatar utente
wakko_kid
Sr. Member
Sr. Member
 
Messaggi: 300
Iscritto il: 20/08/2007, 21:02

Re: Visual Basic

Messaggioda BenIgi » 15/04/2012, 8:28

Perdonatemi se m'intrometto, ma credo che tu stia sbagliando linguaggio...
Se vuoi programmare in basic (come da titolo del post) perché utilizzi QtCreator che è in c++?
A mio avviso dovresti utilizzare gambas
http://gambas.sourceforge.net/en/main.html
http://www.gambas-it.org/wp/
BenIgi
Newbie
Newbie
 
Messaggi: 8
Iscritto il: 03/01/2012, 16:36

Re: Visual Basic

Messaggioda Raam General » 29/05/2012, 18:08

Visual Basic .NET è un linguaggio per bambini, nel senso che non serve neppure essere programmatori per creare un programma con quel linguaggio.
Quando programmi in C++, che sia un programma in GUI, che sia con le librerie QT4, o GTKmm, o altro, è necessario avere una solida base di programmazione per "cavarne un ragno dal buco".
Per imparare il C++, il linguaggio più potente che esiste al mondo, col maggior numero di librerie al mondo, di solito è opportuno iniziare senza grafica, anche perché ogni linguaggio offre i suoi strumenti, e ha una sua sintassi, che all'inizio può sembrare una "porcata" rispetto al VB.NET o al Pascal ad esempio.
Invece io, sempre ad esempio, non riesco a programmare in Pascal perché quando ci provo mi sembra appunto una "porcata" e non ci capisco niente, e stiamo qui dicendo che il Pascal è molto più facile del C++, quindi è logico se non naturale che tu abbia problemi con la cosa inversa.

In ogni caso l'esperienza si acquisisce col tempo, e con Google (ove si può trovare tutto).
E infine non penso che sia di vitale importanza per il programma poter colorare lo sfondo della laberl.
Comunque c'è una differenza fondamentale tra la OOP del VB.NET e quella del C++:
- mentre in VB.NET puoi fare TextBox1.Text="quello che vuoi", in C++ non si può usare l'operatore = per i dati protetti, e quindi hai due metodi: TextBox1.setText("quello che vuoi"); e TextBox1.text();

Ora, il C++ è case sensitive, quindi TextBox1.text(); è diverso da TextBox1.Text();, mentre il VB.NET no.

Anche se io non ti consiglio di iniziare il C++ con la grafica, ti mostro alcune cose che hai chiesto (se vuoi stare in ambito visual basic puoi usare Mono, che ti offre una gran parte dei linguaggio microsoft gratuitamente, oppure gambas):

Innanzitutto, se non ce l'hai, procurati almeno l'ultima versione di QtCreator che è migliore.
Le QT non danno solo la grafica, ma anche molti potentissimi strumenti (classi) come container, stringhe e altro, molto più potenti delle STL.

Fai il nuovo progetto e ti trovi perciò con la finestra dove puoi posizionargli i controlli.
Posiziona il controllo che vuoi e poi modificane le proprietà nel menù a destra; se la proprietà che vorresti modificargli non c'è, allora devi provarci tramite codice, in ogni caso devi cercare nel manuale della libreria: quando si programma in C++ con le librerie è fondamentale avere SEMPRE sott'occhio il manuale, che te lo mette a disposizione lo stesso QtCreator nella sezione help, o in ogni caso c'è online.

Passa sulla sezione Edit, sulla sinistra così vedrai alcuni file: *.ui sono i file della finestra, *.cpp e *.h sono i file dove c'è il codice.
Se vuoi fargli fare qualcosa subito dopo che apre la finestra, metterai il codice qui:

Codice: Seleziona tutto
MainWindow::MainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   ui->setupUi(this);
   QUI<---
}


Devi prendere confidenza con la struttura di un programma in C++ e i progetti multifile (cos'è un .h e cosa il .cpp, ecc...)
Non puoi pretendere di iniziare così, io direi di partire dall'"Hello World!"
Raam General
Jr. Member
Jr. Member
 
Messaggi: 50
Iscritto il: 23/12/2011, 20:26

Re: Visual Basic

Messaggioda maxt » 15/06/2012, 19:56

scusate, approfitto della discussione
tanti anni fa, feci un programma in visual basic per gestire delle fatture, poi ho abbonato windows e quindi ho dovuto lasciare pure il visual basic

se volessi ricreare sotto linux un programma per gestire fatture (creazione fattura, elenco, ricerca ecc), quale linguaggio/programma consigliate di usare?
non mi interessa che il programma sia bello a vedersi, va bene anche che funzioni solo da terminale, basta che funzioni e sia facile da realizzare..
maxt
Sr. Member
Sr. Member
 
Messaggi: 322
Iscritto il: 27/12/2011, 10:00

Precedente

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti