好的,我想为 Linux(比如带有 Gnome 的 Ubuntu)编写一个简单的 C 应用程序,它可以执行以下操作:
- 打开一个窗口
- 使用主循环在该窗口中绘制一些东西,例如当前循环编号。我不想使用控件,而是直接在窗口表面上绘制
- 关闭窗口和应用程序
我可以在 Windows 中做到这一点,但我不知道如何在 Linux 中做到这一点。
谢谢!
好的,我想为 Linux(比如带有 Gnome 的 Ubuntu)编写一个简单的 C 应用程序,它可以执行以下操作:
我可以在 Windows 中做到这一点,但我不知道如何在 Linux 中做到这一点。
谢谢!
X11 编程有各种“Hello World”示例。
使用 GTK+: http: //library.gnome.org/devel/gtk-tutorial/2.13/c39.html
使用 Qt: http ://doc.qt.nokia.com/latest/tutorials-widgets-toplevel.html
使用 wxWidgets: http ://www.wxwidgets.org/docs/tutorials/hello.htm
还有更多工具包:Fox、FLTK、Tk、EFL ...
到目前为止,这些都是跨平台的,所以让我们看一下特定于 X11 的示例:
这是使用 Xlib: http://en.literateprograms.org/Special:Downloadcode/Hello_World_(C,_Xlib)
这是使用 Xcb:http: //xcb.freedesktop.org/tutorial/basicwindowsanddrawing/
如果你只想画一些东西,为什么不直接使用 OpenGL 和 GLUT。后者提供了创建具有 OpenGL 上下文的窗口的简单方法。
设置 GLUT 应用程序非常简单,并且有很多教程,例如Lighthouse3d.com。本教程适用于 Visual Studio,但将其转化为在 Linux 上编译应用程序并不难。
或者,您也可以使用Qt,它是一个更高级且易于使用的 GUI 工具包,并且不一定需要您编写 OpenGL 代码。
好吧,如果你熟悉在 Windows 中制作 gui 应用程序,我会猜测你是用 .net 或类似的东西完成的。一个简单的过渡是使用单声道。一个跨平台的 .NET 开发平台 - http://mono-project.com/Main_Page
还有各种 gui 工具包可供使用:http ://www.mono-project.com/Gui_Toolkits
如果你想直接在窗口上绘图,你考虑过 X11 吗?
它不会像使用 GTK 或 Qt 之类的工具包那么好,但它是您可以在窗口系统中获得的最低级别。
我没有任何直接编程 X11 的经验,所以我不能推荐任何起始材料。