QT connect(signal, slot). Как правильно это сделать?

Модератор: Модераторы разделов

debMiHAeL
Сообщения: 27
ОС: Debian

QT connect(signal, slot). Как правильно это сделать?

Сообщение debMiHAeL »

Помогите пожалуйста! В чем ошибка ? Я попытался сойденить сигнал со слотом. Вот выкидывает такую ошибку

expected primary-expression before ‘,’ token


на эту строчку

Код: Выделить всё

 QObject::connect(ui.pushButton, SIGNAL(clicked()), MainWindow, SLOT(customSlot()));



Вот сам класс:

Код: Выделить всё

class MainWindow : public QMainWindow
{
    Q_OBJECT

private slots:
void customSlot();

public:
    MainWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~MainWindow();
    QLabel l1;



private:
    Ui::MainWindowClass ui;
};



и обьявление слота:

Код: Выделить всё

void MainWindow::customSlot()

{

ui.label->text() = "lol";


}



Выполнить функцию connect пытаюсь в конструкторе класса.

В чем проблемма?
Спасибо сказали:
Аватара пользователя
Vass
Сообщения: 8
ОС: Debian GNU/Linux squeeze

Re: QT connect(signal, slot). Как правильно это сделать?

Сообщение Vass »

Возможно не стоит его объявлять приватным?
Спасибо сказали:
debMiHAeL
Сообщения: 27
ОС: Debian

Re: QT connect(signal, slot). Как правильно это сделать?

Сообщение debMiHAeL »

Уже пробовал не помогло! Таже ошибка.

Может я как то не так обьявляю слот или его использую. У кого нибуть есть нормальный пример использования слотов/сигналов ?
Спасибо сказали:
Аватара пользователя
awel
Сообщения: 16
ОС: Debian sid/experimental

Re: QT connect(signal, slot). Как правильно это сделать?

Сообщение awel »

Код: Выделить всё

ui.label->text() = "lol";

Это где ж такое видано? o_O
Вот так надо:

Код: Выделить всё

ui.label->setText(tr("Text"));

Ну и вот здесь:

Код: Выделить всё

connect(ui.pushButton, SIGNAL(clicked()), MainWindow, SLOT(customSlot()));

наверное, следует написать this вместо MainWindow.

Р.S. Может, все-таки стоит заглянуть в документацию Qt?
Спасибо сказали: