如何在MATLAB GUI中创建一个简单的无边框按钮

时间:2015-07-01 14:40:46

标签: matlab user-interface button border borderless

很简单,我试图在MATLAB GUI中创建一个无边框按钮。原因主要是美学,所以不需要就为什么它应该是无边界进行辩论。

我已经知道单独使用内置的MATLAB uicontrol无法做到这一点,因为按钮的边框不是MATLAB中的可访问属性。因此,必须访问底层JAVA代码(在其上编写MATLAB)以操纵边界。这是我迷失的地方,因为我只在MATLAB中编程。

我从这里跟着一个例子: http://undocumentedmatlab.com/blog/borderless-button-used-for-plot-properties

但我仍然没有获得无边框按钮。

这是一个简单的代码示例(注意使用Yair Altman的findjobj,可在MATLAB文件交换中使用):

cout << "What's your name ?"; cin >> name;

我对哪里出错了?谢谢!

3 个答案:

答案 0 :(得分:1)

你要添加两行:

jh.setBorderPainted(false);    
jh.setContentAreaFilled(false);

答案 1 :(得分:0)

我不清楚你对“无国界”的意思。

查看您发布的网页上的示例,我假设您正在寻找类似“隐形”按钮的内容。

如果是这样,您可以考虑这种替代方式:

  • 有一个按钮,你可能有一个static text uicontrol
  • 使其backgroundcolor与GUI backgroundcolor相同(它将变为“不可见”且没有任何边框)
  • 不要在string
  • 中设置任何static text uicontrol
  • enable的{​​{1}}属性设置为static text uicontrol
  • off static text uicontrol
  • 定义
  • 按下ButtonDownFcn
  • 中的按钮,编写要执行的代码

当您在“隐身”ButtonDownFcn上按下鼠标按钮时,其static text uicontrol将会被执行。

你必须记住......是“看不见的”ButtonDownFcn

希望这有帮助。

答案 2 :(得分:0)

边界受到飞越外观功能的影响。 http://undocumentedmatlab.com/blog/undocumented-button-highlighting 你需要添加

jh.setFlyOverAppearance(true);

为我工作。