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!
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
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.
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.
Tack!
Lösningen var ui-> som behövdes läggas till.
Nu förstår jag lite till
// Jan P
Samma här