Название: connect() Отправлено: anatoliy26 от Январь 24, 2018, 07:17 Всем добрый день.
Начал разбираться с Qt, столкнулся с такой проблемой, пытаюсь с помощью connect() запускать анимацию в обьекте mo(Qmovie) по нажатию кнопки на форме: connect(ui->BtnStart, signal(clicked()), &mo, SLOT(start())); при компиляции кода выпадает ошибка 'connect' was not declared in this scope. не могу понять в чем проблема, судя по документации connect() - стандартный сигнал для обьекта класса QPushButton. Может кто обьяснить что я не так делаю? сам код: widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QSystemTrayIcon> #include <QMouseEvent> #include <QMovie> #include <QAbstractButton> #include <QPushButton> class QAbstractButton; class QPushButton; class QWidget; namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_pushButton_pressed(); void on_pushButton_2_clicked(); void setSpeedMovie(int); void setSizeMovie(int); private: Ui::Widget *ui; QPoint mpos; QMovie mo; double m; }; #endif // WIDGET_H widget.cpp: #include "windows.h" #include "widget.h" #include "ui_widget.h" #include <QSystemTrayIcon> #include <QMouseEvent> #include <QMovie> #include <QPixmap> #include <QLabel> #include <QAbstractButton> #include <QPushButton> #include <QWidget> #include <QEvent> #include <QKeyEvent> #include <QSignalMapper> #include <QSignalBlocker> #include <QSignalTransition> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); this->setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint | Qt::FramelessWindowHint); mo.setFileName (":/resource/images/cats_04.gif"); ui->LBmovie->setMovie(&mo); connect(ui->BtnStart, signal(clicked()), &mo, SLOT(start())); connect(ui->BtnStop, signal(clicked()), &mo, SLOT(stop())); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_pressed() { Widget::close(); } void Widget::on_pushButton_2_clicked() { Widget::showMinimized(); } void Widget::mousePressEvent(QMouseEvent *event){ mpos = event->pos(); } void Widget::mouseMoveEvent(QMouseEvent *event) { if (event->buttons() & Qt::LeftButton){ QPoint diff = event->pos() - mpos; QPoint newpos = this->pos() + diff; this->move(newpos); } } Название: Re: connect() Отправлено: anatoliy26 от Январь 24, 2018, 09:48 разобрался в проблеме, если вдруг еще у кого возникнет такой же вопрос, ошибка в аргументах функции connect, для успешной компиляции кода необходимо написать:
QObject::connect(ui->BtnStart, &QPushButton::clicked, &mo, QMovie::start); Название: Re: connect() Отправлено: kambala от Январь 24, 2018, 13:14 signal надо было капсом написать, тогда б заработало
|