November 11, 2011

manang manang
Lab Rat
6 posts

principiante delle qt [risolto]

 

salve,
domanda stupida, sicuramente trattata, ma non ho trovato nulla su internet, o magari cercavo in altre forme.
ho realizzato una gui, quindi un file con estensione .ui con una textEdit.
nel mio main viene generato un oggetto a questa ui.
Come posso scrivere dentro questa gui?
grazie mille
Angelo

12 replies

November 11, 2011

Luca Luca
Ant Farmer
589 posts

Ciao, secondo me dovresti iniziare da qualche bella guida o dalla documentazione ufficiale.

Un buon punto di partenza potrebbe essere questo link [doc.qt.nokia.com] .

November 11, 2011

fluca1978 fluca1978
Ant Farmer
524 posts

Qualcosa tipo:

  1. ui->myTextEdit->setText("Hello World");

dovrebbe funzionare. Se ho compreso il tuo dubbio….

November 11, 2011

manang manang
Lab Rat
6 posts

è qualcosa del genere, ma ancora non ci siamo.
mi scuso per la domanda stupida, ma mi serve l’incipit per cominciare
Spiego meglio il problema.
ho creato già un form statico (ho un file chiamato mainwindows.ui.
in questo form ho un textedit. ora ci voglio scrivere sopra.
p.s. ho già visto quello che mi hai postato, ma in quel modo creo una textedit in modo dinamico.
Grazie mille
Angelo

November 12, 2011

fluca1978 fluca1978
Ant Farmer
524 posts
manang wrote:
ho creato già un form statico (ho un file chiamato mainwindows.ui. in questo form ho un textedit. ora ci voglio scrivere sopra. p.s. ho già visto quello che mi hai postato, ma in quel modo creo una textedit in modo dinamico.

Forse sono io che non capisco il problema. Tu hai il tuo form, con la text edit che avrà nome “text1” o qualcosa del genere.
Se da codice accedi all’oggetto text edit come indicato sopra, ossia

  1. ui->text1->tex(); // ottieni il testo
  2. ui->text1->setTex("CIao"); // scrivi nella text edit

puoi cambiare lo stato e quindi anche il contenuto della text edit. CHe non viene generata dinamicamente, è già presente nel form.

November 12, 2011

manang manang
Lab Rat
6 posts

scusami ancora se sono banale.
riprovo a riformulare.
ho creato un nuovo progetto con qt creator, dopo ho creato una “Qt Designer Form Class”.
in questo nuovo form ho inserito una text edit.
il form si chiama mainwindow.ui associato alla classe MainWindow.
il form ha al suo interno una texEdit chiamata textEdit.
nel main faccio come segue:
MainWindow Ui;
Ui.show(); //per mostrare il form creato.

ora voglio scrivere in quella text edit. Ovviamente con i metodi da voi descritti non ci riesco. non vengono elencati gli attributi e/o i metodi dall’IDE.
Grazie mille

November 14, 2011

marcoB marcoB
Ant Farmer
167 posts

Ui.textEdit->setText(“Ui maiuscolo :) (forse)”);

e poi leggi il link di Luca e magari anche questo [doc.qt.nokia.com]

ciao

November 14, 2011

manang manang
Lab Rat
6 posts

http://db.tt/ekzKiMPZ questo è il progetto (non è niente di che).
scrivetemi sulla text edit, ormai è diventato principio:) come mi indicate non funziona.
mi manca questo piccolo primo passo per farmi divertire.
grazie mille!

November 14, 2011

marcoB marcoB
Ant Farmer
167 posts

in main.cpp devi fare

ui.show();

altrimenti non salta fuori la MainWindow :)
app è una QApplication che non è derivata di QWidget quindi non puoi fare app.show().
In MainWindow::MainWindow(), dopo aver fatto

  1. ui->setupUi(this);

puoi assegnare il testo al textedit:
  1. ui->textEdit->setText ("CAIO");

November 14, 2011

manang manang
Lab Rat
6 posts

si, c’era il show, ma l’avevo cancellato nelle prove fatte.
quindi io non posso scrivere nel main?devo fare qualche metodo nella classe per prendere la textedit?
grazie mille.

November 14, 2011

marcoB marcoB
Ant Farmer
167 posts

quindi io non posso scrivere nel main?devo fare qualche metodo nella classe per prendere la textedit?

esatto. Se vai a vedere, ui è privata

November 14, 2011

fluca1978 fluca1978
Ant Farmer
524 posts
manang wrote:
quindi io non posso scrivere nel main?devo fare qualche metodo nella classe per prendere la textedit?

Non capisco bene che vantaggio ci sia nello scrivere codice direttamente nel main per agire sulla interfaccia grafica. Considera che si tratta di programmazione ad oggetti, e il bello è proprio avere un oggetto “che fa tutto” per inizializzarsi. Se il tuo problema è ad esempio passare un parametro da riga di comando alla finestra principale (o ai suoi widget) inserisci i parametri nel costruttore della main window (se sono pochi) o dal main chiama una serie di setter subito dopo la costruzione della finestra (e magari prima di visualizzarla).

November 14, 2011

manang manang
Lab Rat
6 posts

Mi mancava questo aspetto.non consideravo il private.grazie mille!posso dire di aver risolto

 
  ‹‹ Guida Online Italiana - Esiste? Dove?      Prima Conferenza Italiana su Qt - Firenze 27/28 Gennaio ››

You must log in to post a reply. Not a member yet? Register here!