Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Изменить текст при нажатии на кнопку



  • При нажатии мышкой на PushButton текст Label должен меняться

    #include "mainwindow.h"
    #include <QApplication>
    #include <QPushButton>
    #include <QLabel>
    #include <QObject>
    
    class change:public QObject{
        Q_OBJECT
    public:
        QWidget wid;
        QPushButton *push=new QPushButton("button",&wid);
        QLabel *label=new QLabel("label",&wid);
        change(){
            QObject::connect(push,SIGNAL(clicked()),this,SLOT(rename()));
            wid.show();
        }
    
    public slots:
        void rename(){
            label->setText("123");
        }
    };
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        change prog;
    
        return a.exec();
    }
    
    

    В итоге вылетают две ошибки: undefined reference to `vtable for ex' и ld returned 1 exit status
    0_1543396948509_ex.png



  • @Zhukov Add #include "main.moc" at the end of the file.
    or
    Create a new c++ class source file and move your change class code to it and try.



  • Создайте приложение из стандартного шаблона на виджетах (c .ui формой), там будет проще. Как освоитесь, можете дальше уже на своих классах делать.


Log in to reply