Russian Qt Forum

Qt => Общие вопросы => Тема начата: kopernik21187 от Апрель 15, 2010, 16:15



Название: ошибка при построении диалога
Отправлено: 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  Огромное спасибо, помогло!  :)