Russian Qt Forum
Июнь 03, 2024, 18:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QTreeWidget, сигнал itemClicked и кнопки мышки  (Прочитано 19111 раз)
Вудруф
Гость
« Ответ #15 : Март 09, 2006, 11:38 »

А ведь это баг... Ибо при нажатии правой кнопки мыши *на ссылке* выводится только контекстное меню...
Записан
Joe
Гость
« Ответ #16 : Март 09, 2006, 17:05 »

Думаю, что баг. И скорее всего -от того, что сперва был один обработчик, а потом дописали ещё один, а про старый забыли. Это болезни роста, и в общем - не такие страшные. Эта фишка забарывает, не вопрос, но мало ли какие мерзкие особенности поведения инструментальных средств нам встречаются Улыбающийся бывает намного хуже Улыбающийся.
Это ни насколько не умаляет собстевенно красоты всей затеи Улыбающийся
Спросите их, а ещё лучше - посмотрите в сурцы и скажите, где им стоило бы что подправить, чтобы это не выглядело так пугающе.
Записан
comrade
Гость
« Ответ #17 : Март 09, 2006, 17:49 »

Цитата: "Dendy"
Он тянется из версии в версию.

ну почему из версии в верисию... в третьей куте у QListView такое слово mouseButtonClicked(...) было и там можно было найти какую кнрпку нажали. непонятно почему троли етот сигнал в четвертую версию не положили :(
Записан
Dendy
Гость
« Ответ #18 : Март 09, 2006, 18:17 »

Цитата: "Dendy"
Он тянется из версии в версию.


Веселый  Я имел в виду версии четвёрки. Ещё с августа 2005. В ассистанте реально нехватает вкусностей ОперьІ, именно поетому многие смотрят именно из броузера. А етот глюк задалбьІвает: правой - открьІть в новой закладке - клацнуть на старую - назад.

Я даже думал подправить код ассистанта. Но там настолько елементарно написан обработчик, что возникают сомнения в правильности идеи. Реально я не нашёл способа решить проблему, ведь сигнал испускается ПОСЛЕ отжатия кнопки мьІши, следовательно, если не запомнить состояние QApplication::mouseButtons() - в момент принятия сигнала флаги будут очищеньІ. Как раз поетому mouseReleaseEvent() принимается асинхронно с сохранённьІми флагами в самом собьІтии.

Есть ещё идея - повесить eventFilter() на QEvent::MouseButtonRelease, запоминать состояния флагов и передавать собьІтие дальше на обработчик окна и вьІзов сигнала. ЧерезжопньІй метод, но может так Троллями и задумьІвалось?  :roll:
Записан
Dendy
Гость
« Ответ #19 : Март 28, 2006, 12:33 »

Решил вьІтянуть тему из клоаки на свет Божий (-:
Итак, кого задолбало открьІтие окошек в Ассистанте по средней и правой кнопкам мьІши - дружно внимаем моему варварскому способу.

Всё что нужно - подправить код Ассистанта в паре мест всего лишь в одном файле:

tools/assistant/helpdialog.cpp

Где-нить повьІше:
Код:
static bool was_left_button = false;


В любом месте етого метода:
Код:
void HelpDialog::initialize()
{
  ...
  ui.listContents->viewport()->installEventFilter( this );
  ...
}


В самом верху метода:
Код:
void HelpDialog::showTopic()
{
  if ( !was_left_button )
    return;
  ...
}


В самом верху метода:
Код:
bool HelpDialog::eventFilter(QObject * o, QEvent * e)
{
  if ( o == ui.listContents->viewport() && e->type() == QEvent::MouseButtonRelease )
    was_left_button = ((QMouseEvent *)e)->button() == Qt::LeftButton;
  ...
}


Вуаля! (-:  Может так Троллями и задумьІвалось.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 17.