LINUX.ORG.RU

Object::connect: No such slot QLCDNumber::display(3)


0

0

#include <QApplication>
#include <QFont>
#include <QLCDNumber>
#include <QPushButton>
#include <QSlider>
#include <QVBoxLayout>
#include <QWidget>

class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = 0);
};

MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{

QPushButton *st = new QPushButton(tr("st"));
st->setFont(QFont("Times", 18, QFont::Bold));

QLCDNumber *lcd = new QLCDNumber(2);
lcd->setSegmentStyle(QLCDNumber::Filled);
lcd->display(99);

connect(st, SIGNAL(clicked()), lcd, SLOT(display(3)));

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(lcd);
layout->addWidget(st);
setLayout(layout);
}

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}

Нужно после нажатия на кнопку сменить цифру с 99 на 3. Как правильно сделать?


Ответ на: комментарий от alex_custov

А откуда ж я пример взял, там у них с ползунком проканывает, а как кнопку ставлю нет.
.....
QSlider *slider = new QSlider(Qt::Horizontal);
slider->setRange(0, 99);
slider->setValue(0);

connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
connect(slider, SIGNAL(valueChanged(int)),lcd, SLOT(display(int)));
.........
Тоже самое поидее.

Lok
() автор топика
Ответ на: комментарий от Lok

в документации QObject::connect() написано чёрным по белому - в сигналы и слоты при коннекте передаются ТИПЫ. Не числа или имена переменных. Там даже примеры написали, как правильно и как неправильно делать.

alex_custov ★★★★★
()
Ответ на: комментарий от teferiincub

Вы не скромничайте, правьте мой код из первого поста как вы считаете нужным, я все еще не сменил цифру.

Lok
() автор топика
Ответ на: комментарий от Lok

перечитай доки по connect

а для того что ты хочешь - создай в классе слот и в нем устанавливай значение.

teferiincub
()
Ответ на: комментарий от Lok

Точно, люди не скромнияайте, у вас есть шанс внести исправления в программу самого Lok'а. О таком можно только мечтать!

По сабжу: мозг не пробовал использовать?

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

Зато хорошо заметно то, что мудилы вроде тебя засерают топик своими тупыми постами, стараясь тем самым повысить свою самооценку, а как дело доходит до разбора полетов, лезут в гугл со скоростью быстрее чем ебутся блохи.

Lok
() автор топика
Ответ на: комментарий от Lok

>connect(st, SIGNAL(clicked()), lcd, SLOT(display(3)));

connect(st, SIGNAL(clicked()), lcd, SLOT(display()));

либо

connect(st, SIGNAL(clicked(int)), lcd, SLOT(display(int)));

все зависит от того что за сигнал и что за слот и нужно ли передавать парамеры.

andreykyz ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.