【问题标题】:Moving controls with the mouse with Gtk使用 Gtk 使用鼠标移动控件
【发布时间】:2012-06-29 20:23:03
【问题描述】:

我在移动 Gtk Fixed 项目上的控件时遇到问题,代码抖动移动,而且速度通常很慢。我已经尝试找到正确的方法来做到这一点,但是都显示了相同的结果。

我认为相关的代码是:

        view.button_press_event.connect( (bp) => {
            view.set_data("in_motion", true);

            int pointX = 0; int pointY = 0;
            fixed.get_pointer(out pointX, out pointY);
            int origX = 0; int origY = 0;
            view.translate_coordinates(fixed, 0,0, out origX, out origY);

            view.set_data("startx", origX + origX);
            view.set_data("starty", origY + origY);
            view.set_data("startsx", pointX);
            view.set_data("startsy", pointY);
            view.is_focus = true;
            view.has_focus = true;
            return false;
        });
        view.button_release_event.connect( (bp) => {
            view.set_data("in_motion", false);
            return false;
        });
        view.motion_notify_event.connect( (me) => {
            // TODO: Make this less glitchy somehow
            if(view.get_data<bool>("in_motion") == true){
                int x = view.get_data<int>("startx") + (int)me.x - view.get_data<int>("startsx");
                int y = view.get_data<int>("starty") + (int)me.y - view.get_data<int>("startsy");
                ((Fixed)view.parent).move(view, x,y );
            }
            return false;
        });

(其余在https://github.com/kennydude/diagramatic/blob/master/diagram.vala

【问题讨论】:

    标签: gtk widget vala


    【解决方案1】:

    好的,所以我设法做到了,但是代码库转移到了 python(Vala 太难了)。

    https://github.com/kennydude/diagramatic/blob/master/diagram.py

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 2021-06-27
      • 2010-09-18
      相关资源
      最近更新 更多