недокументированные события QTABLE при нажатии мышки

Страницы: 1
RSS
недокументированные события QTABLE при нажатии мышки
 
При обработке событий нажатие мышки столкнулся с неизвестным значением, которое не описано в документации
Его значение 8.
Пришлось поковыряться, и вывести из глобальной переменой _G все переменные, которые содержат QTABLE в начале.
Вот что получилось:

_G["QTABLE_SELCHANGED"] = 5
_G["QTABLE_VKEY"] = 7
_G["QTABLE_CONTEXTMENU"] = 8
_G["QTABLE_MBUTTONDBLCLK"] = 10
_G["QTABLE_INT64_TYPE"] = 4
_G["QTABLE_RBUTTONUP"] = 12
_G["QTABLE_INT_TYPE"] = 1
_G["QTABLE_CHAR"] = 6
_G["QTABLE_MBUTTONDOWN"] = 9
_G["QTABLE_NO_INDEX"] = -1
_G["QTABLE_TIME_TYPE"] = 7
_G["QTABLE_RBUTTONDOWN"] = 2
_G["QTABLE_DEFAULT_COLOR"] = -1
_G["QTABLE_NEED_REFILL"] = 23
_G["QTABLE_CLOSE"] = 24
_G["QTABLE_RBUTTONDBLCLK"] = 4
_G["QTABLE_LBUTTONDBLCLK"] = 3
_G["QTABLE_DATETIME_TYPE"] = 9
_G["QTABLE_STRING_TYPE"] = 3
_G["QTABLE_LBUTTONUP"] = 11
_G["QTABLE_LBUTTONDOWN"] = 1
_G["QTABLE_UNKNOWN_TYPE"] = 0

из этого выяснилось, что переменная QTABLE_CONTEXTMENU не документирована в описании функции SetTableNotificationCallback
Но на нее есть упоминание в Приложении 3.

Было бы хорошо добавить в документацию.  
 
QTABLE_NEED_REFILL тоже не документирована
Надо делать так, как надо. А как не надо - делать не надо.
 
Добрый день,

Ваши сообщения получены, проблема изучается. Постараемся в ближайшее время дать ответ.
 
Sergey Denegin,      Добрый день,
   
    Документация будет дополнена в одной из очередных версий программы.
   
    Приносим извинения за причиненные неудобства.
 
Цитата
Zoya Skvorcova написал:
Sergey Denegin,      Добрый день,
   
    Документация будет дополнена в одной из очередных версий программы.
   
    Приносим извинения за причиненные неудобства.
Прошло 3 года. QTABLE_NEED_REFILL и QTABLE_CONTEXTMENU в документации не появились.
 
Цитата
Анатолий написал:
Прошло 3 года. QTABLE_NEED_REFILL и QTABLE_CONTEXTMENU в документации не появились.
Да верно, пока не появились.
 
Нужны события MOUSE_WHEELSCROLL UP / DOWN
Есть возможность добавить?
Надо делать так, как надо. А как не надо - делать не надо.
 
Старатель,
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
 
Какой формат записи ячеек с типом QTABLE_DATETIME_TYPE?
Надо делать так, как надо. А как не надо - делать не надо.
 
Старатель, os.time ( ) или просто числовой.


Вообще, в таблице информация только строковая и задаётся через SetCell аргумент text, а аргумент value используется только для сортировки.
 
Спасибо, Кэп
Надо делать так, как надо. А как не надо - делать не надо.
 
Какой формат записи ячеек с типом QTABLE_DATETIME_TYPE, чтобы работали сортировка и фильтры?
Надо делать так, как надо. А как не надо - делать не надо.
 
Старатель, Никакой.  :smile: Не знаю, что там за фильтры, но именно посмотрев на сортировку я немедленно проставил во всех своих таблицах QTABLE_STRING_TYPE. Правда, даже в этом случае сортировка весьма "оригинальная" - ей по барабану, стоит впереди минус или нет, но всё-таки можно пользоваться. С другими типами была полная каша!

А, ну да - я и писал 14.10.2020 14:23:59
Сделал для себя два вывода из вчерашних-сегодняшних экспериментов:

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

2. При описании столбцов (AddColumn) не задавать им никаких QTABLE_INT_TYPE, QTABLE_DOUBLE_TYPE - оставить только QTABLE_STRING_TYPE, и при занесении значения в ячейки (SetCell) заворачивать значения в tostring - тогда, по крайней мере, сортировка по столбцам работает именно как сортировка строк, а не выдаёт результаты, от которых глаза на лоб лезут.

3. Ну и, конечно, как мне тут подсказали, любой чих, любые действия с таблицей должны заворачиваться в проверку флага, что кнопка останова скрипта не нажата.
 
Тут судя по всему в инструкции неверный термин использован - если "ключ" использовать как "порядковый номер в таблице" то работает без нареканий - удаление, добавление, сортировка, всё остальное. Сортировка работает по просто числовому полю value, у QTABLE_DATE_TYPE число должно быть восьмизначное формата YYYYMMDD, у QTABLE_TIME_TYPE шестизначное формата HHMMSS. С типом QTABLE_DATETIME_TYPE не разобрался, но вариации и комбинации двух предыдущих типов не работают.
 
Забыл добавить что про форматы даты/числа это только к фильтрам и автоформатированию. Сортировка работает при использовании любого формата чисел, главное чтобы число текущего момента было выше чем число предыдущего.
 
Какой формат записи ячеек с типом QTABLE_DATETIME_TYPE, чтобы работали сортировка и фильтры?
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: 1
Читают тему
Наверх