Есть такой фильтр событий:
C++ (Qt)
ChatWindow::ChatWindow(QWidget *parent) :
QWidget(parent)
{
QPushButton * connectButton = new QPushButton;
connectButton->setCheckable(true);
connectButton->installEventFilter(this);
}
bool ChatWindow:: eventFilter(QObject * obj, QEvent * event)
{
if(event->type() == QEvent::MouseButtonRelease && obj == connectButton)
startConnect(!connectButton->isChecked());
return QWidget::eventFilter(obj , event);
}
void ChatWindow:: startConnect(bool checked)
{
//-------------------
}
Проблема в том, что событие вызывается
раньше, чем свойство
checked у
connectButton меняет свое значение. (В итоге в мою функцию
startConnect(bool checked) приходиться передавать инвертированое от вызова
connectButton->isChecked() значение.) А хотелось бы наоборот!
Можно ли как-нибудь изменить приоритет вызова события или что-то подобное сделать, чтобы избавиться от костылей?