c - 如何在gtk3中动态更改图像
问题描述
我创建显示未戴面具的人脸的gui,我在opencv(python)中创建表sqlte3并通过sqlite3将文件名发送到C现在我正在尝试在Gtk3中动态更改我的图像并且我使用Glade,我在sqlite3中有文件名,我需要从 sqlite3 获取文件名并连续显示和更改图像但是当我运行它时,它只显示最后一个文件名。
///////// gcc `pkg-config --cflags gtk+-3.0` -rdynamic -o test2 test2.c `pkg-config --libs gtk+-3.0` -lsqlite3 -std=c99
这是我的程序的功能
G_MODULE_EXPORT void add_image_cb(GtkButton *button)
{
sqlite3 * db;
char * sql;
sqlite3_stmt * stmt;
int nrecs;
char * errmsg;
int i;
int row = 0;
char jpeg[] = ".jpg";
char name[30];
sqlite3_open ("list.db", & db);
sql = "SELECT name FROM name_list";
sqlite3_prepare_v2(db, sql, strlen(sql) , &stmt, NULL);
while(1)
{
int s;
s = sqlite3_step (stmt);
if (s == SQLITE_ROW) {
int bytes;
const unsigned char * text;
bytes = sqlite3_column_bytes (stmt, 0);
text = sqlite3_column_text (stmt, 0);
strcpy(name,text);
strcat(name,jpeg);
printf ("Data of row %d is : %s\n",row, name);
if (next_image)
{
gtk_container_remove(GTK_CONTAINER(fixed1),pre_image);
}
//gtk_widget_hide(pre_image);
next_image =gtk_image_new_from_file(name);
gtk_widget_show(next_image);
gtk_container_add(GTK_CONTAINER(fixed1),next_image);
row++;
//sleep(1);
}
else if (s == SQLITE_DONE) {
break;
}
else {
fprintf (stderr, "Failed.\n");
exit (1);
}
}
}
谢谢你的回复 :)
解决方案
推荐阅读
- database - ORA-00600: 内部错误代码, 参数: [pesld103_MMap: errno 1 errmsg Opetation not allowed],
- mysql - MySQL & MySQL Workbench 中的 sql 查询使用了多少互联网流量
- swift - Firebase 身份验证获取用户配置文件
- react-native - Native Base 和 Modal 在 React Native 中不起作用
- javascript - 在 Cherrypy 上接收 AJAX 数据:来自 Javascript Post 请求的 400 Bad Request
- r - 如何以一系列值为条件
- php - 即使有限制,Mysql 查询也需要很长时间
- javascript - 如何在 AG-Grid 中设置列的动态字段?
- java - 特定项目没有控制台输出 - Java Eclipse
- python - 如何封装将控制台打印到 Word 的方法