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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Segmentation fault при соединении сигнала со слотом  (Прочитано 2363 раз)
RedDog
Гость
« : Август 24, 2010, 09:15 »

Добрый день.
Не пойму в чем может быть причина:

Код:
class CSocketLogin : public QObject
{
    Q_OBJECT
public:
    CSocketLogin();
    void sendData(QString &input);
    void connect();
private:
    QSslSocket *socket;
    QString m_answer;
private slots:
    void socketStateChanged(QAbstractSocket::SocketState state);
    void socketEncrypted();
    void sslErrors(const QList<QSslError> &errors);
public slots:
    void socketReadyRead();
};

Код:

CSocketLogin::CSocketLogin()
{
    if (!socket)
        socket = new QSslSocket(0);
}

void CSocketLogin::connect()
{
    QObject::connect(socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
                this, SLOT(socketStateChanged(QAbstractSocket::SocketState)));
    QObject::connect(socket, SIGNAL(encrypted()),
            this, SLOT(socketEncrypted()));
    QObject::connect(socket, SIGNAL(sslErrors(QList<QSslError>)),
            this, SLOT(sslErrors(QList<QSslError>)));
    QObject::connect(socket, SIGNAL(readyRead()),
            this, SLOT(socketReadyRead()));
    socket->connectToHostEncrypted("login.live.com", 443);
}
в при соединении сигнала со слотом вываливается SF
Что не так?
Записан
RedDog
Гость
« Ответ #1 : Август 24, 2010, 09:40 »

Ответ:
здесь:
Код:
CSocketLogin::CSocketLogin()
{
    if (!socket)
        socket = new QSslSocket(0);
}
не срабатывало условие, посему объект не создавался
Записан
SASA
Гость
« Ответ #2 : Август 24, 2010, 09:52 »

Пользуйтесь QPointer !!!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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