то, почему добавляют Слот, не работает?

У меня есть проблема, когда я пытаюсь установить после простых связей

QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
QTextEdit *text = new QTextEdit("Hello QT!");

QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));
QObject::connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));
QObject::connect(slider,SIGNAL(valueChanged(int)),text, SLOT(append("slider changed!")));
QObject::connect(spinBox,SIGNAL(valueChanged(int)),text, SLOT(append("spinbox changed!")));
QObject::connect(text,SIGNAL(textChanged()),spinBox,SLOT(clear()));

Это может быть успешно скомпилировано и excuted. Но два append слоты кажутся не, работают. Я проверил руководство справки о QTextEdit и существует общедоступный слот append там. Я пропустил что-то? Справка ценилась бы!

1
задан Young 5 July 2010 в 07:46
поделиться

2 ответа

К сожалению, вы не можете передавать пользовательские значения в свои слоты через QObject :: connect (разрешена / правильно интерпретируется только информация о типе аргументов). Вместо этого создайте свой собственный слот, например

void MyWidget::mySliderChangedSlot(int newValue)
{
  text->append("slider changed!");
}

и используйте

QObject :: connect (slider, SIGNAL (valueChanged (int)), pMyWidget, SLOT (mySliderChangedSlot (int)));

для достижения желаемого поведение.

Надеюсь, это поможет.

2
ответ дан 2 September 2019 в 23:17
поделиться

Что именно вы пытаетесь сделать? Это теперь работает, потому что вы подключаете сигнал, который имеет параметр int, к слоту со строковым параметром для одного, другая вещь заключается в том, что слоты сигнала, где они не предназначены для такого рода использования, вы просто говорите, что функция подключена, и они передают параметры между ними, вы не передаете значения самостоятельно, Вы неправильно их используете, прочитайте документацию по адресу http://doc.trolltech.com/4.6/signalsandslots.html для корректных примеров использования.

0
ответ дан 2 September 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: