Answers:
我将概括介绍几个GUI库,但在非常高的层次上,您需要了解的最重要概念是GUI是事件驱动的。
在控制台应用程序中,用户输入通常发生在您定义的特定点。提示用户,等待用户输入,然后根据该输入计算出一些内容。主要区别之一是输入仅在一个地方发生,而您正在从命令行(stdin
在C ++中)读取文本。
在GUI应用程序中,通常会有多个可能发生输入的地方,例如执行不同操作或文本字段的按钮。这是事件起作用的地方。例如,单击按钮会触发事件。此事件需要由事件处理程序处理,该事件处理程序通常只是在触发此类事件时调用事件对象的方法。您的按钮如何知道事件处理程序?您通常订阅(或收听)。
这是一个“受C ++启发”的示例,这不是实际的QT或C ++代码。
class MyClickHandler : public ClickListener{
void clickHandler(ClickEvent e){
showAlertBox("The button "+e.getSource().getName()+" has been clicked");
}
};
创建Button时,将针对该按钮注册MyClickHandler类的实例。
...
MyClickHandler handler();
Button b("Save");
b.registerListener(handler);
...
现在,每次b
单击按钮时,都会出现一个消息框,显示“按钮已单击保存”。
您可以想象一个GUI应用程序有两个阶段:
这是一个非常简单的示例,但是我建议您使用任何框架,在单击按钮时尝试显示一个消息框。
对于该框架,有很多这样的框架:对于C ++,我可能会推荐Qt。
最后的建议是:远离GUI设计人员,直到您真正了解后台发生了什么。编写一些简单的示例并先了解事件循环然后再转到更复杂的布局并不难。
现在是学习GUI porgramming的好时机。如您所知C ++,我建议您看一下QT。丰富的文档资料,庞大的用户基础以及大量可供学习的示例/教程。
您也可以从Microsoft Visual Studio C ++ Express开始。IDE非常友好且易于使用(免费!),您将能够快速创建自己的第一个GUI应用程序...这将帮助您专注于了解事件驱动编程的基础,这是另一种方法您将需要掌握。
您也可以直接开始构建WPF驱动的应用程序,但是我首先要开始使用Windows Forms,这是一种不易掌握的技术,因为它只是带有Microsoft Windows Forms API的基本C ++。
也许更适合标记为c ++的StackOverflow;但不管怎么说。
在Google上查找其中一些内容;Qt,WxWidgets,TheForgers的WinApi,Fltk ...
GUI并不难使用,尤其是在您已经了解c ++之后。我认为应该使用WxWidgets;Qt对于一个月的学习来说有点太复杂了。您可以在几个小时内拿起Wx。