Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не обрабатывается MousePressEvent
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
tehnar
Решил в рамках ознакомления с Qt сделать что-нибудь простое, выбор пал на шашки. Класс шашки унаследован от QWidget, собственно, вот часть конструктора
Checker::Checker(QWidget *parent, int _x, int _y, int _type) :QWidget(parent)
{
    //...
    setGeometry(75 * x, 75 * y, 75, 75);
    show();
}


В ходе выполнения конструктора главной формы, шашки создаются, как дочерние элементы этой самой формы
checkers[j][i] = new Checker(this, j, i, 1);


Но почему-то программа не заходит в обработчик нажатия мышки по шашке, хотя, казалось бы, должен. В то же время, если абсолютно такой же обработчик сделать для формы, то все будет работать. Конечно, я могу сделать обработку нажатия мыши и для формы, но это никак не исправит непонимание причины проблемы, так что помогите, пожалуйста
Litkevich Yuriy
Цитата(tehnar @ 14.2.2014, 18:04) *
Но почему-то программа не заходит в обработчик нажатия мышки по шашке
приведи код этого обработчика и то как ты его объявил в классе.
tehnar
Цитата(Litkevich Yuriy @ 14.2.2014, 20:18) *
Цитата(tehnar @ 14.2.2014, 18:04) *
Но почему-то программа не заходит в обработчик нажатия мышки по шашке
приведи код этого обработчика и то как ты его объявил в классе.


class Checker : public QWidget
{
public:
    int type, x, y, active;
    Checker(QWidget *parent, int _x, int _y, int _type);
    void paintEvent(QPaintEvent *event);
    void mousePressEvent(QMouseEvent *event);
};

void Checker::mousePressEvent(QMouseEvent *event)
{
    cerr << "mouse press" << endl;
}


Если заменить Checker:: на MainWindow:: и переместить объявление события в класс формы, то работать будет

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.