Aktív témák

  • czappa

    aktív tag

    Qt-ban akadtam el.
    Előbb a kód:

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

    class MyWidget : public QWidget
    {
    public slots:
    void button1Clicked();

    public:
    QSlider *slider;
    QPushButton *button1;
    QPushButton *quit;
    QLCDNumber *lcd;
    MyWidget(QWidget *parent = 0);
    void init();
    };

    void MyWidget::button1Clicked(){
    slider->setValue(50);
    }

    void MyWidget::init(){
    quit = new QPushButton(tr("Quit"));
    button1 = new QPushButton(tr("Change"));
    quit->setFont(QFont("Times", 18, QFont:: Bold));

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

    slider = new QSlider(Qt::Horizontal);
    slider->setRange(0, 99);
    slider->setValue(0);

    connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
    connect(button1, SIGNAL(clicked()), this, SLOT(button1Clicked()));
    connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(quit);
    layout->addWidget(lcd);
    layout->addWidget(slider);
    layout->addWidget(button1);
    setLayout(layout);
    }

    MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
    {
    init();
    }

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

    A probléma, hogy mikor lefordítom - akár manuálisan, akár Kdevelop-ból - ezt írja:
    Object::connect: No such slot QWidget::button1Clicked()

    Így persze hiába nyomogatom azt a gombot, nem csinál semmit. Próbáltam kiokoskodni a Kdevelop-os példából, de elvileg ugyan úgy csinálom és nem jó. (Gyakorlatilag nyilván elnézek valamit...)

    Már azt sem értem, hogy miért a QWidget::button1Clicked() keresi, holott ennek a MyWidget-ben kéne lennie.
    Előre is köszi.

Aktív témák