crossplatform.ru

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

IvanYuS
  опции профиля:
сообщение 2.8.2009, 15:11
Сообщение #1


Новичок


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

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




Репутация:   0  


программа состоит из двух форм, первая MainForm содержит кнопку Input_Data, которая вызывает другую форму InputForm, которая содержит только кнопку QuitButton, код обработки нажатия на Input_Data:
void MainForm::on_Input_Data_clicked()
{
    InputForm *inputform = new InputForm;
    inputform->show();
    inputform->activateWindow();
};

на второй форме клик на кнопке QuitButton обрабатывается так
void InputForm::on_QuitButton_clicked()
{
    QWidget * papa = parentWidget();
    QString str = papa->metaObject()->className();
    QuitButton->setText(str);
};

Больше на формах ничего нет. Программа компилится, первая кнопка работает нормально - появляется вторая форма, при нажатии на вторую кнопку программа вылетает с ошибкой segmentation fault, мне кажется я неправильно обращаюсь с указателем papa, подскажите учащемуся пожалуйста в чем ошибка и как правильно тут поступить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
den'ka
  опции профиля:
сообщение 2.8.2009, 15:36
Сообщение #2


Новичок


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

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




Репутация:   0  


Ты бы код привел в котором InputForm создается. Ты ему родителя указываешь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
IvanYuS
  опции профиля:
сообщение 2.8.2009, 16:14
Сообщение #3


Новичок


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

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




Репутация:   0  


#ifndef INPUTFORM_H
#define INPUTFORM_H
#include"ui_InputForm.h"
#include<QWidget>
class InputForm : public QWidget, public Ui::InputForm
{
    Q_OBJECT;
    public:
    InputForm(QWidget *parent = 0);
    private slots:
    void on_QuitButton_clicked();
};
#endif // INPUTFORM_H

ui_InputFomr.h - получаю в Qt дизайнере, имя формы выставляю InputForm, вставляю кнопку называю ее QuitButton

Цитата(MoPDoBoPoT @ 2.8.2009, 17:03) *
[code]InputForm *inputform = new InputForm(this);[\code]

При добавлении (this) - программа компилится, но при нажатии на кнопку первой формы зависает - кнопка не отживается, окошко не появляется.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 28.6.2025, 23:46