我已經填充了包含4列的表格。第一列是填充了循環的複選框。事實上,所有列都填充了一個循環。第二列是文本輸入項[x] [y],其中x是行&。所以這就是我想要做的。當您選中第1行復選框(複選框[y])時,我想更改第2列第1行(條目[x] [y])中輸入框的文本顏色。我知道答案很簡單,但沒有回答。想法?基於複選框更改輸入框中的文本(GTK +)
0
A
回答
0
嗯,這是我的例子。可以更簡單但有效。
#include <gtk/gtk.h>
#include <stdio.h>
#define TABLE 4
#define C_RED "red"
#define C_BLACK "black"
typedef struct _Widgets Widgets;
struct _Widgets
{
GtkWidget *checkbox;
GtkWidget *entry[TABLE-1];
};
static void change_color (GtkWidget *widget, gpointer data)
{
int i;
GdkColor color;
Widgets *_widget = (Widgets*) data;
gchar *cc = NULL;
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
cc = C_RED;
else
cc = C_BLACK;
gdk_color_parse (cc, &color);
for (i = 0; i < TABLE; i++)
gtk_widget_modify_fg (_widget->entry[i], GTK_STATE_NORMAL, &color);
}
int main (int argc, char **argv)
{
int x,z;
int pos = 0;
GtkWidget *window = NULL;
GtkWidget *table = NULL;
Widgets widgets[TABLE];
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW(window), "Feel Gtk Table");
g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
table = gtk_table_new (TABLE, TABLE, FALSE);
gtk_container_add (GTK_CONTAINER (window), table);
for (x = 0; x < TABLE; x++)
{
widgets[x].checkbox = gtk_check_button_new();
gtk_table_attach_defaults (GTK_TABLE(table), widgets[x].checkbox, 0, 1, x, x+1);
g_signal_connect (G_OBJECT (widgets[x].checkbox), "toggled", G_CALLBACK (change_color), &widgets[x]);
for (z = 0; z < TABLE-1; z++)
{
widgets[x].entry[z] = gtk_entry_new();
gtk_table_attach_defaults (GTK_TABLE(table), widgets[x].entry[z], z+1, z+2, x, x+1);
}
}
gtk_widget_show_all (window);
gtk_main();
return 0;
}
+0
我會盡力的。我走了一條不同的道路,遇到了困難。我的想法是將複選框命名爲帶有連接到最後的eth編號的checkbutton。一切都很順利,直到我碰到strncpy(getx,myx,i); 從那我得到瘋狂的字符,而不是我正在使用的字符串。整個代碼是 –
+0
如何在此處發佈代碼?它限制了我的字符。 –
+0
@SteveGe編輯器中有一個用於添加標記的代碼。 –
相關問題
- 1. 更改基於複選框數量的表單文本框
- 2. JQUERY:從選中複選框的文本輸入更改值
- 3. 更改文本框輸入
- 4. 基於複選框輸入值
- 5. 如果複選框被選中,則更改文本框文本
- 6. 更新報頭基於無線電,複選框並選擇輸入文本
- 7. 在複選框更改上切換相應的文本輸入
- 8. C#禁用基於運行時文本框用戶輸入值的複選框
- 9. 基於複選框中的複選框將行插入表格
- 10. 基於文本框輸入的動態文本框創建
- 11. 切換文本,在複選框輸入更改
- 12. 複選框更改文本裝飾輸入字段
- 13. 從複選框選擇插入排序的輸入文本框
- 14. 如何更新基於複選框輸入的MySQL列
- 15. 基於另一個文本框的輸入來更新文本框的Javascript
- 16. 啓用基於加載複選框選擇的文本框
- 17. 更改複選框的文本大小
- 18. 如何更改數組中的圖像基於JavaScript中的文本框輸入?
- 19. 基於動態選擇選項值更改文本框的值
- 20. jQuery來基於複選框選擇改變跨度文本
- 21. JavaScript:基於在文本框中鍵入的值更改圖像
- 22. 只選擇getElementsByTagName中的複選框輸入,排除文本框輸入
- 23. 如何更改輸入框的文本?
- 24. 更改文本框的輸入語言
- 25. 用Javascript更新輸入框複選框
- 26. AngularJS - 基於文本框中輸入數組替換值改變
- 27. 在輸入文本的文本框更改邊框顏色
- 28. 基於複選框
- 29. jQuery複選框禁用/啓用基於複選框值的輔助輸入
- 30. 基於複選框輸入禁用HTML輸入
哪部分需要幫助? – ptomato