Anfängerfrage: Werteübergabe
-
Ich programmiere mit QT.
Mein Programm besteht aus 5 Dateien. MainWindow cpp/h, Control cpp/h und main.cpp. Die Header dateien sind jeweils included
In den Header Dateien ist je eine Klasse definiertNun habe ich in der Klasse Control einige Button/SpinBoxen/EditLines deklariert dessen Werte sich verändern sollen, wenn ich Funktion start() aus der Klasse MainWindow.
Um in der Klasse MainWindow an meine Spinboxen die in der Klasse Control deklariert sind zu kommen bediene ich mich dem Punktoperator.
zb:control.lineStartSpinBox->setRange(0, 100);dazu habe ich uner public in der header datei der Klasse Control
Control control;eingefügt.
der Compiler schmeisst mir folgenden Fehler aus, den ich nicht verstehen und somit auch nicht lösen kann.
mainwindow.cpp:28: error: no matching function for call to ‘Control::Control()’ control.h:41: note: candidates are: Control::Control(const QString&, QWidget*) control.h:35: note: Control::Control(const Control&a
-
Control hat wohl keinen lehren Konstruktor. Musst halt einen von den drunter angegebenen verwenden
-
ds schrieb:
Control hat wohl keinen lehren Konstruktor. Musst halt einen von den drunter angegebenen verwenden
dies hier ist mein Kontruktor
Control(const QString &title, QWidget *parent = 0);und der Kompiler Errror liegt hier
MainWindow::MainWindow() : QMainWindow()es rasselt nur noch mehr Fehler wenn ich versuche zu verändern

-
DerBert schrieb:
ds schrieb:
Control hat wohl keinen lehren Konstruktor. Musst halt einen von den drunter angegebenen verwenden
dies hier ist mein Kontruktor
Control(const QString &title, QWidget *parent = 0);Du hast keinen Defaultkonstruktor (Konstruktor ohne Parameterliste), daher kannst du auch kein Objekt ohne Parameter beim generieren.
Control c; // <-- Ruft den Standardkonstruktor aus => existiert nicht => Fehler Control c("Titel"); // <-- Ruft deinen Konstruktor aus => okaycu André
-
asc schrieb:
Control c; // <-- Ruft den Standardkonstruktor aus => existiert nicht => Fehler Control c("Titel"); // <-- Ruft deinen Konstruktor aus => okaycu André
Ok Danke schonmal Ich habe einen Folgefehler oder einen neuen Fehler..
error: ‘((MainWindow*)this)->MainWindow::c’ does not have class typeden Konstrukor habe ich mit
Control c(const QString &title);ausgerufen,denn
Control c("Titel");ergabe eine weitere Fehlermeldung
-
DerBert schrieb:
den Konstrukor habe ich mit
Control c(const QString &title);ausgerufen,denn
Control c("Titel");ergabe eine weitere Fehlermeldung
Du kannst einen Konstruktor nicht mit einem Typ aufrufen, wenn muss es ein Wert sein. Ich kenne QString nicht, aber vielleicht probierst du es mal so:
QString text = "Titel"; Control c(text);Und wenn es hierbei einen Fehler gibt würde mich davon mal der genaue Wortlaut interessieren.
cu André
-
asc schrieb:
QString text = "Titel"; Control c(text);Und wenn es hierbei einen Fehler gibt würde mich davon mal der genaue Wortlaut interessieren.
cu André
Ok Danke,
Wenn ich den Konstruktor (wie oben genannt) in der Funktion aufrufe bekomme ich keinen Compiler fehler mehr.
Doch leider funktioniert die Wertzuweisung nicht.Was vorher mit
SpinBox->setValue(value);funktioniert hat. Funktioiert mit
c.SpinBox->setValue(value);noch nicht.