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.