Ubuntu下用glade和GTK+开发C语言界面程序(一)

前言:对于大学中计算机系的每年暑假的课设有太多想说的,能从中学到很多东西,当然不排除打酱油的,这些可以掠过哦,凡事都打酱油,人生也是打酱油的吧。2333。

对于大三以前的课设一般的要求都是用C写的,即使你学的面向对象很好,也只能老老实实的来用C写。当然这其中还有好多要说道的东西。

用C写,面对windows下的那不能再吐槽的cmd终端,我就不说太多了,因为已经很少到windows上做东西。用C写,又想写的高大上一点,当然要有图形界面了,在linux上用C写界面程序,GTK+是少不了的,但是运用面向对象的思想来说,如果让代码中夹杂着太多界面的东西,感觉你写到几千行的时候,你就分不出来那里是主要逻辑,那里是界面程序了。用MVC的思想来说,你得把主要逻辑来体现在你的主要算法上,界面来辅助更好的展现你的思想。那么,用Glade来画界面,在代码中写主要算法逻辑,这样就能很清晰把界面程序和主要算法逻辑分离开。使开发过程更快,同时也减少了写界面的麻烦。同时用GTK+来写一些用C语言实现的界面连接程序,方便galde画出的界面能更好的工作。

好了,说了这么多,先把主要要用到的东西来介绍一下。

主要环境:ubuntu14.04,当然12.04也可以。

开发中要用到的工具:gcc编译器,make命令,glade开发界面,GTK+的安装,一个编辑程序的ide。

上面的编辑程序中我没有用linux下的vim来写,一个是自己还不太熟悉,同时,写一个比较大的工程的话来说,vim总觉得还不是太适合。

环境配置:

1、Glade的安装可以到ubuntu的软件中心中搜索安装。这个是最简单的。也可以在命令行中用

<span style="font-size:18px;">sudo apt-get install glade</span>

来安装。

2、make的安装

直接在命令行中输入

<span style="font-size:18px;">sudo apt-get install make</span>

来安装。

3、对于gcc和GTK+,来说,一般安装的linux中都有自带的gcc和GTK+,这个可以不用在安装,如果觉得gcc的版本比较低,可以更新gcc的版本。GTK+ 的版本为3.0以上。

安装好以上程序后,可以检验一下是否都能正常工作。

1、对于galde来说,按下win键,在出现的界面中输入glade,点击glade图标,出现下面的界面说明galde是可以运行的。

同时也可以在命令行中输入glade,同样会打开glade程序。

2、gcc的检验可以以最简单的C文件来检验。

在编辑器中新建立一个HelloWorld.c程序。

<span style="font-size:18px;">#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[]) {
     printf("HelloWorld!");
     return 0;
}</span>

保存文件后,在命令行中进入到保存的上述文件的的文件夹下,输入以下编译命令,来编译上述HelloWorld.c文件

<span style="font-size:18px;">gcc HelloWorld.c -o helloworld</span>

编译上面命令后,会生成可执行文件,HelloWorld,输入

<span style="font-size:18px;">./HelloWorld 来运行生成的HelloWorld程序。</span>

3、make的检验

直接在命令行中输入

<span style="font-size:18px;">make --version</span>

可以看到make的版本。

好了上面的环境都搭建完成后,可以跑一个最简单的测试程序。

Demo 测试。

在编辑器中新建立一个main.c文件,代码如下

<span style="font-size:14px;">#include <stdlib.h>
#include <gtk/gtk.h>
//HelloWorld按钮的回调函数,也就是按下HelloWorld按钮会执行这个helloworld函数
static void helloWorld (GtkWidget *wid, GtkWidget *win)
{
  GtkWidget *dialog = NULL;//gtk中的控件
//创建一个dialog窗口,上面的信息为Hello World!
  dialog = gtk_message_dialog_new (GTK_WINDOW (win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!");
  gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);//设置窗口的位置
  gtk_dialog_run (GTK_DIALOG (dialog));//运行上面创建的窗口
  gtk_widget_destroy (dialog);//释放窗口的界面内存
}

int main (int argc, char *argv[])
{
  GtkWidget *button = NULL;
  GtkWidget *win = NULL;
  GtkWidget *vbox = NULL;

  /* Initialize GTK+ *///初始化GTK+ 的代码,这三行代码不要动就可以,自己的代码在下面写
  g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
  gtk_init (&argc, &argv);
  g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);

  /* Create the main window */
  win = gtk_window_new (GTK_WINDOW_TOPLEVEL);//new出来一个主窗口
  gtk_container_set_border_width (GTK_CONTAINER (win), 8);//设置窗口边缘的大小
  gtk_window_set_title (GTK_WINDOW (win), "Hello World");//设置窗口标题
  gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);//设置窗口位置
  gtk_widget_realize (win);//实现上述窗口
  g_signal_connect (win, "destroy", gtk_main_quit, NULL);//窗口信号连接,点击关闭按钮是会关闭窗口。

  /* Create a vertical box with buttons */
  vbox = gtk_vbox_new (TRUE, 6);创建一个Vbox容器
  gtk_container_add (GTK_CONTAINER (win), vbox);//将创建的容器添加到上述创建的主窗口中

  button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);//创建一个按钮
  g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (helloWorld), (gpointer) win);//设置按钮的回调函数,看到callback大家都应该懂这个是回调函数的。
  gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);//将创建的按钮添加到上述的vbox中
//下面创建关闭按钮,并将关闭按钮的回调函数设置为系统的推出函数gtk_main_quit。
  button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
  g_signal_connect (button, "clicked", gtk_main_quit, NULL);
  gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);

  /* Enter the main loop */
  gtk_widget_show_all (win);//显示上述的创建的界面
  gtk_main ();//开始整个主循环。
  return 0;
}</span>

