Название: ошибка при построении диалога
Отправлено: kopernik21187 от Апрель 15, 2010, 16:15
вопрос такой: я создаю диалоговое окно, в конструктор которого нужно передать строковую переменную //findDialog.h #ifndef FINDDIALOG_H #define FINDDIALOG_H
#include <QDialog>
class QCheckBox; class QLabel; class QLineEdit; class QPushButton;
class FindDialog : public QDialog { Q_OBJECT
public: FindDialog(QWidget *parent = 0,const QString &fileName);
signals: void findNext(const QString &str, Qt::CaseSensitivity cs); void findPrevious(const QString &str, Qt::CaseSensitivity cs);
private slots: void findClicked(); void enableFindButton(const QString &text);
private: QLabel *label; QLineEdit *lineEdit; QCheckBox *caseCheckBox; QCheckBox *backwardCheckBox; QPushButton *findButton; QPushButton *closeButton; };
#endif
реализация такая #include <QtGui>
#include "finddialog.h"
FindDialog::FindDialog(QWidget *parent,const QString &fileName) : QDialog(parent) { label = new QLabel(fileName); lineEdit = new QLineEdit; label->setBuddy(lineEdit); ...
и в программе пытаюсь создать диалог модальным окном так: void DirectoryViewer::get_path() { QModelIndex index = treeView->currentIndex(); if (!index.isValid()) return; FindDialog dialog(this,model->filePath(index)); dialog.exec(); }
выдается сообщение In file included from directoryviewer.cpp:4: finddialog.h:16: error: default argument missing for parameter 2 of ‘FindDialog::FindDialog(QWidget*, const QString&)’ make: *** [directoryviewer.o] Ошибка 1
когда я делал конструктор FindDialog только с параметром parent все работает нормально, но мне при построении окна нужно именно передать в него параметр. подскажите, пожалуйста, что я не правильно сделал. С уважением, Константин
Название: Re: ошибка при построении диалога
Отправлено: pastor от Апрель 15, 2010, 16:28
Замени C++ (Qt) FindDialog(QWidget *parent = 0,const QString &fileName);
на C++ (Qt) FindDialog(QWidget *parent, const QString &fileName);
Параетры по умолчанию должны идти последними.
Название: Re: ошибка при построении диалога
Отправлено: Akaiten от Апрель 15, 2010, 16:29
Ещё варианты C++ (Qt) FindDialog(QWidget *parent,const QString &fileName);
или C++ (Qt) FindDialog(QWidget *parent,const QString &fileName = QString());
или C++ (Qt) FindDialog(const QString &fileName, QWidget *parent = 0);
Название: Re: ошибка при построении диалога
Отправлено: kopernik21187 от Апрель 15, 2010, 16:58
Akaiten , pastor Огромное спасибо, помогло! :)
|