3

好的,我想为 Linux(比如带有 Gnome 的 Ubuntu)编写一个简单的 C 应用程序,它可以执行以下操作:

  1. 打开一个窗口
  2. 使用主循环在该窗口中绘制一些东西,例如当前循环编号。我不想使用控件,而是直接在窗口表面上绘制
  3. 关闭窗口和应用程序

我可以在 Windows 中做到这一点,但我不知道如何在 Linux 中做到这一点。

谢谢!

4

6 回答 6

4

除非您想要一个成熟的 GUI(在这种情况下我推荐QtGTK),否则SDL是一个非常流行且极其简单的免费跨平台库,它为您提供了一个绘图表面和一些简单的 IO 工具。它本机是 C,但绑定到大量其他语言。

于 2011-03-07T13:29:34.350 回答
3

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/

于 2011-03-07T13:47:47.550 回答
2

如果你只想画一些东西,为什么不直接使用 OpenGL 和 GLUT。后者提供了创建具有 OpenGL 上下文的窗口的简单方法。

设置 GLUT 应用程序非常简单,并且有很多教程,例如Lighthouse3d.com。本教程适用于 Visual Studio,但将其转化为在 Linux 上编译应用程序并不难。

或者,您也可以使用Qt,它是一个更高级且易于使用的 GUI 工具包,并且不一定需要您编写 OpenGL 代码。

于 2011-03-07T13:26:51.777 回答
2

既然您提到了 C,那么如果您想使用 GTK+ 作为一个不错的小编辑器,它允许您在窗口上绘制控件,则可以使用Glade 。

或者,如果您可以访问 C++ 编译器,您可以查看提供类似功能的Qt 。

于 2011-03-07T13:29:42.103 回答
1

好吧,如果你熟悉在 Windows 中制作 gui 应用程序,我会猜测你是用 .net 或类似的东西完成的。一个简单的过渡是使用单声道。一个跨平台的 .NET 开发平台 - http://mono-project.com/Main_Page

还有各种 gui 工具包可供使用:http ://www.mono-project.com/Gui_Toolkits

于 2011-03-07T13:22:23.467 回答
1

如果你想直接在窗口上绘图,你考虑过 X11 吗?
它不会像使用 GTK 或 Qt 之类的工具包那么好,但它是您可以在窗口系统中获得的最低级别。

我没有任何直接编程 X11 的经验,所以我不能推荐任何起始材料。

于 2011-03-07T13:35:04.170 回答