【问题标题】:Is there any replacement for "GtkRuler" in GTK3?GTK3中的“GtkRuler”有什么替代品吗?
【发布时间】:2016-10-05 06:57:35
【问题描述】:

我想用gtk3在框架上显示水平和垂直标尺。

这是我的框架:

我想像这样在框架上显示标尺:

但是 GtkRuler 已从 GTK 3 中删除,因为它没有维护且过于专业!!

这是我的 GTK3/c cpde:

   /* The horizontal ruler goes on top. As the mouse moves across the
    * drawing area, a motion_notify_event is passed to the
    * appropriate event handler for the ruler. */
   hrule = gtk_hruler_new ();
   gtk_ruler_set_metric (GTK_RULER (hrule), GTK_PIXELS);
   gtk_ruler_set_range (GTK_RULER (hrule), 7, 13, 0, 20);
   g_signal_connect_swapped (area, "motion_notify_event",
                      G_CALLBACK (EVENT_METHOD (hrule,        motion_notify_event)),
                      hrule);
   gtk_table_attach (GTK_TABLE (table), hrule, 1, 2, 0, 1,
              GTK_EXPAND|GTK_SHRINK|GTK_FILL, GTK_FILL, 0, 0);

   /* The vertical ruler goes on the left. As the mouse moves across
    * the drawing area, a motion_notify_event is passed to the
    * appropriate event handler for the ruler. */
   vrule = gtk_vruler_new ();
   gtk_ruler_set_metric (GTK_RULER (vrule), GTK_PIXELS);
   gtk_ruler_set_range (GTK_RULER (vrule), 0, YSIZE, 10, YSIZE );
   g_signal_connect_swapped (area, "motion_notify_event",
                      G_CALLBACK (EVENT_METHOD (vrule, motion_notify_event)),
                      vrule);
   gtk_table_attach (GTK_TABLE (table), vrule, 0, 1, 1, 2,
              GTK_FILL, GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0);

您对如何解决此任务有什么建议?或者我可以在 Internet 上的哪些资源上找到帮助?

【问题讨论】:

    标签: gtk3 rulers


    【解决方案1】:

    如果您的代码具有兼容的许可证,您只需将 GTK 2 中的 GtkRuler 复制到您的代码中,进行必要的更改以使其与 GTK 3 一起使用。

    【讨论】:

    • @ptomato:GtkRuler 已从 GTK 3 中删除,因为它没有维护且过于专业!! link
    • 是的。但是 GTK 2 中仍然存在 GtkRuler。您可以将该代码从 GTK 2 复制到您的应用程序中,并使其与 GTK 3 一起使用。
    • @ptomato:我是 gtk 的新手。如何使 gtk2 代码与 gtk3 一起工作?当我将该代码从 GTK 2 复制到我的应用程序中时,它会显示错误!
    • 这是一个太大的话题,无法在一条评论中涵盖。我建议阅读GTK 2 to 3 migration guide,然后尝试一一解决这些编译错误。
    • @ptomato:非常感谢。我参观了它。但是错误并没有解决。例如,“gtk_drawing_area_size”已被弃用,不应在新编写的代码中使用,gnome 开发人员引入“gtk_widget_set_size_request()”代替它 (link)。但是,对于“gtk_hruler_new”和“gtk_vruler_new”,gnome 开发人员不要为它们引入任何替代品。
    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2022-11-10
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多