我有多个通道,我想在GUI上显示他们的信息。 我想显示名称,长度,采样率等,并有一个按钮来绘制它或修改增益。图形用户界面循环按钮
每个通道都是独立的,它并不总是相同数量的通道,因此我想为一个通道创建一个模式,并显示它与有多个通道一样多的时间,例如每个通道都位于先前一。
它基本上是一个图形的对象循环功能,但我不知道是最好的生活方式。
如果您有任何建议...
感谢
我有多个通道,我想在GUI上显示他们的信息。 我想显示名称,长度,采样率等,并有一个按钮来绘制它或修改增益。图形用户界面循环按钮
每个通道都是独立的,它并不总是相同数量的通道,因此我想为一个通道创建一个模式,并显示它与有多个通道一样多的时间,例如每个通道都位于先前一。
它基本上是一个图形的对象循环功能,但我不知道是最好的生活方式。
如果您有任何建议...
感谢
你的问题制定相当普遍,所以这取决于细节有可能给它更多的解决方案。然而,相当普遍的方法如下:
假设你有一个函数plotSingleChannel
作为输入信道数据和它在GUI上的可用位置,你可以在for循环中调用它有渠道的时候。一个玩具的例子是,你需要根据你的需要调整它(例如,也许打开多个数字来处理很多频道):
function plotManyChannels
fgui = figure;
numChannels = 5;
chData = rand (numChannels , 1000); % 5 random channels
chHeight = .8 * 1/numChannels; % occupy 80% of the available space, in order to leave some free inter-channel margins
for n = 1 : numChannels
pos = [.05, 1 - n/numChannels, .9, chHeight];
plotSingleChannel (chData(n,:), fgui, pos);
end
end
function plotSingleChannel (channelData, figHandle, guiPosition)
figure(figHandle)
buttonWidth = .1;
buttonPosition = [1-buttonWidth,guiPosition(2),buttonWidth,guiPosition(4)];
axHandle = axes ('position', guiPosition - [0 0 buttonWidth 0]);
plot(axHandle, channelData);
btnHandle = uicontrol('parent',figHandle,'style','pushbutton','string','push','units','normalized','position',buttonPosition);
end
谢谢你的回答,这是非常有用的,但我不能在剧情旁边做任何按钮。你能告诉我一个例子吗? – k4lls 2012-03-18 21:38:51
查看我编辑的代码,查看每个通道右侧添加按钮的示例。我真的建议你尝试编辑我的代码并阅读用于以编程方式创建GUI的文档,您将从中受益,远远超过我给你的代码。 – 2012-03-20 09:25:26
你还尝试过什么吗?你有编写GUI的经验吗? – 2012-03-18 08:44:34
是的,我确实有一些经历......我正在考虑为每个频道逐一做。总共12个通道。因此如果我想改变一些东西,我必须改变它12次。一团糟。 – k4lls 2012-03-18 09:44:09