当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-06 10:07 
头像

注册: 2012-05-26 8:33
帖子: 199
系统: Ubuntu 12.04
送出感谢: 14
接收感谢: 0 次
代码:
#include <gtk/gtk.h>

int main(int argc, char *argv[])
{

    GtkWidget   *window;
    GtkWidget   *button;

    gtk_init (&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    // ------------------- set from --------------------//

    gtk_window_set_title(GTK_WINDOW(window), "xyz");
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(window), 500, 200);

    //-------------------- set button ----------------//

    button =gtk_button_new_with_label("I am button");
    gtk_container_add(GTK_CONTAINER(window), button);   
    gtk_widget_set_size_request(button, 130, 90);                                   //这句一点用也没有啊...按钮默认还是全屏的...好恶心


    g_signal_connect_swapped(G_OBJECT(window), "Destory", G_CALLBACK(gtk_main_quit), NULL); //这句代码貌似没什么问题, 可是编译的时候出warning

    gtk_widget_show (window);
    gtk_widget_show (button);
    gtk_main();

    return 1;
}






代码:
xyz@Linux:~/develop/c/gtk+$ sudo gcc -Wall -g gtk_button.c -o gtk_button `pkg-config --cflags --libs gtk+-2.0`
xyz@Linux:~/develop/c/gtk+$ ./gtk_button

(gtk_button:3563): GLib-GObject-WARNING **: /build/buildd/glib2.0-2.32.3/./gobject/gsignal.c:2455: signal `Destory' is invalid for instance `0x9190000'

xyz@Linux:~/develop/c/gtk+$


两个问题
1:
如何设置按钮大小
2;
为什么编译时会返回这个信息.


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-06 11:30 
头像

注册: 2012-10-29 11:35
帖子: 187
系统: UBUNTU
送出感谢: 1
接收感谢: 3
1. 增加GtkBox,把按钮放在BOX里面。
2.信号的所有字母都是"小写"的。
建议先是用glade来辅助开发。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-06 13:18 
头像

注册: 2012-05-26 8:33
帖子: 199
系统: Ubuntu 12.04
送出感谢: 14
接收感谢: 0 次
:em06 第2个问题解决了... 原来是 destroy。。。           我写成了 destory...


我想先把这些信号什么的东西搞熟了之后再用glade

--------------------------

我又增加了一个 pixed 定位按钮的函数
运行后终端里面出现
(gtk_button:4836): Gtk-WARNING **: Can't set a parent on widget which has a parent


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-07 0:33 
头像

注册: 2010-01-17 15:39
帖子: 403
系统: Debian Wheezy AMD64
送出感谢: 0 次
接收感谢: 6
因为GTK+的控件大小并非完全凭开发者自行设置,而GtkWindow默认会把子控件最大化显示,因此乃需要一个GtkBox/GtkGrid来存放按钮


_________________
OS: Debian Wheezy (Testing) for AMD64~~~
Mobile Phone: Nokia N900, OS: Maemo 5.0 (Base on Debian)~~~
本人的项目: RhythmCat(Linux下的音乐播放器.....支持歌词等功能...)
http://code.google.com/p/rhythmcat

