正如大多数人所经历的那样,开发控制台应用程序非常简单:
void mainloop(){
while (1){
giveInstructions();
getInput();
if (!process()) break;
printOutput();
}
}
int main(){
mainloop();
return 0;
}
然而,在GUI中它成为一个问题。
我们仍然可以giveInstructions()
,process()
和printOutput()
,但getInput()
不起作用,因为它依赖于某个事件,通常是按钮点击或按键。< / p>
如何以最少的代码更改将控制台应用程序移植到gui应用程序? (最好不要改变main
方法,尽可能少改变mainloop
函数)
注意:我对线程感觉不太满意。
答案 0 :(得分:1)
由于没有给出特定的语言,我将在C#中展示一个示例,您可以使用与控制台应用程序相同的代码和简单的GUI。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//using form-editor, double-click buttons or use the following
btnInput.Click += new EventHandler(btnInput_Click);
btnContinue.Click += new EventHandler(btnContinue_Click);
giveInstructions();
}
private void giveInstructions()
{
txtInfo.Text = "";
txtInput.Text = "";
//display instructions to multi-line textbox
}
private void btnInput_Click(object sender, EventArgs e)
{
//or you can just add another button for exit.
if (txtInput.Text == "expected value for exit")
{
Application.Exit();
}
else
{
getInput();
}
}
private void getInput()
{
string strInput = txtInput.Text;
//do stuff
printOutput();
}
private void printOutput()
{
//display output to multi-line textbox
}
private void btnContinue_Click(object sender, EventArgs e)
{
giveInstructions();
}
}