Single Selection in Uitable

Hi,
Is there a way to force Single Row Selection in a uitable (new version with appdesigner) ?
I use a table to show properties (in columns) of a list of objects (in rows). I want that the user selects one (and only one) object and uses some push buttons to edit / suppress / compute the object (As edit or compute callbacks open a dialog box, i don't want that several dialog boxes open if the user selected serveral objects).
Stéphanie.

回答(1 个)

Mario Malic
Mario Malic 2021-2-4

0 个投票

Hi,
you can't force it, but you can validate the selection.
Event.Indices returns n by 2 array (row, column). If all elements in the first column are equal then the selection is valid and you can continue with the computation. Otherwise, issue a warning with uialert.

5 个评论

Thanks for your proposal.
As i can't force the single selection programmaticaly, i use only the first row of Event.Indices.
I'm quite disappointed because 'selectedRows' is a common feature for table component in lot of language (Qt, ...). I hope that Mathworks will add this feature soon.
Stéphanie
You can use this to get all selected rows in the table.
indices =
1 2
1 3
2 2
2 3
5 2
5 3
selectedRows = unique(indices(:,1))
selectedRows =
1
2
5
I was thinking about SelectedRows as a property of the table component that can be get or set.
Would be nice, yes.
Yes MATLAB uitables are really essentially useless pieces of garbage, unfortunately, for all but the most rudimentary applications.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Develop Apps Using App Designer 的更多信息

产品

版本

R2020b

评论:

2021-12-26

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by