为Linux开发一个简单的窗口应用程序

时间:2011-03-07 13:13:14

标签: c linux user-interface window-managers

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

  1. 打开一个窗口
  2. 使用主循环在该窗口中绘制一些内容,例如:当前循环次数。我不想使用控件,而是直接在窗口上绘图
  3. 关闭窗口&应用
  4. 我可以在Windows中执行此操作,但我不知道如何在Linux中执行此操作。

    谢谢!

6 个答案:

答案 0 :(得分:4)

除非你想要一个完整的GUI(在这种情况下我推荐QtGTK),然后SDL是一个非常流行且非常简单的免费跨平台库这为您提供了绘图表面和一些简单的IO设施。它原生于C,但与大量其他语言绑定。

答案 1 :(得分:2)

如果您只想绘制某些内容,为什么不使用OpenGL和GLUT。后者提供了使用OpenGL上下文创建窗口的简单方法。

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

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

答案 2 :(得分:2)

由于你提到了C,如果你想使用GTK +作为一个漂亮的小编辑器,你可以使用Glade,它允许你在一个窗口上绘制控件。

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

答案 3 :(得分:2)

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/

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

如果您想直接在窗口上绘图,您是否考虑过X11?
它不会像使用像GTK或Qt这样的工具包一样好,但是它与你在窗口系统中得到的水平一样低。

我没有任何直接编程X11的经验,因此我无法推荐任何原材料。