0

GTK +リファレンスマニュアルによると、gtk_tree_view_set_reorderableを使用すると、行を並べ替えるためのドラッグアンドドロップが有効になります。

LinuxでGTK+3とGTK+2を使って試しましたが、うまくいくようです。しかし、GTK +2.24.0を使用してMicrosoftWindowsで試したところ、行をドラッグすることはできますが、ドロップすることはできません。

Ubuntu Linux 11.04(Gnome 3デスクトップを使用)とMicrosoft Windows XP ServicePack3を使用してテストしました。

reorderableをTRUEに設定する以外に、Microsoft Windowsで何か他のことをする必要がありますか?

これは私がこれをテストするために使用した簡単なプログラムです:

#include <gtk/gtk.h>

enum
{
   TITLE_COLUMN,
   N_COLUMNS
};

int
main (int argc, char* argv[])
{
    gtk_init (&argc, &argv);

    GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size (GTK_WINDOW (window), 600, 400);
    g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

    GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "Ubuntu", -1);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "Fedora", -1);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "Debian", -1);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "Arch Linux", -1);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "Mandriva", -1);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "Gentoo", -1);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "openSUSE", -1);
    gtk_list_store_insert_with_values (store, NULL, -1, TITLE_COLUMN, "Slackware", -1);

    GtkWidget* tree = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
    gtk_tree_view_set_reorderable (GTK_TREE_VIEW (tree), TRUE);
    gtk_container_add (GTK_CONTAINER (window), tree);

    g_object_unref (G_OBJECT (store));

    GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("Linux Distribution",
        gtk_cell_renderer_text_new (),
        "text", TITLE_COLUMN,
        NULL);
    gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);

    gtk_widget_show_all (window);

    gtk_main ();

    return 0;
}
4

1 に答える 1

1

これは、Windows GTK+ ポートのバグである可能性があります。GTK+ の主な開発は Linux やその他の X11 プラットフォームに焦点を当てており、Windows や Mac OS への移植はそれほど注目されていません。

この質問を GTK+ メーリング リストに投稿することをお勧めします。妥当な回答が得られない場合は、バグ レポートを提出する必要があります。

于 2011-08-01T00:00:24.753 に答える