当前位置:  技术问答>linux和unix

GTK想请问一个关于右键的问题

    来源: 互联网  发布时间:2016-06-10

    本文导语:  我已经可以出现右键菜单 也可以传送event给我所写的function 而当我右键点选时 出现了菜单 却无法同时选中档案 想请问有什么方式做呢 以下是我右键菜单的code //////點選右鍵後的動作///////////////////////////////////////////...

我已经可以出现右键菜单
也可以传送event给我所写的function
而当我右键点选时 出现了菜单
却无法同时选中档案
想请问有什么方式做呢
以下是我右键菜单的code

//////點選右鍵後的動作//////////////////////////////////////////////////////////////////////
static void do_popup_menu (GtkWidget *my_widget, GdkEventButton *event)
{

GtkWidget *menu;
GtkWidget *open, *new, *cut, *copy, *paste, *rename, *delete;
GtkWidget *a;
int button, event_time;

menu = gtk_menu_new ();
// ... add menu items ... 

if (event)
{
button = event->button;
event_time = event->time;

}
else
{
button = 0;
event_time = gtk_get_current_event_time ();

}

new = gtk_menu_item_new_with_label("New Folder");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), new);
g_signal_connect(G_OBJECT(new), "activate", 
G_CALLBACK(new_folder), main_store);

open = gtk_menu_item_new_with_label("Open File");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), open);
g_signal_connect(G_OBJECT(open), "activate", 
G_CALLBACK(open_file), NULL);

a = gtk_menu_item_new_with_label("--------------------");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), a);

cut = gtk_menu_item_new_with_label("Cut");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), cut);
g_signal_connect(G_OBJECT(cut), "activate", 
G_CALLBACK(cut_item), NULL);

copy = gtk_menu_item_new_with_label("Copy");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), copy);
g_signal_connect(G_OBJECT(copy), "activate", 
G_CALLBACK(copy_item), NULL);

paste = gtk_menu_item_new_with_label("paste");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), paste);
g_signal_connect(G_OBJECT(paste), "activate", 
G_CALLBACK(paste_item), main_store);

rename = gtk_menu_item_new_with_label("Rename");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), rename);
g_signal_connect(G_OBJECT(rename), "activate", 
G_CALLBACK(rename_item), main_store);

delete = gtk_menu_item_new_with_label("Delete");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), delete);
g_signal_connect(G_OBJECT(delete), "activate", 
G_CALLBACK(remove_item), main_store);

gtk_menu_attach_to_widget (GTK_MENU (menu), my_widget, NULL);
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 
  button, event_time);
gtk_widget_show_all(GTK_WIDGET(menu));

return;

}

//////判別是否點選右鍵////////////////////////////////////////////////////////////////////////////
static gboolean my_widget_button_press_event_handler (GtkWidget *widget, 
GdkEventButton *event, gpointer data)
{
// Ignore double-clicks and triple-clicks

if (event->button == 3 && event->type == GDK_BUTTON_PRESS 
)
{
do_popup_menu (widget, event);
return TRUE;
}
else if(event->button == 1)
{
// item_activated (icon_view, tree_path, user_data);
}

return FALSE;
}

/////popup handler////////////////////////////////////////////////////////////////////////////
static gboolean my_widget_popup_menu_handler (GtkWidget *widget)
{
do_popup_menu (widget, NULL);
return TRUE;
}

|

    
 
 

您可能感兴趣的文章:

  • 我想学习GTK+2.0,请问如何准备GTK编程环境???
  • 请问:gtk有哪些信息啊,delete_event是不是个信息啊,哪有gtk信息的资料啊,帮助上有吗?
  • 请问gdk和gtk的函数库是怎么按装的?
  • 请问如何编译gtk程序
  • 请问该如何配置GTK的字体配置文件??
  • 请问:GTK有没有IP地址输入框,及状态条?
  • 请问哪里有用gtk做的程序,并包含源代码下载?
  • 请问在gtk中怎么改变控件大小?
  • 请问如何编译GTK+的windows版本
  • 请问各位大虾,用gtk编程如何让图片缩放,旋转?
  • 请问:redhat 里有gtk的帮助文档吗,看到一些函数都不知道它的作用是什么啊
  • 请问motif和GTK?谢谢,在线等!
  • 请问GTK和SDL能配合使用吗?
  • 请问:关于在GNOME里利用GTK+设计程序的一个调试问题
  • 请问在Linux下用GTK开发,是否有像MSDN这样的帮助啊?
  • 请问,使用GTK如何显示标准的浏览文件夹的对话框?HILDON提供吗?
  • 请问GTK下编程,如何将一个图片设计成一个按钮?谢谢!
  • 请问怎么把result_entry=gtk_entry_new()设置为只能显示,不能输入?
  • 大哥大姐帮帮忙,请问gtk+和gdk方面的书籍在哪里下载。哪本书好。
  • 请问哪里有GTK的教程下载?
  • 【重要】gtk+ 编译gtk+的问题,不同于一般gtk的搭建--1000分,问题解决了,开号给分,决不食言!大家都来看看
  • 关于gtk的目录问题,我的目录是 gtk-2.0/gtk/gtk.h ??
  • Redhat linux9.0 下Gtk+编程的#include <gtk/gtk.h>问题
  • [GTK] gtk最小化问题与恢复问题
  • gtk for win 和 gtk for linux 下的程序问题?
  • GTK+ gtk_tree问题
  • 【gtk+】初学gtk+,请教一个问题
  • 【gtk】关于gtk布局问题
  • 关于GTK中gtk_widget_hide()的问题
  • gtk编程问题,如何在一个线程中向gtk控件发送一个expose_event消息
  • gtk编程中关于gtk_widget_show函数的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • gtk 和 gtk+ 有什么区别?
  • centos5.4中安装gtk时,yum库最新版是gtk2.10,如何更新yum库安装gtk2.12
  • 我使用GTK+2.0写界面程序时,怎么找不到gtk.h文件?
  • GTK窗口前端显示及GTK窗口闪烁
  • 用GTK开发的程序如何在没有GTK动态连接库的Linux里运行?
  • 【GTK】GTK中有没有这个widget?
  • 本人刚学gtk编程,留下油箱,欢迎喜欢gtk编程的朋友和我交流啊!!!!
  • 大家好,想知道gtk与gtk+有什么区别?
  • gtk中如何获取gtk_text_view中的输入内容?
  • GTK+中类似gtk_hbox_new这样的给构件分配内存的函数 为什么不用手动释放?
  • 高分请教,如何能够使GTK能够在gtk生成的窗口里面放一个其它程序的窗口?
  • 为什么,我的/usr/include/下没有,没gtk和gdk目录?
  • gtk编程的报错了
  • 哪位大虾懂linux gtk+
  • gtk_image_new的使用
  • 怎样正确设置GTK+的环境变量?
  • GTK+的C++接口 GTKmm
  • PHP-GTK
  • about gtk programming????
  • gtk 全屏的疑问。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3