1
A
答えて
1
を効果なしとresize()
を使用してみました、とも私はget_children()
を経て得られたGtk::Widget&
でremove
を呼び出すことが、私はセグメンテーションフォルトを取得しています。本当に貧しい:-(ですそしてgtk_container_removeは、おそらく、あなたが必要なものを行う必要があります。私はそれは、テーブルコンテナからすべてのラベルウィジェットを削除します(下記参照)の小さな例を作りました。
#include <gtk/gtk.h>
void remove_widgets(GtkWidget *widget, gpointer data)
{
if (GTK_IS_LABEL(widget))
{
g_print("remove label\n");
gtk_container_remove(GTK_CONTAINER(data), widget);
}
}
void remove_rows(GtkWidget *button, GtkWidget* data)
{
g_print("remove rows with labels\n");
gtk_container_foreach(GTK_CONTAINER(data), remove_widgets, data);
}
int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *table;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_widget_set_size_request (window, 300, 250);
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
gtk_window_set_title(GTK_WINDOW(window), "Test Table Remove");
gtk_container_set_border_width(GTK_CONTAINER(window), 15);
table = gtk_table_new(3, 2, FALSE);
gtk_table_set_col_spacings(GTK_TABLE(table), 3);
GtkWidget *label0 = gtk_label_new("Test Label 0");
gtk_table_attach(GTK_TABLE(table), label0, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
GtkWidget *label1 = gtk_label_new("Test Label 1");
gtk_table_attach(GTK_TABLE(table), label1, 1, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
GtkWidget *label2 = gtk_label_new("Test Label 3");
gtk_table_attach(GTK_TABLE(table), label2, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
GtkWidget *label3 = gtk_label_new("Test Label 4");
gtk_table_attach(GTK_TABLE(table), label3, 1, 2, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
GtkWidget *button0 = gtk_button_new_with_label("Remove Labels");
gtk_widget_set_size_request(button0, 70, 30);
gtk_table_attach(GTK_TABLE(table), button0, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
g_signal_connect(G_OBJECT(button0), "clicked", G_CALLBACK(remove_rows), table);
gtk_container_add(GTK_CONTAINER(window), table);
g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), G_OBJECT(window));
gtk_widget_show_all(window);
gtk_main();
return 0;
}
これが役に立てば幸い、
について関連する問題
- 1. 消去を使ってベクトルから要素を消去する
- 2. VBAからJavascriptメッセージボックスを消去する
- 3. C++ペアのリストから消去する
- 4. ActionListenerでJPanelからグラフィックを消去
- 5. プログラムからキャッシュからアイテムのSitecoreキャッシュを消去する
- 6. Vectorからの要素の消去
- 7. Python:ログファイルを消去する
- 8. PhoneGapキャッシュを消去する
- 9. 現在の行を消去する短いコマンドですか?
- 10. remove_if()を実行した後の消去()
- 11. 端末の履歴を消去せずに端末から結果を消去する
- 12. セグメンテーションフォールトベクトル消去中
- 13. マップ消去エラー
- 14. 消去要素
- 15. 端末からSafari Cookieを消去する
- 16. コマンドラインからクロムのインスタンスを一度だけ消去する
- 17. C#:最近使用したファイルをjumplistsから消去する
- 18. 無効な電子メールアドレスからファイルを消去する方法
- 19. 画面から特定のスプライトを消去する
- 20. JTableからデータを消去する方法は?
- 21. C++のベクトルからオブジェクトを消去する
- 22. RAMからアプリを消去した後にAndroid localStorageが消える
- 23. ベクトルを消去または消去するC++の最速の方法
- 24. UITableViewデータの消去
- 25. ハスケルでタイプ消去?
- 26. ジェネリック消去とレガシーコード
- 27. Javaジェネリック型消去
- 28. 奇妙な消去
- 29. Javaの消去タイプ
- 30. ガウス消去のロジックエラー
seg-faultingコードを表示してください。これを行う方法はGtk :: Container removeメソッドでなければなりません。 – Mark