Creating Checkboxes based on a while loop

2 次查看(过去 30 天)
Hello,
I am creating a system where it populates checkboxes based on a variable's value. (Using GUIDE mainly for GUI but to do this section, I am writing my own code) This is part of the code below:
while i < numOfElem
c(i) = uicontrol(panel,'Style','checkbox', 'String', elementTitles(i).title);
c(i).Position = [10 10 920-i.*50 920-i.*50];
i = i + 1;
end
numOfElem is the number of times it loops, as well as the number of times I would like the checkboxes to populate one underneath the other (with different strings -> elementTitles(i).title).
Each title appears with a checkbox, however, my method deletes the previous checkbox because I am overwriting it.
How can I solve this issue?
Thank you

采纳的回答

Adam Danz
Adam Danz 2018-6-27
编辑:Adam Danz 2018-6-27
What units are you plotting in? Assuming 'panel' is the handle to the GUI figure,
panel.Units
It looks like you're using pixels but when you reposition the checkbox, you position if way off of the figure.
To test that, after this line in your code
c(i).Position = [10 10 920-i.*50 920-i.*50];
add this line to see if it re-appears (assumes units are pixels)
c(i).Position = [20 20 60 20]; % assumes figure size is default [403 246 560 420]
  7 个评论
yySBU
yySBU 2018-7-4
Hello,
I finally figured out my problem. Yes, it was the positioning of the checkboxes and I realized it after debugging and coloring the foreground. The whole column had turned into one solid color which was why the checkbox background had been pasted over each other.
Thank you Mr. Danz for your help.
I changed my code to look like this:
c.Position = [10 450-i*20 60 20];
I was changing the checkbox sizes instead of the placements. (Even though the background of the checkboxes were the only thing that changed. The checkbox size itself didn't change.)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Migrate GUIDE Apps 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by