Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Problem med Qt 4 ver 4.8.0 (64 bit)

Jag åller på att leka med Qt 4 och har fastnad på att läsa innehållet i ett textfält.

Här är programmet:

<code>

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <qmessagebox.h>
#include <qstring.h>
#include <QLineEdit>
#include <QtGui>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    exit(0);
}

void MainWindow::on_actionOm_PROV_triggered()
{
    QMessageBox::information( this, "Om PROV",
            "PROV är ett test av Qt"
                    " för Linux.\n"
                                "(C) 2012 av Jan-Gunnar Pihlgren\n"
                    "2012-06-17\n"
                         "Version: Test\n"    );

}

void MainWindow::on_lineEdit_returnPressed()
{
    textLineEdit = new QLineEdit;
    QString indata = textLineEdit->text();
    /*indata = lineEdit->text();*/
}

</code>

JAg får följande felmeddelande som jag  inte förstår hur jag ska rätta till:

/home/jan/Development/Qt/prov-build-desktop-Qt_in_PATH_Release/../prov/mainwindow.cpp:39: error: 'textLineEdit' was not declared in this scope

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

FoHs bild

textLineEdit har väl inte deklarerats korrekt. Du måste första skapa variabeln (deklarera), dvs något i stil med

QLineEdit textLineEdit = new QLineEdit;

På samma vis som du gjort med QString på raden efter alltså.

Jag tycker skapandet av gränssnittet ser lite klent ut, men jag vet inte hur Qt fungerar.

chnaons bild

 Hej,

Det ser ut som du använt qt-designer eller liknande för ditt GUI?

QT sköter det mesta när det gäller GUI:et och du inkluderar det i filen #include "ui_mainwindow.h".

För att komma åt data i textLineEdit så anropar du ui->textLineEdit->text(). 

Raden textLineEdit = new QLineEdit; behövs således inte... QT sköter all initiering av dina QUI-komponeneter..

 

Samma om om du vill ändra texten ex, ui->textLineEdit->setText("Ny text") om jag kommer ihåg rätt.

 

 

JanPihlgrens bild

Tack!

Lösningen var ui-> som behövdes läggas till.

Nu förstår jag lite till Wink

// Jan P

FoHs bild

Samma här Tongue