NTシステムデザインの技術メモ

GTK+プログラミングメモ

最終更新:

ntaka206

- view
管理者のみ編集可

TAB order set


ComboBoxのサンプル

rendererを設定しないと、クリックしたときにコンボの内容が表示されない。
int combo_export_type_init(GtkComboBox *combo)
 {
 	GtkCellRenderer *renderer;
 	char	*items[] = { "PNG(.png)", "PostScript(.ps)", "PDF(.pdf)", NULL };
 
 	if (combo == NULL) {
 		PDEBUGERR("combo == NULL\n");
 		return -1;
 	}
 	// rendererをセットしないと項目の表示が出来ない
 	renderer = gtk_cell_renderer_text_new();
 	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
 	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL);
 	// 項目セット
 	combo_text_items_set(combo, items);
 	gtk_combo_box_set_active(combo, 0);
 	return 0;
 }
 

Windowの再描画

// event flush
void event_flush(void)
{
	// イベントを強制的に処理
	while (gtk_events_pending ())
	gtk_main_iteration ();
}
// window redraw
void window_redraw(GtkWidget	*window)
{
	// 再描画イベントを発生
	gdk_window_invalidate_rect(GTK_WIDGET(window)->window, NULL, TRUE);
	event_flush();
}
 

イベントを強制的に処理する

while (gtk_events_pending ())
  gtk_main_iteration ();

スクロールバーのスライダが動かない

スクロールバーのchange_valueイベントで、使用しているadjustmentのvalueをアップデートする。
gboolean on_hscrollbar_time_change_value(GtkRange *range, GtkScrollType scroll, gdouble value, gpointer user_data)
 {
   // adjustmet value update
   gtk_adjustment_set_value(adjustment_hscroll_time, value);
 }
 

人気記事ランキング
目安箱バナー