新手gtk+问题

软件和网站开发以及相关技术探讨
回复
头像
admin_xyz
帖子: 199
注册时间: 2012-05-26 8:33
系统: Ubuntu 12.04

新手gtk+问题

#1

帖子 admin_xyz » 2013-03-28 23:01

代码: 全选

#include <gtk/gtk.h>

int main (int argc, char *argv[])
{
        GtkWidget *window;          //定义一个构件指针

        gtk_init(&argc, &argv);      //初始化GTK环境

        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);   // 新建一个标准的有框架窗口

        gtk_window_set_title(GTK_WINDOW(window), "xyz____________");    //窗体标题
        gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);      //窗口大小


        gtk_widget_show(window);        //显示窗体

        gtk_main();                                 //启动gtk

        return 1;
}
用cb新建了个gtk+项目, 里面写的代码。3个问题。
GTK_WINDOW(window) //这句啥意思
运行程序后,为什么会出现两个窗口,一个是gtk+的,还有一个是终端的。
怎样让终端的窗口不出现。
头像
huangbster
帖子: 187
注册时间: 2012-10-29 11:35
系统: UBUNTU

Re: 新手gtk+问题

#2

帖子 huangbster » 2013-03-29 8:27

GTK_WINDOW是一个宏,做指针cast;
编译成release版就没有两个窗口了。
头像
admin_xyz
帖子: 199
注册时间: 2012-05-26 8:33
系统: Ubuntu 12.04

Re: 新手gtk 问题

#3

帖子 admin_xyz » 2013-03-29 9:30

为什么还要编译成release 版呢,那一开始下载下来的是什么
头像
huangbster
帖子: 187
注册时间: 2012-10-29 11:35
系统: UBUNTU

Re: 新手gtk+问题

#4

帖子 huangbster » 2013-03-29 9:59

不明白,cb可以把程序编译成DEBUG和RELEASE两个版本,DEBUG版本的程序运行会带控制台窗口的。
头像
admin_xyz
帖子: 199
注册时间: 2012-05-26 8:33
系统: Ubuntu 12.04

Re: 新手gtk+问题

#5

帖子 admin_xyz » 2013-04-03 20:02

不过我已经决定不用cb 了。。。决定 小米加步枪, vim+gcc !!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 新手gtk+问题

#6

帖子 eexpress » 2013-04-03 21:34

cb真这样无聊。。
● 鸣学
头像
tangboyun
帖子: 701
注册时间: 2009-07-25 1:57
联系:

Re: 新手gtk+问题

#7

帖子 tangboyun » 2013-04-03 22:54

上面两个回答的只是表象. 其实windows下要不显示控制台的话,需要给ld一个额外的flag,-mwindows, 比如这么给:

代码: 全选

gcc -o simple simple.c `pkg-config --libs --cflags gtk+-2.0` -mwindows
这样做必须保证你的程序不会使用stdin、stdout,stderr,否则会抛出异常并终止。
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
回复