crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Компилируется, но не запускается
Гость_xu-user_*
сообщение 22.6.2011, 10:29
Сообщение #1





Гости








    


Доброго времени суток.
Делал пример по книжке Бланшет-Саммерфильд, компилируется нормально, но при запуске выдаёт "прекращение работы программы" Что не так, понять не могу.
Вот исходники:

хедер окна диалога:
#ifndef SORTDIALOG_H
#define SORTDIALOG_H

#include <QDialog>
#include "ui_sortdialog.h"

class SortDialog:public QDialog, public Ui::SortDialog
{
    Q_OBJECT;

    public:
        SortDialog(QWidget* parent = 0);
};

#endif // SORTDIALOG_H


Его реализация:
#include <QtGui>
#include "sortdialog.h"

SortDialog::SortDialog(QWidget *parent)
    :QDialog(parent)
{
    secondaryGroupeBox->hide();
    tertiaryGroupeBox->hide();

    layout()->setSizeConstraint(QLayout::SetFixedSize);

}


Маин:
#include <QtGui/QApplication>
#include "sortdialog.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    SortDialog *dialog = new SortDialog;
    dialog->show();
    return app.exec();
}


В чем я ошибся ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 22.6.2011, 10:47
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


откуда берутся указатели secondaryGroupeBox, tertiaryGroupeBox, layout() и на что они, по вашему, указывают?

Сообщение отредактировал silver47 - 22.6.2011, 10:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xu-user
  опции профиля:
сообщение 22.6.2011, 10:55
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 18
Регистрация: 22.6.2011
Пользователь №: 2761

Спасибо сказали: 0 раз(а)




Репутация:   0  


class SortDialog:public QDialog, public Ui::SortDialog
Вот отсюда думал, если наследовать "Ui::SortDialog" то можно обращаться к элементам формы сразу по имени. Qt мне сразу дописывал их названия, вот и решил что видит значит.
не так ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 22.6.2011, 11:04
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


У Вас есть форма этого диалога, на котором Вы разместили в дизайнере эти элементы?

В общем так:
если использовался дизайнер для создания формы (имеет место быть файл sortdialog.ui в директории с проектом), то:
sortdialog.h дополниться:
namespace Ui {
    class SortDialog;
}
// разрыв
private:
    Ui::SortDialog *ui;

конструктор sortdialog.cpp будет такой:
SortDialog::SortDialog(QWidget *parent) :  QWidget(parent),  ui(new Ui::SortDialog)
{
    ui->setupUi(this);

    // теперь Ваш текс:
    ui->secondaryGroupeBox->hide();
    ui->tertiaryGroupeBox->hide();
}


Если дизайнер НЕ использовался, то сначала Вам необходимо создать объекты, на которые Вы указателями будите ссылаться, иначе указатель указывает на произвольную область памяти. Когда Вы пытаетесь с ней что-либо делать, то ОС закрывает Ваше приложение.

Вот архив с исходником проекта из этой книги. У Вас, видимо, отсутствует файл ui:

Сообщение отредактировал silver47 - 22.6.2011, 11:11
Прикрепленные файлы
Прикрепленный файл  sort.zip ( 2,66 килобайт ) Кол-во скачиваний: 132
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xu-user
  опции профиля:
сообщение 22.6.2011, 11:19
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 18
Регистрация: 22.6.2011
Пользователь №: 2761

Спасибо сказали: 0 раз(а)




Репутация:   0  


Да, использовался дизайнер. Сделал как написано, жалуется на строчку "ui->setupUi(this);"
..\ExtendedDialog_!\sortdialog.cpp: In constructor 'SortDialog::SortDialog(QWidget*)':

..\ExtendedDialog_!\sortdialog.cpp:8: error: no matching function for call to 'Ui::SortDialog::setupUi(SortDialog* const)'

./ui_sortdialog.h:69: note: candidates are: void Ui_SortDialog::setupUi(QMainWindow*)


типы не совпадают, хотя в примерах видел точно такую же картину и всё работает. :mellow:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 22.6.2011, 11:34
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Запустите то, что я прислал. Пришлите сюда свой вариант, который не работает, поглядим.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xu-user
  опции профиля:
сообщение 22.6.2011, 11:41
Сообщение #7


Студент
*

Группа: Новичок
Сообщений: 18
Регистрация: 22.6.2011
Пользователь №: 2761

Спасибо сказали: 0 раз(а)




Репутация:   0  


То что вы прислали - работает. Но что не так у меня я не понимаю... всё тоже самое =\
Вот мой проект, интересно очень в чем проблема.
Прикрепленный файл  ExtendedDialog__.zip ( 4,3 килобайт ) Кол-во скачиваний: 174
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 22.6.2011, 11:49
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


а что за класс MainWindow? Реализация его есть, а заголовочника нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xu-user
  опции профиля:
сообщение 22.6.2011, 11:57
Сообщение #9


Студент
*

Группа: Новичок
Сообщений: 18
Регистрация: 22.6.2011
Пользователь №: 2761

Спасибо сказали: 0 раз(а)




Репутация:   0  


Нету же ни того ни другого :blink: Где вы его увидели ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 22.6.2011, 12:10
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Ошибка в файле UI.
Вы Выбрали какой шаблон при создании файла UI? Наверняка, по-умолчанию - QMainWindow :) вот отсюда и все грабли.

Сообщение отредактировал silver47 - 22.6.2011, 12:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.12.2024, 20:42