Seite 1 von 1

wieso soll QLineEdit->text kein QString sein?

Verfasst: 9. Mai 2006 20:25
von mikro
hi,
ich habe div. QLineEdits in meinem Widget, die im Designer erzeugt wurden. In der automatisch erzeugten ui_OpenProjectDialog.h steht auch, wie erwartet:

Code: Alles auswählen

class Ui_OpenProjectDialog
{
public:
    QLineEdit *LE_Pass;
    QLineEdit *LE_User;
  usw...
in der davon abgeleiteten Klasse probiere ich ff:

Code: Alles auswählen

	QString user    = LE_User->text;
	QString pass    = LE_Pass->text;
Der Compiler beschwert sich:
ui\OpenProjectDialog.cpp:105: error: conversion from `<unknown type>' to non-scalar type `QString' requested
ui\OpenProjectDialog.cpp:106: error: conversion from `<unknown type>' to non-scalar type `QString' requested
ich verstehe das nicht: wieso ist das LE_User->text kein QString ??

Verfasst: 9. Mai 2006 20:42
von Emperor_L0ser
häng mal ein paar klammern hinter "text" :lol:

mfg Emperor_L0ser

Verfasst: 9. Mai 2006 21:10
von mikro
wieso? ist doch ein laut Klassenreferenz ein Property und keine Funktion?
[EDIT:]stimmt tatsächlich: mit text() akzeptiert ers, aber wieso?

Verfasst: 9. Mai 2006 21:25
von Emperor_L0ser
mikro hat geschrieben:wieso? ist doch ein laut Klassenreferenz ein Property und keine Funktion?
na dann lies nochmal genau durch. aus dem assitenten kopiert. text ist vielleicht ein Property, aber garantiert privat, damit nimand drin rum pfuscht.

QString QTextEdit::text () const

Returns all the text in the text edit as plain text.

See also setText().

wenn du Qt4 Programmierst, solltest du es übrigens nicht mehr benutzen, ist nur noch für Qt3 kompatibilität drin. nimm eher
QString toHtml () const
oder
QString QTextEdit::toPlainText () cons

Verfasst: 9. Mai 2006 22:22
von mikro
danke, die könnten ruhig mal gross reinschreiben, was private ist . :roll:
Aber es bleibt bei text() : ist ein QLineEdit und kein QTextEdit.

Verfasst: 10. Mai 2006 11:59
von Saiyaman
Das wäre doch auch kein guter Programmierstil, öffentliche Variablen in einer Klasse zu verwenden, stimmt's?

MfG

Verfasst: 10. Mai 2006 17:11
von Emperor_L0ser
nein, wäre es nicht, wenn jemand was von aussen verändern darf, gibt es dafür get und set methoden

das ganz nennt sich datenkapselung

mfg Emperor_L0ser