GTK编程-----设置窗口不可改变的一个问题

小弟最近在学GTK编程,具体来说就是编写一个Linux下面的任务管理器,不过,刚开始就遇到了一个问题,特地把代码发在下面,和大家来分享,同时,如果有哪位大牛知道的话,麻烦留言告诉我,不胜感激!
原始代码是:
#include  < gtk / gtk.h >

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

  gtk_init(
& argc,  & argv);

  window 
=  gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title(GTK_WINDOW(window), 
" GtkButton " );
  gtk_window_set_default_size(GTK_WINDOW(window), 
230 150 );
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  gtk_window_set_resizable (GTK_WINDOW (window), FALSE);



  g_signal_connect(G_OBJECT(window), 
" destroy " // 另外一个信号就是destroy,就是点击X的时候触发的函数(gtk_main_quit)
      G_CALLBACK(gtk_main_quit), NULL);

  gtk_widget_show(window);

  gtk_main();

  
return   0 ;
}
在上面的代码中,我设置了默认的大小后,在利用resizable来使得窗口的大小不可以改变,具体来说就是,使得没有最大化的窗口,照理说,应该是没有任何问题的,可是实际运行的结果却是:显示的是一个很小的点点(但是也可以看见,就是一个短竖线),不知道是为何原因,我尝试过将resizable那个函数注释掉,就可以正常的显示了。


但是,通过阅读别人的代码,我找到了下面这个代码,它是可以正确的显示大小,而且,可以使得视窗不再变化。
代码:
#include  < gtk / gtk.h >
GtkWidget 
* window;

int  main( int  argc , char   **  argv)
{
  gtk_init(
& argc,  & argv);

  window 
=  gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (window), 
" Linux System Moniter " ); // 标题
 
//  gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); // 默认窗口尺寸大小,有它的话设置不可变大小就有问题
  gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
// 窗口不可改变
  gtk_widget_set_usize(GTK_WIDGET (window), 400 , 415 );
  g_signal_connect(G_OBJECT(window), 
" destroy " , G_CALLBACK(gtk_main_quit), NULL);   // 将窗口关闭信息与destroy_window关联
              



  gtk_widget_show_all (window);    
// 显示所有的窗口和界面


  gtk_main(); 
  
return   0 ;
}
对于上面的这个代码,就没有上面的那个问题,可以正确的显示,通过查询GTK文档,也知道了函数 gtk_widget_set_usize的作用就是设定大小,没有什么区别,那么,这两个代码的效果为何不同呢?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值