double-click on "uilistbox" App designer
Mostrar comentarios más antiguos
Hallop everyone,
How can I execute a double-click on ListBox in App Designer?
Thank you in Advance
Respuestas (2)
Kevin Chng
el 23 de En. de 2020
Editada: Kevin Chng
el 23 de En. de 2020
1 voto
Up to R2019b, app designer don’t have this feature,
It is because if you click on the selected item, no event will be triggered. Therefore, we could say only single click is allowed under this limitaion.
You can use button to replace list box. [toggle button group will behave same as list box, so you could not use this], use the 'normal' button for this.
For example :
Step 1 : For example : 3 selection: Create 3 button

Step 2 : Create callback function for each of them (it is a bit tedious, I have 3 button, then I have 3 callback function)

Step 3: Create private function click

Step 4 : here you go:
(Single Click the button, it turns blue)

(Double Click the button, it turns red)

You might have further question about ‘how’and ‘where’ could you put your algorithm:
You could put your algorithm in the click function

Chidvi Modala
el 18 de Jul. de 2019
0 votos
function listbox_Callback(hObject, eventdata, handles)
if strcmp(get(gcf,'selectiontype'),'open')
% here you write write code, which you wanna be executed afer double-click
end
function clickcallback(obj,evt)
persistent chk
if isempty(chk)
chk = 1;
pause(0.5); %Add a delay to distinguish single click from a double click
if chk == 1
fprintf(1,'\nI am doing a single-click.\n\n');
chk = [];
end
else
chk = [];
fprintf(1,'\nI am doing a double-click.\n\n');
end
8 comentarios
joe
el 19 de Jul. de 2019
KAI LUO
el 5 de Nov. de 2019
I have a similar problem. Have you solved this problem?
minlei qin
el 6 de Nov. de 2019
Hello, I also encountered the same problem, after trying the above code can only achieve a second click must be different from the first click. So I want to double-click on the same item, how do I solve it?
Huy Dinh Quang
el 10 de Nov. de 2019
This problem can be solved by reset the value of the listbox after the first call. Here is the modified version
function clickcallback(obj,evt)
persistent chk
if isempty(chk)
chk = 1;
pause(0.5); %Add a delay to distinguish single click from a double click
tempValue = app.FileListBox.Value;% if you want to use this value later
app.FileListBox.Value = {};
if chk == 1
fprintf(1,'\nI am doing a single-click.\n\n');
chk = [];
app.FileListBox.Value = tempValue;
end
else
chk = [];
fprintf(1,'\nI am doing a double-click.\n\n');
end
Markus Leuthold
el 12 de Abr. de 2020
What I don't understand is why such an ugly workaround is needed now that the App Designer was written from scratch. Why didn't Mathworks add callbacks for mouse button pressing/clicking/double-clicking like e.g Qt is doing? These kind of callbacks are needed to do a halfway serious app. It's a pity Mathworks missed this unique chance to really cleanup the mess from GUIDE.
Chidvi Modala
el 13 de Abr. de 2020
I have heard that this issue is known and the concerned parties may be investigating further.
Brett Mther
el 26 de Sept. de 2020
This solution doesn't work for my application. If I double click on a ListBoxItem that is already selected, the ValueChangedFcn callback doesn't fire.
Ahmet Gökhan POYRAZ
el 19 de Mzo. de 2021
@Brett Mther it doesn't work for my application too.
Categorías
Más información sobre Develop Apps Using App Designer en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!