Russian Qt Forum
Ноябрь 24, 2024, 04:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: ошибка при построении диалога  (Прочитано 4991 раз)
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 все работает нормально, но мне при построении окна нужно именно передать в него параметр. подскажите, пожалуйста, что я не правильно сделал. С уважением, Константин
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Апрель 15, 2010, 16:28 »

Замени

Код
C++ (Qt)
FindDialog(QWidget *parent = 0,const QString &fileName);

на

Код
C++ (Qt)
FindDialog(QWidget *parent, const QString &fileName);

Параетры по умолчанию должны идти последними.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Akaiten
Гость
« Ответ #2 : Апрель 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);
 
Записан
kopernik21187
Гость
« Ответ #3 : Апрель 15, 2010, 16:58 »

Akaiten , pastor  Огромное спасибо, помогло!  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.15 секунд. Запросов: 23.