GTK+2.0---文件选择对话框(gtk_file_chooser)

本文介绍如何使用GTK库创建文件选择对话框,并提供了一个简单的示例程序,该程序包含打开文件对话框的功能,展示了如何获取用户选择的文件名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这有两个选择(当然如果你自己从一个对话框控件中生成一个你想要的文件选择对话框我没意见),一个是GtkFileSelection控件,一个是GtkFileChooser控件,我使用后者,前者一般在新的程序中不使用了
#include <gtk/gtk.h>
void print_filename(GtkWidget *file)
{
    GtkWidget *dialog;
    gchar *filename;
    filename=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(file));
    gtk_widget_destroy(file);
    dialog=gtk_message_dialog_new(NULL,GTK_DIALOG_MODAL,GTK_MESSAGE_INFO,GTK_BUTTONS_OK,filename);
    gtk_dialog_run(GTK_DIALOG(dialog));
    gtk_widget_destroy(dialog);
}
void select_file(GtkWidget *widget,gpointer data)
{
    GtkWidget *file;
    int file_return;
    file=gtk_file_chooser_dialog_new("SelectFile",NULL,GTK_FILE_CHOOSER_ACTION_OPEN,GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_OK,GTK_RESPONSE_ACCEPT,NULL);
    if(gtk_dialog_run(GTK_DIALOG(file))==GTK_RESPONSE_ACCEPT)
        print_filename(file);
    else
        gtk_widget_destroy(file);
}
int main(int argc,char **argv)
{
    GtkWidget *win;
    GtkWidget *button;
    gtk_init(&argc,&argv);
    win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(win),"FileDialog");
    gtk_window_set_position(GTK_WINDOW(win),GTK_WIN_POS_CENTER);
    g_signal_connect(G_OBJECT(win),"destroy",G_CALLBACK(gtk_main_quit),NULL);
    button=gtk_button_new_with_label("Click Me");
    gtk_container_add(GTK_CONTAINER(win),button);
    g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(select_file),NULL);
    gtk_widget_show_all(win);
    gtk_main();
    return 0;
}
编译
gcc -o file_select file_selec.c `pkg-config --cflags --libs gtk+-2.0`
如图
GTK+2.0---文件选择对话框 - 枯龙吟 - 枯龙吟
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值