Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > сигнал окончания скроллинга


Автор: newbieone 14.3.2010, 08:17
Я, может быть, пишу не совсем туда, но всё же.
Есть QTableWidget, на нем вертикальная полоса прокрутки.
Нажатие скроллбара для прокрутки содержимого таблицы устанавливает фокус на таблицу.
Возможно ли сделать так, чтобы после окончания скроллинга (отжатие мышки) в том случае, если ничего в таблице не выделено, фокус с таблицы убирался (tableWidget->clearFocus())? Есть ли какой-то сигнал для скроллбара?

Автор: JackYF 14.3.2010, 12:04

M
JackYF
Точно, не туда. Для обсуждения новых вопросов нужно создавать новую тему.


Добавлено через 5 минут и 39 секунд
Предлагаю попробовать отнаследоваться от QTableWidget и переопределить QAbstractScrollArea::scrollContentsBy ( int dx, int dy ), например, так:

Код

void MyTableWidget::scrollContentsBy ( int dx, int dy )
{
  this->QTableWidget::scrollContentsBy(dx, dy);
  if (нет_выделения)
  {
    this->clearFocus();
  }
}

Автор: newbieone 15.3.2010, 04:05
а варианта работы напрямую с QTableWidget не предложите?smile
скажем, в случае с key_up, key_down ведь есть возможность обрабатывать события уровнем выше, в главном окне.

Автор: JackYF 15.3.2010, 09:42
Цитата(newbieone @  15.3.2010,  03:05 Найти цитируемый пост)
а варианта работы напрямую с QTableWidget не предложите?

Не-а. Мой способ (если он работает, конечно, я не проверял) нравится больше smile Скроллинг ведь может выполняться не только клавишами вниз-вверх, а ещё и мышкой. Вам придётся всё это учесть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)