【问题标题】:How to connect Copy/Paste/Select/Cut menu items to Gtk# widgets?如何将复制/粘贴/选择/剪切菜单项连接到 Gtk# 小部件?
【发布时间】:2011-10-27 18:42:48
【问题描述】:

如何在 Gtk# 中创建由所有可能的小部件正确处理的菜单项?我在 Gtk# 菜单中添加了 Copy/Paste/etc Actions,但是如何将其传递给具有焦点的任何小部件?您需要为每个可能的小部件连接一些东西吗?

例如,我希望能够从 Gtk.Labels 和 Gtk.TextAreas 复制,并粘贴到 Gtk.Entries 和 Gtk.TextAreas。同样,Paste 菜单选项在只读 Gtk.TextArea 上时不应该是 Sensitive。

相关,我希望能够在应用程序之间复制/粘贴,这应该适用于 Linux、Mac 和 Windows。

任何指针表示赞赏!希望在 C# 中看到一个正确处理此问题的简单示例。我在 MonoDevelop 工作,顺便说一句。

【问题讨论】:

    标签: c# clipboard monodevelop gtk#


    【解决方案1】:

    无论如何,我有一个 C 语言的简单示例。请参阅此文件中的函数action_cut()action_copy()action_paste()https://github.com/ptomato/gnome-inform7/blob/master/src/actions.c

    如果您想根据哪个小部件具有焦点来保持您的操作敏感或不敏感,您需要连接到一些信号,该信号会告诉您焦点何时发生变化,然后相应地调整这些操作的灵敏度。在我的脑海中,那将是notify::focus-child

    【讨论】:

    • 谢谢!看起来您的方法是正确的方法,即使您必须明确知道窗口中对象的类型、检查类型并知道对每种类型的每个操作要做什么。如果 GTK 为 Widget 制作一个标准接口来处理所有标准的 gui 操作(剪切、复制、select_all 等)会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多