码迷,mamicode.com
首页 > 其他好文 > 详细

Glade开发GTK+ 界面

时间:2020-01-03 23:12:10      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:builder   使用权   href   事件   sssss   build   注册   assertion   char   

1:概述

 Java 有WindowBuilder 来可视化构建界面, C++ 可以选择QT 但是硬要用GTK 怎么办呢? 使用Glade啊

 安装:

">sudo apt-get install glade

注意: 或者直接在Ubuntu的应用商店搜索安装, Ubuntu搜索安装会有三个, 最好自己试一试, 我选择安装最后一个成功.

技术图片

 

2: 来 搞个界面出来

  下面的这个注册 直接关闭跳过

 技术图片

 

技术图片

 

给按钮设置 信号控制 也就是事件

技术图片

 

 

 3: 编写代码

#include <gtk/gtk.h>
#include <stdio.h>
//我们在UI中,为button1添加的点击函数
void btn_click(GtkObject *object, gpointer user_data){
    printf("5sssssssssssssssss");
     gtk_main_quit();
}

int main (int argc, char *argv[])
{
    GtkBuilder *builder;
    GtkWidget *window;
    GtkWidget  *btn;
    gtk_init (&argc, &argv);//gtk初始化

    builder = gtk_builder_new ();//指针分配空间
    gtk_builder_add_from_file (builder, "lay1.glade", NULL);//读取button.xml文件
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);  //创建窗口
    window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));//获取window串口使用权

    btn= GTK_WIDGET(gtk_builder_get_object (builder, "btn"));

    //gtk_signal_connect(btn,"destroy",G_CALLBACK(btn_click),NULL);

    gtk_builder_connect_signals (builder, NULL);//连接响应事件
    g_object_unref (G_OBJECT (builder));  //释放xml内存空间
    gtk_widget_show(window);
    gtk_main ();//事件响应函数
    return 0;
}

 

 

编译出现问题:  assertion ‘GTK_IS_WIDGET (widget)‘ failed的解决办法

参考 这边博客解决办法: https://www.cnblogs.com/dgwblog/p/12146591.html

 

 

 

 

Glade开发GTK+ 界面

标签:builder   使用权   href   事件   sssss   build   注册   assertion   char   

原文地址:https://www.cnblogs.com/dgwblog/p/12145054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!