Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

10 284 Posts in 5 659 Topics- by 1 216 Members - Latest Member: santini862

24 August 2019, 13:29
Select Language English | Russian ru | German
Main PageIRC Client KVIrc forumRussian talksСкриптингОбъектно-ориентированный скриптингИспользование события OnCurrentItemChangeEvent ListBox-а
Pages: [1]
Print
Author Topic: Использование события OnCurrentItemChangeEvent ListBox-а  (Read 11383 times)
0 Members and 1 Guest are viewing this topic.
runkoff
Постоялец
***

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« on: 22 September 2007, 16:28 »


поддтверждаю по поводу многочисленных предупреждающих сообщениях при наведении курсора на элемент списка. также вопрос появился по поводу сигнала currentItemChange. вабще мне надо отловить когда пользователь кликнул в какой то элемент (сменил текущий выбраный). а сигнал я так понял срабатывает два раза на один клик, сначала на старое значение потом на новое. так и задумано?
например если так обработать сигнал
Code:
objects.connect $$->%cmdList "currentItemChange" $$ "onCmdListClick"
onCmdListClick()
{
echo $$->%cmdList->$currentText()
}
то в вывод на один клик получаю две строки. предущий текст и сразу новый. так и должно быть? если да то как бы правилнее сделать фильтр старого значения? оно меня не интересует, какую проверку добавить чтоб со старым значением не отрабатывался код. я пока думаю просто сделать кнопку отдельную и по нажатию кнопки делать с текущими элементами все что хотел.
« Last Edit: 24 September 2007, 19:43 by Maximusya » Logged

Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« Reply #1 on: 24 September 2007, 19:41 »

У меня событие отрабатывает один раз - для нового выбранного элемента. Вот код:
Code:
class(testwidget, widget)
{
constructor
{
$$->$setGeometry(100,200,170,170)
$$->%cmdList = $new(listbox,$$)
    $$->%cmdList->$setGeometry(10,10,150,60)
$$->%cmdList->$setMouseTracking($false)
$$->%cmdList->$insertItem("item1")
    $$->%cmdList->$insertItem("item2")
    $$->%cmdList->$insertItem("item3")
objects.connect $$->%cmdList currentItemChange $$ onCmdListClick

}
onCmdListClick()
{
echo $$->%cmdList->$currentText()
}
}

%A = $new(testwidget)
privateimpl(%A,closeEvent)
{
if (%A)
delete %A
}
%A->$show()

Возможно, у тебя есть еще и другие слоты (обработчики сигнала currentItemChange)
Logged
runkoff
Постоялец
***

Репутация: 22
Gender: Male
Posts: 130


847905
View Profile WWW Email
« Reply #2 on: 24 September 2007, 20:41 »

Все, нашел. Я там эксперементировал с $setSelectionMode("extended"), типа выбор нескольких элементов списка. Надо взять за правило полностью код выкладывать, а то уже второй раз прокалываюсь, ошибка оказывается не в том месте где предполагаешь. Вобщем с таким режимом получается два вывода, это если переключать с одного элемента на другой, а вот если тащить мышой выделяя все подряд, то выводится одна строка, даже если выделеных элементов много.
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic