我已經填充了包含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. 更改文本框輸入
- 3. 基於複選框輸入值
- 4. 如果複選框被選中,則更改文本框文本
- 5. 更新報頭基於無線電,複選框並選擇輸入文本
- 6. 複選框更改文本裝飾輸入字段
- 7. 基於文本框輸入的動態文本框創建
- 8. 如何更新基於複選框輸入的MySQL列
- 9. 基於另一個文本框的輸入來更新文本框的Javascript
- 10. 更改複選框的文本大小
- 11. 基於動態選擇選項值更改文本框的值
- 12. 只選擇getElementsByTagName中的複選框輸入,排除文本框輸入
- 13. JavaScript:基於在文本框中鍵入的值更改圖像
- 14. 如何更改輸入框的文本?
- 15. 用Javascript更新輸入框複選框
- 16. AngularJS - 基於文本框中輸入數組替換值改變
- 17. 基於複選框
- 18. jQuery複選框禁用/啓用基於複選框值的輔助輸入
- 19. 基於複選框輸入禁用HTML輸入
- 20. 如何只檢查在文本框中輸入的複選框?
- 21. 根據複選框值更改文本
- 22. 基於輸入到文本框中的值動態更改列表視圖
- 23. 如何使用複選框更改文本框文本模式
- 24. 更改複選框上的文本框選擇
- 25. ms訪問 - 基於文本框的值的複選框
- 26. 將複選框輸入值放入複選框本身
- 27. 如何啓用基於文本框值的複選框?
- 28. 基於checkbox.checked填充文本框衆多複選框的值
- 29. 幫助編碼基於文本框輸入的消息框
- 30. 關於輸入更改和複選框更改的運行功能
哪部分需要幫助? – ptomato