Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » LineEdit aauslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.06.2004, 07:36 Uhr
Melcho



Hallo!

Ich habe folgendes Problem! Unswar versuche ich per Quelltext auf den Text eines LineEdits zuzugreifen. Wenn ich das Programm dann allerdings ausführe und versuche den Text auslesen zu lassen, dann stürzt das Programm ab.

C++:
QString text1;
    text1=(host_eingabe->text()); //host_eingabe --> Name des LineEdit
    QMessageBox::information( this, "Application name",text1);


Wäre nett, wenn mir jemand helfen könnte.

Dieser Post wurde am 17.06.2004 um 07:37 Uhr von Melcho editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.06.2004, 12:23 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


öhm wobei stürzt der denn genau ab...
hab mit Qt schon lange nix mehr gemacht aber dein


C++:
text1=(host_eingabe->text());


müsste doch noch in ordung sein...
hast du mal versucht text1 einfach auf konsole auszugeben... das müsste er doch noch schaffen...
ich glaub das ging z.b. irgendwie so wenn ichs noch richtig in erinnerung habe

C++:
printf("%s\t%s\n",host_eingabe->text().latin1(),text1.latin1());


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.06.2004, 13:08 Uhr
Melcho



Er stürzt dann ab, wenn ich die Methode ausführe, in der der Quelltext steht. Und auf die Konsole krieg ich das auch nicht ausgegeben, da stürzt er auch ab.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.06.2004, 13:14 Uhr
typecast
aka loddab
(Operator)


Schau mal nach, ob du host_eingabe auch mit new angelegt hast.

Wenn du das gemacht hast, dann solltest du wohl mal den gesammten Code der Methode posten, denn hier kann ich leider keine andere Fehlermöglichkeit entdecken.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.06.2004, 14:14 Uhr
Melcho



Hier ist mein Quelltext, vielleicht könnt ihr den Fehler ja jetzt finden!

C++:
#include <qapplication.h>
#include <qvbox.h>
#include <qstring.h>
#include <qfileinfo.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qfont.h>
#include <qsqldatabase.h>
#include <qdatatable.h>
#include <qsqlcursor.h>
#include <qstring.h>    
#include <qmessagebox.h>
#include <qsqlquery.h>
#include <qlineedit.h>
#include <qlistbox.h>
#include <qgroupbox.h>
#include <qdatastream.h>

#include "configform.h"

ConfigForm::ConfigForm( QWidget *parent=0, const char *name=0, bool modal=TRUE, WFlags f=0)
{
    setGeometry (100, 100, 500, 500);
    setCaption( "Einstellungen" );

    setOKButton("Schließen");
    setApplyButton("Speichern");
    connect( this, SIGNAL( applyButtonPressed() ), this, SLOT( save() ) );
    
    Tab1();
    Tab2();
    Tab3();
    
    show();
}

void ConfigForm::Tab1()
{
    QGroupBox *tab1 = new QGroupBox(this);

    QLabel * lb_host= new QLabel("Host auf der die Datenbank läuft",tab1);
    lb_host->setGeometry(10,10,280,20);
    QLineEdit * host_eingabe= new QLineEdit("",tab1);
    host_eingabe->setGeometry(300,10,160,20);
    
    QLabel * lb_dname= new QLabel("Der Name von Ihrer Datenbank",tab1);
    lb_dname->setGeometry(10,34,280,20);
    QLineEdit * dname_eingabe= new QLineEdit("",tab1);
    dname_eingabe->setGeometry(300,34,160,20);

    QLabel * lb_user= new QLabel("User mit geeignet Rechten",tab1);
    lb_user->setGeometry(10,58,280,20);
    QLineEdit * user_eingabe= new QLineEdit("",tab1);
    user_eingabe->setGeometry(300,58,160,20);    

    QLabel * lb_pw= new QLabel("Passwort für diesen User",tab1);
    lb_pw->setGeometry(10,82,280,20);
    QLineEdit * pw_eingabe= new QLineEdit("",tab1);
    pw_eingabe->setEchoMode(QLineEdit::Password);
    pw_eingabe->setGeometry(300,82,160,20);

    QLabel * lb_table= new QLabel("Tablen innerhalb der von Ihnen  gewählten Datenbank",tab1);
    lb_table->setGeometry(10,130,400,20);

    QListBox * t_auswahl= new QListBox(tab1);
    t_auswahl->setGeometry(300,160,160,100);
    t_auswahl->setSelectionMode(QListBox::Multi);
    
    QPushButton * BtnTable = new QPushButton( "Tabellen", tab1 );
    BtnTable->setGeometry( 200,350,100,30 );
    QObject::connect( BtnTable, SIGNAL( clicked() ), qApp, SLOT (daten_lesen()) );

    addTab( tab1, "Datenkonfiguration" );
}

void ConfigForm::Tab2()
{
    QVBox * tab2 = new QVBox( this );
    addTab( tab2, "Ansichtsoption" );
}

void ConfigForm::Tab3()
{
    QVBox * tab3 = new QVBox( this );
    addTab( tab3, "Grafikoption" );
}

void ConfigForm::save()
{  
    QString text1;
    text1=host_eingabe->text();  
    QMessageBox::information( this, "Application name",host_eingabe->text());
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.06.2004, 15:52 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


öhm du legst die ganzen poitner ja local in deiner Tab1 an...
das heisst die existieren dann auch nicht mehr wenn die methode durchgelaufen ist, weil die vom stack geräumt werden... du hast dann auch schöne speicherlöcher weil der mit new allokierte speicher in der gegend rumoxidiert ohne das du noch drauf zugreifen kannst...

du musst die teile als membervariable anlegen dann funzt das bestimmt auch...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.06.2004, 17:40 Uhr
typecast
aka loddab
(Operator)


Nochmal öhm. Soll das überhaupt compilieren? host_eingabe ist doch nur innerhalb void ConfigForm::Tab1() deklariert.

Ich vermute mal, dass du in der Deklaration von ConfigForm (also in der configform .h)host_eingabe deklariert hast.

Dieses host_eingabe wird nie mit new angelegt, sondern nur ein lokales host_eingabe.

Wenn das so ist, dann schreib in ConfigForm::Tab1() statt


C++:
QLineEdit* host_eingabe = new QLineEdit(...);



einfach


C++:
host_eingabe = new QLineEdit(...);



Dann sollte es funktionieren.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
18.06.2004, 07:33 Uhr
Melcho



Cool! Danke Leute, hab es hinbekommen!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: