[gelöst]Problem mit Gültigkeitsbereich
Verfasst: 11. November 2007 22:49
hallo,
ich stehe irgendwie auf dem Schlauch. Der Compiler meldet einen Fehler, der auf ein Problem des Gültigkeitsbereiches hinweist, und ich weiß wirklich nicht warum.
meine Konfiguration: Suse Linux 10.1, Eclipse 3.1.1 mit CDT3.0.2, QT4.2.3
1. mit Qt Designer einen Dialog erzeugt, objectName: fParams
der Dialog enthält ein QTableWidget namens fParam_list
2. uic erzeugt aus der ui-Datei paramview.ui die Datei ui_paramview.h, die verkürzt auf das wesentliche, so aussieht:
dazu mein h-File fParams.h, in dem eine Subclass mit einfacher Vererbung definiert wird:
und schließlich fParams.cpp:
Bei der letzten Zeile von fParams.cpp meldet nun der Compiler:
error: no matching function for call to ‘QTableWidget::setVerticalHeaderLabels(QStringList*)’
Das Hauptfenster, wo ich diesen Dialog aufrufen möchte, wird durch eine Klasse 'SimuDesign' dargestellt. Dort kommt eine ähnliche Fehlermeldung. Zunächst aber der Code:
Um den Dialog aufzurufen, enthält die Klassendefinition für SimuDesign im h-File des Hauptfensters :
Im cpp-File des Hauptfensters SimuDesign rufe ich durch Klicken auf einen Button den entsprechenden Slot auf:
In der letzten Zeile (fParList.exec() ) meldet der Compiler:
error: request for member ‘exec’ in ‘((SimuDesign*)this)->SimuDesign::fParList’, which is of non-class type ‘fParameter*’
Das verstehe ich nicht. fParList ist doch im h-file als type 'fParameter' definiert, oder was?
Hat jemand Tipps, um den Knoten zu lösen?
Ich wäre sehr dankbar dafür.
ich stehe irgendwie auf dem Schlauch. Der Compiler meldet einen Fehler, der auf ein Problem des Gültigkeitsbereiches hinweist, und ich weiß wirklich nicht warum.
meine Konfiguration: Suse Linux 10.1, Eclipse 3.1.1 mit CDT3.0.2, QT4.2.3
1. mit Qt Designer einen Dialog erzeugt, objectName: fParams
der Dialog enthält ein QTableWidget namens fParam_list
2. uic erzeugt aus der ui-Datei paramview.ui die Datei ui_paramview.h, die verkürzt auf das wesentliche, so aussieht:
Code: Alles auswählen
class Ui_fParams
{
public:
...
QTableWidget *fParam_list;
...
void setupUi(QDialog *fParams)
{
... }
}
namespace Ui {
class fParams: public Ui_fParams {};
}
Code: Alles auswählen
...
#include <QDialog>
#include "ui_paramview.h"
class fParameter : public QDialog
{
Q_OBJECT
public:
fParameter(QWidget *parent=0);
QStringList paramNames;
private:
Ui::fParams uifP;
...
}
Code: Alles auswählen
...
#include "fParams.h"
fParameter::fParameter(QWidget *parent) : QDialog(parent) {
uifP.setupUi(this);
...
paramNames << "param1" << "param2" << "param3" << "param4" << "param5"
<< "param6" << "param7" << "param8" << "param9" << "param10";
uifP.fParam_list->setVerticalHeaderLabels(¶mNames); //<- hier kommt der Fehler
...
}
error: no matching function for call to ‘QTableWidget::setVerticalHeaderLabels(QStringList*)’
Das Hauptfenster, wo ich diesen Dialog aufrufen möchte, wird durch eine Klasse 'SimuDesign' dargestellt. Dort kommt eine ähnliche Fehlermeldung. Zunächst aber der Code:
Um den Dialog aufzurufen, enthält die Klassendefinition für SimuDesign im h-File des Hauptfensters :
Code: Alles auswählen
...
void on_pushButtFParam_clicked(); // autoconnect
...
fParameter *fParList; //
...
Code: Alles auswählen
...
void SimuDesign::on_pushButtFParam_clicked() {
fParList.exec(); //<- hier kommt der Fehler
}
error: request for member ‘exec’ in ‘((SimuDesign*)this)->SimuDesign::fParList’, which is of non-class type ‘fParameter*’
Das verstehe ich nicht. fParList ist doch im h-file als type 'fParameter' definiert, oder was?
Hat jemand Tipps, um den Knoten zu lösen?
Ich wäre sehr dankbar dafür.