Привет всем, поставили задачу написать приложение на Qt, до этого писал на Java.
Прошелся по урокам, но вот создать собственный работающий слот не получается.
Вот пример кода:
test.cpp:
#include <QTextEdit>
#include <QSlider>
#include “test.h”
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
text = new QTextEdit;
slider = new QSlider(Qt::Horizontal);
slider->setRange(0,99);
connect(slider, SIGNAL(valueChanged(int)), text, SLOT(setText1()));
}
void MyWidget::setText1()
{
text->setText(“hello”);
}
test.h:
#include <QWidget>
class QTextEdit;
class QSlider;
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent=0);
public slots:
void setText1();
signals:
void valueChanged(int newValue);
private:
QTextEdit *text;
QSlider *slider;
}
Компилится нормально, но при запуске пишет No such slots QTextEdit::setText1()
Смотрел похожие темы, но там проблема была либо в объявлении Q_OBJECTS, либо в том, что не было хэдера с объявлением класса.
Если поменять setText1() например на clear() в connect(slider, SIGNAL(valueChanged(int)), text, SLOT(
setText1())), то работает все нормально.
В чем может быть проблема? Спасибо