ZBLOG

static gint motion_notify_event(GtkWidget * widget, GdkEventButton * event,gpointer data)//鼠标移动事件 { gint x, y; GtkWidget *window = (GtkWidget *) data; gtk_window_get_position((GtkWindow *) window, &x, &y); // 取窗体绝对坐标 ...

根据提供的代码片段,错误出现在 gdk_window_move_resize() 函数调用处。错误信息指出 ‘GtkWidget’ 结构体没有名为 ‘window’ 的成员。

要解决此问题,可以使用 gtk_widget_get_window() 函数来获取窗口对象的 GdkWindow,并将其作为参数传递给 gdk_window_move_resize() 函数。

下面是修改后的代码:

static gint motion_notify_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
{
    gint x, y;
    GtkWidget *window = (GtkWidget *)data;
    gtk_window_get_position(GTK_WINDOW(window), &x, &y); // 取窗体绝对坐标

    GdkWindow *gdk_win = gtk_widget_get_window(widget);
    gdk_window_move_resize(gdk_win, x, y, 100, 80);

    if (drag)
    {
        gtk_window_move(GTK_WINDOW(window), x + event->x - nX, y + event->y - nY); // 移动窗体
        g_print("x=%d;y=%d\n", x, y);
    }

    return TRUE;
}

请注意,我在代码中添加了一行来获取窗口的 GdkWindow 对象并将其命名为 gdk_win。然后,我将该对象传递给 gdk_window_move_resize() 函数。

这样应该能够修复你遇到的问题。如果还有其他问题,请随时提问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=11913

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?