RhythmCat 2进行中 (https://github.com/supercatexpert/RhythmCat2/)


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-07 18:38 
头像

注册: 2012-05-26 8:33
帖子: 199
系统: Ubuntu 12.04
送出感谢: 14
接收感谢: 0 次
代码:
#include <gtk/gtk.h>

int main(int argc, char *argv[])
{

    GtkWidget   *window;
    GtkWidget   *button;
    GtkWidget   *fixed;

    gtk_init (&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    // ------------------- set from --------------------//

    gtk_window_set_title(GTK_WINDOW(window), "xyz");
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(window), 500, 200);

    //-------------------- set command ----------------//

    fixed = gtk_fixed_new();


    button =gtk_button_new_with_label("I am button");

    gtk_fixed_put(GTK_FIXED(fixed), button, 80, 80);

    gtk_container_add(GTK_CONTAINER(window), fixed);

    g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

    gtk_widget_show (window);
    gtk_widget_show (button);
    gtk_widget_show (fixed);


    gtk_main();

    return 1;
}


更新过的代码。

我还有一些问题很疑惑.

gtk+只是一个图形库吗, 除了能用c写图形界面程序外什么也不能了吗?
如果学会gtk+可以找到工作吗, 现在有公司开发用gtk+吗

看那本《gtk+中文程序设计》书, 里面没有讲详细, 什么按钮的属性, 文本框之类的。接下来我该怎么学,往哪方面努力, 求指点指点!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-07 20:47 
头像

注册: 2010-01-17 15:39
帖子: 403
系统: Debian Wheezy AMD64
送出感谢: 0 次
接收感谢: 6
admin_xyz 写道:
gtk+只是一个图形库吗, 除了能用c写图形界面程序外什么也不能了吗?
如果学会gtk+可以找到工作吗, 现在有公司开发用gtk+吗

看那本《gtk+中文程序设计》书, 里面没有讲详细, 什么按钮的属性, 文本框之类的。接下来我该怎么学,往哪方面努力, 求指点指点!


GTK+本身的确只是一个图形库而已,但是它的基础库GLib, GObject等等却为C提供了很多基础的功能,如各种数据结构、跨平台的进程、线程库实现、在C语言上实现面向对象编程(GObject)等等,Cairo实现绘图,Pango实现文字排版

在某些嵌入式开发领域可以接触到GTK+开发,也有少数进行Linux桌面程序开发的公司会需要这个。俺现在就在做GTK+程序方面的开发。
GTK+有关的资料建议看英文的,中文方面的资料非常缺乏而且过时,GTK+ 2的可以看Foundations of GTK+ Development这本书,GTK+ 3有GNOME 3 Application Development Beginner's Guide这本书


_________________
OS: Debian Wheezy (Testing) for AMD64~~~
Mobile Phone: Nokia N900, OS: Maemo 5.0 (Base on Debian)~~~
本人的项目: RhythmCat(Linux下的音乐播放器.....支持歌词等功能...)
http://code.google.com/p/rhythmcat

RhythmCat 2进行中 (https://github.com/supercatexpert/RhythmCat2/)



_________________
评价: 3.7% admin_xyz
 
页首
 用户资料  
 
7 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-08 20:47 
头像

注册: 2012-05-26 8:33
帖子: 199
系统: Ubuntu 12.04
送出感谢: 14
接收感谢: 0 次
谢谢你帮我解惑..
那你现在学gtk+2.0还是gtk+3.0

那我现在学的属于 object-c 吗。。。 :em06


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-09 0:54 
头像

注册: 2010-01-17 15:39
帖子: 403
系统: Debian Wheezy AMD64
送出感谢: 0 次
接收感谢: 6
admin_xyz 写道:
谢谢你帮我解惑..
那你现在学gtk+2.0还是gtk+3.0

那我现在学的属于 object-c 吗。。。 :em06


必然是GTK+ 3,GObject只是C下的一个库而已,和Objective-C没有任何关系


_________________
OS: Debian Wheezy (Testing) for AMD64~~~
Mobile Phone: Nokia N900, OS: Maemo 5.0 (Base on Debian)~~~
本人的项目: RhythmCat(Linux下的音乐播放器.....支持歌词等功能...)
http://code.google.com/p/rhythmcat

RhythmCat 2进行中 (https://github.com/supercatexpert/RhythmCat2/)


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-09 16:22 
头像

注册: 2012-05-26 8:33
帖子: 199
系统: Ubuntu 12.04
送出感谢: 14
接收感谢: 0 次
gtk+2和gtk+3有什么区别,现在学gtk+2过时了吗

安了你写的播放器,感觉非常好...比自带的那个好!


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-09 16:29 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
直接上3嘛。建议看看vala。写起来舒服些。运行效率很高。


_________________
● 鸣学


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-09 20:08 
头像

注册: 2009-07-25 1:57
帖子: 701
送出感谢: 5
接收感谢: 13
GNOME 3 Application Development Beginner's Guide 这本上个月google了半小时找电子泄出版未遂。。。


_________________
https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-09 21:57 
头像

注册: 2012-05-26 8:33
帖子: 199
系统: Ubuntu 12.04
送出感谢: 14
接收感谢: 0 次
我现在有点糊涂了, 为什么要用vala呢... 用c语言直接写不好么, 学vala的话是不是没有太大必要呢...

百度了下 Gobject。。。还是没看懂是干啥的... 只是一个库么?这个库有什么用,和gtk+又有什么关系


最后由 admin_xyz 编辑于 2013-04-09 22:21,总共编辑了 1 次

页首
 用户资料  
 
13 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-09 22:16 
头像

注册: 2012-05-26 8:33
帖子: 199
系统: Ubuntu 12.04
送出感谢: 14
接收感谢: 0 次
Simple install procedure
========================

% gzip -cd gtk+-3.0.12.tar.gz | tar xvf - # unpack the sources
% cd gtk+-3.0.12 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK+
[ Become root if necessary ]
% make install # install GTK+

我从gnome官网下的gtk+3.0 , 下载到download目录,直接在download目录安装的...这样软件会安装到哪里... 不会是download里面吧... :em35


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 求助, gtk+按钮大小设置求助
帖子发表于 : 2013-04-10 0:02 
头像

注册: 2010-01-17 15:39
帖子: 403
系统: Debian Wheezy AMD64
送出感谢: 0 次
接收感谢: 6
admin_xyz 写道:
Simple install procedure
========================

% gzip -cd gtk+-3.0.12.tar.gz | tar xvf - # unpack the sources
% cd gtk+-3.0.12 # change to the toplevel directory
% ./configure # run the `configure' script
% make # build GTK+
[ Become root if necessary ]
% make install # install GTK+

我从gnome官网下的gtk+3.0 , 下载到download目录,直接在download目录安装的...这样软件会安装到哪里... 不会是download里面吧... :em35

最好不要自己编译系统可能自带的库,乃如果用的是Debian/Ubuntu,直接sudo apt-get install libgtk-3-dev即可。编译默认来说是装到/usr/local下面的


_________________
OS: Debian Wheezy (Testing) for AMD64~~~
Mobile Phone: Nokia N900, OS: Maemo 5.0 (Base on Debian)~~~
本人的项目: RhythmCat(Linux下的音乐播放器.....支持歌词等功能...)
http://code.google.com/p/rhythmcat

RhythmCat 2进行中 (https://github.com/supercatexpert/RhythmCat2/)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译