User interface 如何在运行程序之前最初创建弹出消息?

User interface 如何在运行程序之前最初创建弹出消息?,user-interface,matlab,User Interface,Matlab,惠尔 我有一个gui程序。我的问题是如何让我的程序以用户先插入他的名字开始。例如:当用户双击我的程序时,会出现一条弹出消息,询问用户的姓名。在用户插入他的名字后,只有程序会运行。有人能帮我吗?我想您需要的是inputdlg功能。它会弹出一个对话框,要求用户输入。您可以将WindowsStyle设置为“模式”框,这样在满足要求之前就无法执行任何其他操作。您可以使用以下代码来执行所需操作,只需将其放在文件的开头即可。这将要求一个名称,正如woodchips建议的那样,当它为空或单击“取消”时,对话框

惠尔


我有一个gui程序。我的问题是如何让我的程序以用户先插入他的名字开始。例如:当用户双击我的程序时,会出现一条弹出消息,询问用户的姓名。在用户插入他的名字后,只有程序会运行。有人能帮我吗?

我想您需要的是inputdlg功能。它会弹出一个对话框,要求用户输入。您可以将WindowsStyle设置为“模式”框,这样在满足要求之前就无法执行任何其他操作。

您可以使用以下代码来执行所需操作,只需将其放在文件的开头即可。这将要求一个名称,正如woodchips建议的那样,当它为空或单击“取消”时,对话框将重新出现,直到给出一个非空名称

%% user authentication
user = '';
while isempty(user)
    user = inputdlg('Please enter your user name:',...
                    'User name',1,{''});
    if isempty(user)
        user = '';
    else
        user = deblank(user{1});   
    end;
end

%% real program code below
但是,如果您只需要用户的用户名(即帐户名),则可以自动执行此操作,而无需任何用户干预:

if ispc
    user = getenv('UserName');
else 
    user = getenv('USER');
end;

在Unix/Linux和Mac中,您应该能够通过使用finger程序(在系统上出现时)进一步探测这一点。有关更多信息,请查看和matlab命令。

Inputdlg默认为模态。谢谢。。它的工作。。还有一个问题。如何创建退出按钮?例如,用户按下退出按钮,然后我希望程序结束并弹出一条消息“谢谢”……通常我不建议显示这样的对话框,它只会妨碍用户,当未单击按钮时,会阻止程序真正结束。但是,如果您需要这样做:看看我的意思是用户必须采取额外的行动来关闭应用程序。虽然你感谢用户使用你的程序是出于好意,但大多数用户会不喜欢这个功能,因为它会减慢他们的速度。当他们单击“关闭”时,他们希望您的程序关闭,也许是为了防止丢失他们的工作“您想保存您的工作吗?保存/不保存/取消”,但仅此而已。您可能想看看一些关于GUI设计的书籍(例如)