NTシステムデザインの技術メモ
GTK+プログラミングメモ
最終更新:
ntaka206
-
view
TAB order set
[Glade-users] Tabing in Glade
http://lists.ximian.com/pipermail/glade-users/2010-October/005120.html
http://lists.ximian.com/pipermail/glade-users/2010-October/005120.html
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 ();
gtk_events_pending()
http://library.gnome.org/devel/gtk/stable/gtk-General.html#gtk-events-pending
http://library.gnome.org/devel/gtk/stable/gtk-General.html#gtk-events-pending
gtk_main_iteration()
http://library.gnome.org/devel/gtk/stable/gtk-General.html#gtk-main-iteration
http://library.gnome.org/devel/gtk/stable/gtk-General.html#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);
}