質問

Windowsエラーダイアログでは、Ctrl-Cを使用してウィンドウテキストをコピーできます。

私は私のGTKアプリで私が使用しているメッセージダイアログと同じことをユーザーにすることを許可したいです。

GTK MessageDialogクラスをコピーコマンドを処理できるようにする方法はありますか?

役に立ちましたか?

解決

私が終わったことは、キーボードアップコマンドをトラップするためのダイアログにメッセージハンドラを追加することでした。

トリガーされたときは、CTRL-Cコンボを確認し、テキストをクリップボードに入れます。

他のヒント

それをするよりも簡単な方法があります。 gtk_message_dialog_new()

の後、ダイアログで_SET_LABLES_SELECTABLE()を呼び出します。
static void _set_label_selectable(gpointer data, gpointer user_data)
{
    GtkWidget *widget = GTK_WIDGET(data);

    if (GTK_IS_LABEL(widget))
    {
        gtk_label_set_selectable(GTK_LABEL(widget), TRUE);
    }
}

static void _set_lables_selectable(GtkWidget *dialog)
{
    GtkWidget *area = gtk_message_dialog_get_message_area(
        GTK_MESSAGE_DIALOG(dialog));
    GtkContainer *box = (GtkContainer *) area;

    GList *children = gtk_container_get_children(box);
    g_list_foreach(children, _set_label_selectable, NULL);
    g_list_free(children);
}
.

GtkWidget *dialog =  gtk_message_dialog_new(opgU_window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO,
"%s", mbuf);

_set_lables_selectable(dialog);
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top