上面的代码中都做了详细的注释,看懂应该不难。

保存上面的main.c文件后,在命令行中输入

<span style="font-size:18px;">gcc -Wall -g -o main main.c `pkg-config --cflags --libs gtk+-3.0` -export-dynamic</span>

会进行编译main.c文件并生成可执行文件main.

继续输入

<span style="font-size:18px;">./main</span>

运行可执行文件。会出现下面的界面。

点击信息,会出现下面的HelloWorld信息界面。

好了,到这里所有的工作已经做完了,接下来就可以进行主要程序的开发。当然,这还需要你学习一些其他的知识,比如如何在glade中画出你所要的界面,如何进行界面信号和实际函数的连接。以及如何在代码中关联这些界面,和如何在代码中执行一些界面信息。

如何使用make来使编译命令来更加简单智能。

这些只是我会结合我的课设中用到的一些来讲解一下,当然,毕竟能力有限,在上面和以后有讲的不当的话,欢迎批评指正。

尊重原创,欢迎转载,转载请注明出处:http://write.blog.csdn.net/postedit/38944891

时间: 2024-10-10 08:21:38

Ubuntu下用glade和GTK+开发C语言界面程序(一)的相关文章

Ubuntu下用glade和GTK+开发C语言界面程序(二)——gcc常用命令介绍

谈到linux,没人不懂gcc,当然,学过C语言的都该知道gcc,毕竟所有的类C编译器基本都有gcc来构成. GCC的意思随着时间的发展也从最初的GNU C Compiler发展到GNU Compiler Collection,也就是GNU编译器的统称集合.GCC对与操作系统与硬件的的支持,可以说是:无处不在. 一.gcc编译过程 GCC的编译过程要分为四个阶段来进行:预处理阶段,编译阶段,汇编阶段,以及链接阶段. 1.预处理阶段(也称预编译阶段) gcc -E helloworld.c -o

Ubuntu下用glade和GTK+开发C语言界面程序(三)——学习make的用法

makefile的规则 makefile的规则如下: target ... : prerequisites ... command ... ... target可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个label. prerequisites就是要生成那个target所需要的文件或者目标. command就是make需要执行的命令.(任意的shell命令) 这三者的关系就是一个文件依赖关系,target这一个或者多个目标文件依赖与prerequisites中

【转载】在Ubuntu下配置舒服的Python开发环境

在Ubuntu下配置舒服的Python开发环境 2013-10-26 00:10 11188人阅读 评论(0) 收藏 举报 目录(?)[+] Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的一个安装和配置步骤,基于 Ubuntu 12.04 桌面版本标准安装. 安装 Python 发布版本和 build 依赖包 建议至少安装 Python 2.7/3.2 版本,毕竟 Python 2.X/3.

Ubuntu下搭建Cocos2D-X 3.6开发环境

简单讲解在Ubuntu下搭建Cocos2D-X 3.6开发环境的过程,希望对大家有用. 1.解压下载的包,找到build目录: 在终端下先执行install-deps-linux.sh文件 结果类似: 时间可能比较长. 2.回到解压包的根目录下执行setup.py: 可以看出这个执行完成的是检测系统环境并在配置文件中加入需要的环境变量,会将原配置文件备份. 3.在解压包的目录运行 cmake . 注意后面代表当前目录的 . (不要在意sudo) 4.make 用cmake生成的Makefile就

(4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤

Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说明 一.安装OpenCV3.1.0 1.使用wget下载opencv源码 url : https://github.com/Itseez/opencv/archive/3.1.0.zip sudo apt-get install wget sudo wget https://github.com/I

VC开发多语言界面 多种方法(很简单) 有源码

(需源码先留邮箱)先上图 1.通过遍历 得到所有控件ID号与TEXT,得到一个中文语言配置文件 void CVV_485Dlg::getCaptionForWindow() //做程序时用,其它时间不用 { //枚举对话框中所有组件 CWnd *pCtrl = GetWindow(GW_CHILD); while(pCtrl!=NULL) { UINT ctrlID = pCtrl->GetDlgCtrlID(); // setControlCaption(pCtrl,ctrlID); CStr

39 Ubuntu下配置python的vscode开发环境

0 引言 最近想在ubuntu下搞深度学习,首先配置了python的vscode开发环境.在配置python时,选择了Anaconda3.x,保证了其相对于系统python2.x的独立性.另外,vscode是单独安装的,其路径添加到环境变量中,安装完Anaconda3.x之后,启动其桌面客户端,即可看到vscode躺在列表中.启动vscode,配置python开发环境,并修正一些pylint的bug,即可享受. 1 安装VSCode (1)去这儿下载.deb版本的安装包 https://code

在ubuntu上使用wxWidgets成功开发一个图形界面程序

编译wxWidgets 下载最新版的源码,wxWidgets-3.0.2.wxWidgets在liunx是通过wxGTK实现的.wxGTK和wxWidgets的源码打包在一起.wxGTK依赖GTK+,当前版本依赖高于2.8.2的版本.我安装了3.0版本的GTK+.apt-get install gtk+-3.0-dev.一般开发用的库,都有个-dev结尾,这是个约定.开发用的库包含了头文件和文档之类的东西. 为了让不同平台wxWidgets编译之后放到各自的文件夹下,先在解压得到的文件夹下创建一

在Ubuntu下配置舒服的Python开发环境

Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的一个安装和配置步骤,基于 Ubuntu 12.04 桌面版本标准安装. 安装 Python 发布版本和 build 依赖包 建议至少安装 Python 2.7/3.2 版本,毕竟 Python 2.X/3.X 还是有不少区别的. 1 2 3 4 # 安装 Python 发布版本,dev包必须安装,很多用pip安装包都需要编译 sudo apt-g