crossplatform.ru

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

> qt & Visual studio 2010, Нет соединения в сигналах и слотах
eldar85
  опции профиля:
сообщение 21.10.2011, 13:14
Сообщение #1


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

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




Репутация:   0  


Добрый день. Раньше программировал в кьти креаторе и не задумывалсячто может возникнуть проблема в подключении сигналов и слотов.
Потом стал программировать на VS и на пол года оставил Qt, но видя какие ужасные интерфейсы получаются на VS решил подключить Qt в VS2010, всю ночь мучался с подключением, установил автоматом Qt c утилитой add_in_vs с офф сайта Qt, но оказалось что это только начало и придется сильно повазиться) но эту мат часть с горем попалам одалел, 3х часавая сборка библиотек с jim.exe и прописывание патчей в переменные среды помогла и вот я уже сделал Qt окно в дизайнере, открыт проект в vs2010, все отлично, но!!!

примерчик то собвственно простой пока, тут только textEdit и кнопочка, просто попробовать все ли работает. В дизайнере кака я понял нельзя щелкнуть правой кнопкой мыши и выбрать перейти к слоту, создал паблик слот в MainWindow, и попробовал сразу из конструктора написать текс в textEdit и отлично написалось.
затем сделал в том же конструкторе коннект кнопки и слоты и тишина... Даже когда пишешь сам конект, обычно вылазиют посказки что мол есть у кнопки такие то слоты и можно выбрать, тут же нет ни одного события которое можно выбрать у кнопки. т.е. я пишу так
QObject::connect(ui.btPushMe, SIGNAL( //и тут уже долны вылезти посказки
но ничего нет, прописал полностью от руки сигнал clicked()
QObject::connect(ui.btPushMe, SIGNAL(clicked()), this, SLOT(ShowText()));

и ничего не происходит при нажатии на кнопку...

ну и для наглядности покажу весь код чтобы более понятно было
#ifndef MYCLASS_H
#define MYCLASS_H

#include <QtGui>
#include "ui_myclass.h"

class MyClass : public QMainWindow
{
    Q_OBJECT

public:
    MyClass(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~MyClass();

private:
    Ui::MyClassClass ui;

public slots:
    void ShowText();
};

#endif // MYCLASS_H

#include "stdafx.h"
#include "myclass.h"

MyClass::MyClass(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
    ui.setupUi(this);

    QObject::connect(ui.btPushMe, SIGNAL(clicked()), this, SLOT(ShowText()));
    ShowText();
}

MyClass::~MyClass()
{

}

void MyClass::ShowText()
{
    ui.textEdit->append("Ura!!!");
}

Как быть? Подскажите пожалуйста. ЗАранее благодарю ;)

Сообщение отредактировал eldar85 - 21.10.2011, 13:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
RazrFalcon
  опции профиля:
сообщение 21.10.2011, 13:29
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


В консоль ничего не пишет?

Парочку замечаний:
1)
Ui::MyClassClass *ui;

2) не
QObject::connect(ui.btPushMe, SIGNAL(clicked()), this, SLOT(ShowText()));
ShowText();
а
connect(ui->btPushMe, SIGNAL(clicked()), this, SLOT(ShowText()));
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 25.11.2024, 22:12