当前位置:首页 » 数据仓库 » gtk数据库编辑
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

gtk数据库编辑

发布时间: 2022-09-05 21:03:40

㈠ 秒赞网gtk怎么上传数据库

这个跟gtk不gtk什么的关系不大了吧。。。。。。。

㈡ Linux下用gtk操作mysql实现聊天功能。。。

  1. 学习mysql的C API。

  2. 学习GTK的基本用法,比如按钮。

就从这两方面入手。

附件里有两个参考的网址。

㈢ Window下GTK+能不能静态编译进程序

分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.config,就知道了用户对内核的配置情况。 上面的内容说明:Kconfig就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就有途径选择我们的驱动,假如想使这个驱动被编译,还要修改该驱动所在目录下的Makefile。因此,一般添加新的驱动时需要修改的文件有两种(注意不只是两个)*Kconfig
config symboloptions

symbol就是新的菜单项,options是在这个新的菜单项下的属性和选项其中options部分有:1、类型定义:
每个config菜单项都要有类型定义,bool:布尔类型, tristate三态:内建、模块、移除, string:字符串, hex:十六进制, integer:整型例如config HELLO_MODULE
bool "hello test mole" bool类型的只能选中或不选中,tristate类型的菜单项多了编译成内核模块的选项,假如选择编译成内核模块,则会在.config中生成一个CONFIG_HELLO_MODULE=m的配置,假如选择内建,就是直接编译成内核影响,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置.2、依赖型定义depends on或requires
指此菜单的出现是否依赖于另一个定义config HELLO_MODULE
bool "hello test mole"
depends on ARCH_PXA
这个例子表明HELLO_MODULE这个菜单项只对XScale处理器有效,即只有在选择了ARCH_PXA,该菜单才可见(可配置)。3、帮助性定义
只是增加帮助用关键字help或---help---

更多详细的Kconfigconfig语法可参考: Second: 内核的Makefile内核的Makefile分为5个组成部分:
Makefile 最顶层的Makefile
.config 内核的当前配置文档,编译时成为顶层Makefile的一部分
arch/$(ARCH)/Makefile 和体系结构相关的Makefile
s/ Makefile.* 一些Makefile的通用规则
kbuild Makefile 各级目录下的大概约500个文档,编译时根据上层Makefile传下来的宏定义和其他编译规则,将源代码编译成模块或编入内核。顶层的Makefile文档读取 .config文档的内容,并总体上负责build内核和模块。Arch Makefile则提供补充体系结构相关的信息。 s目录下的Makefile文档包含了任何用来根据kbuild Makefile 构建内核所需的定义和规则。(其中.config的内容是在make menuconfig的时候,通过Kconfig文档配置的结果) 在linux2.6.x/Documentation/kbuild目录下有详细的介绍有关kernel makefile的知识。最后举个例子:
config MTD_flashtest
tristate “ap71 flash"这样当make menuconfig时 ,将会出现 ap71 flash选项。第三:修改该目录下makefile文档。
添加如下内容:obj-$(CONFIG_MTD_flashtest) += flashtest.o这样,当您运行make menucofnig时,您将发现ap71 flash选项,假如您选择了此项。该选择就会保存在.config文档中。当您编译内核时,将会读取.config文档,当发现ap71 flash 选项为yes 时,系统在调用/driver/mtd/maps/下的makefile 时,将会把 flashtest.o 加入到内核中。即可达到您的目的。

㈣ 在linux 平台下,想做一个脸型识别的demo,应用界面是用gtk吗,然后是怎么把照片读取进来,并在gtk上显示

你当对路得、米利暗、拿俄米说:
我也没有毯子。
在爷爷去世后挂到墙头
此刻,我以绝对的信念坚信。
摇摆的树顶交叉在一起
悟语三两倾,哈哈

㈤ 在Linux下有没有什么图形化界面的C编程工具介绍一下

Eclipse C/C++集成包(选择Linux版本的,选择相应的32位或者64位的);
不喜欢英文界面,可以添加中文插件;
想写qt,就装qt插件;
想写gtk,就装gtk插件;
想要窗口编辑器,就装相应的插件;
想。。。就装相应的插件。。。
。。。
。。。
如果想练数据库,可以安装简易数据库插件。。。
。。。
如果想。。。

此处省略N字

㈥ MFC,WTL,WPF,wxWidgets,Qt,GTK 各有什么特点

WTL都算不上什么Framework,就是利用泛型特性对Win API做了层封装,设计思路也没摆脱MFC的影响,实际上用泛型做UI
Framework也只能算是一次行为艺术,这个思路下继续发展就会变得没法用了,比如 代码过于复杂,编译太慢,出错不好调试等问题难以解决。
而且封装得也不完全,还是随处可见 HWND HDC之类的东西。
用途主要是写一些很小的程序,或者作为其他UI框架的后端实现部分,比如我写过一个小框架用来做安装卸载程序,非常小,其中创建管理窗口部分是用WTL的。

MFC
是更高级点的Win API封装,比WTL封装彻底,很难见到HWND
HDC了,也提供了不少实用工具类,比如高级控件,泛型容器,IO访问,网络协议等。除此之外,还提供了一些基本框架,比如
Document/View,这就是个MVC的简化版本,只有MV,但是对于数据的管理,消息的传递等又没有什么约束,导致Doc/View被用得乱七八
糟。尤其是对事件处理的模型,消息映射是功能简陋,而且容易出错的方式,唯一优点是性能好。 从VC++
1.X就有MFC了,那时整个UI界的设计思想都比较落后(除了Apple),MFC又背负了沉重的兼容性包袱,比如vc++
1.52的MFC程序到了vc2003稍加修改都可以编译,导致MFC后期没有什么发展,就是沿着老的思路完善了些细节,添加了些组件,但是根本性的设计
问题没有改进。

GTK,这个吃了语言的亏,用C写面向对象实在是痛苦,虽然在思想上比MFC要先进了些,但是写出来的代码比MFC要罗嗦很多了。相比MFC,多了Layout的概念,事件处理上有了Signal/slot,虽然用起来很麻烦。

wxWidgets,
这个基本就是个跨平台的MFC,对各个平台的差异做了抽象,实际上后端大多还是用平台原生的API实现,好多控件都是直接用系统原生的。有
wxWidgets for
GTK+的版本,后端就是GTK+,wxWidgets就是一层壳。这也是wxWidgets的优点,它编译出来的程序发行包比较小,性能也不错。

以上这些就是上世纪90年代的UI Framework技术水平了,至今它们也依然没有太多进步。
下面来谈谈21世纪的技术。

Qt,
虽然它也是上世纪90年代出现的,但是它在21世纪有了长足的进步。应该说它的起点就比较高,一开始就定位跨平台,而且不满足于简单封装系统API,而是
要自己创造出一套完整的API和框架,甚至要代替系统API,所以不仅仅是做UI,而是涉及到了APP开发所用到的所有东西,包括网络,数据库,多媒体,
脚本引擎等。signal/slot是Qt发明的,这是事件通知模型里C++语言的最佳实现了,甚至我都觉得这该写进C++标准,估计C++委员会的老顽
固们是从不写GUI的。
早期的QT也是没有DirectUI的概念的,每一个QWidget都对应一个原生窗口,从Qt4.4开始,只有顶层
QWidget才是原生窗口,而Child Widget是Alien
Widget,只是个抽象的图层不对应原生窗口,这就实现了DirectUI的概念,很多图形效果也就变得可能了,比如窗口层叠透明效果。
在4.8后实现了QPA(Qt Platform Abstraction),这就使移植Qt变得很容易,目前Qt是支持平台最多的框架没有之一。
由于早期授权的问题,Qt对于开源社区不是很友好,导致推广不太顺利,直到它改成了LGPL方式,如果Qt能早点想开了,恐怕就没有wxWidgets的生存空间了。
Qt的缺点也是有的,就是太大,不过可以自己剪裁,我可以把QT库剪裁到发行包压缩后2.5MB。

WPF,
微软在Win
Form的思路上走到死胡同后,终于痛下决心用正确的方法开发UI库了。21世纪的UI一定是定义出来的,绝对不能是代码写出来的,所以有了XAML这个
强大的定义工具,不但可以定义UI布局,还包括图形动画效果,消息响应方式等。配合C#这种优秀的语言,更是如虎添翼。但是问题也很明显,就是过于庞大,
不仅开发时要用到庞大的IDE和设计工具,发行的安装包也十分巨大,所以目前还是很少有人拿他写通用软件客户端的,大多是做企业项目时写专用客户端。
大概4-5年前吧疼讯曾经用WPF写了个QQ,但是只实现了基本功能就已经比C++客户端大好多了,而且运行缓慢,主要是太吃内存,而且那时WPF的优化还不充分。

最后我想补充下真正的UI库之王,cocoa。
Apple的成功有很多原因,其中之一就是cocoa,cocoa理念十分先进,而且出来得早,我都怀疑Qt和WPF有不少思想都是借鉴cocoa的。
定义式的UI,用xib就可以定义UI的绝大部分细节,而且提供所见即所得的可视化设计工具。
严格的MVC,而且定义非常清晰,分工明确。
signal/slot,虽然不叫这个名字,但思想就是,而且真的是拖动鼠标就能connect。
提供了ARC,闭包和反射,给UI开发带来巨大的便利性,当然这得益于Objective-C这个语言。

再补充下 Borland的OWL和VCL。
我是从Borland C++3.0和Delphi 1.0开始用的,那时的Borland看来很有前途的,可惜后来一系列决策失误导致现在这个公司几乎消失了,同学们不要再往这个坑里跳了。
OWL曾经和MFC是竞争对手,设计思想也差不多,个人感觉OWL的API设计更优雅一点,但是在市场上OWL被MFC彻底击败。
Delphi
是神作,它在RAD(快速应用开发)领域长时间没有对手,直到BS架构取代CS架构。Delphi的特点就是简单、开发快,单纯就写个基本可用的应用来
说,可能至今都没有比他更快的,但是缺点就是丑,基本大多数Delphi应用都是一大堆控件堆积在一起,很不美观,另外由于Pascal语言的限制无法和
现有大量的C/C++代码融合。虽然后来有C++
Builder,但是Builder里简单和快的优点也消失了。Borland的C++编译器越做越差,导致后来开源项目都不太愿意兼容这个编译器了。
VCL准确地说不是UI库,而是一套组件接口规范,类似COM ActiveX。delphi和C++builder都是基于这个规范构建了基础库。

UI库是个很大的话题,够写好几本书来探讨的,我这里就是随便写点自己的感受。
单纯讨论每个库的优劣是没有意义的,而是要放到具体的应用场景里来看,每个库都有自己擅长的场景。

如果仅在Windows下,追求程序小巧,用WTL,不足的地方自己实现去吧,但是视觉效果就呵呵了。
如果可以大一点,还要好看点,那就Qt。
如果完全不在乎大小,只要视觉效果华丽,就用WPF,如果把开发工具价格也考虑进来,那么土豪才会选WPF呢。
MFC就是个鸡肋了,除非你现有的工程师不会用别的,或者有历史遗留代码要保持兼容。

如果要求跨平台,那么就用Qt,wxWidgets和GTK+跟现在的Qt比起来没有什么优势了。

如果是iOS Android,那么最好用原生UI库,除非你写游戏。

㈦ 在linux下怎么将数据库里的信息显示到窗体里的文本框里

你可以用 GTK 来写一个访问数据库的程序把数据库里的信息显示到窗体里的文本框里,也可以用 PHP 来实现这工作,看你是熟悉 PHP 还是熟悉 C++ 编程了。当然,还有其它编程方法,如 perl 等,你熟悉哪种就用哪种方法。

㈧ 用gtk怎么编写一个数据库

// 创建删除数据库的成功与否

void create_message_dialog(GtkMessageType type,gchar *message)

{

GtkWidget *dialogx;

/*gtk_message_dialog_new创建一个新的消息对话框,这是一个图标表示对话框类型(错误,警告等)和一些文 本,用户可能希望看到一个简单的对话框。当用户点击一个按钮一个“响应”信号被发射与GtkResponseType响应的ID*/

dialogx = gtk_message_dialog_new(NULL,GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,type,GTK_BUTTONS_OK,message);

gtk_dialog_run(GTK_DIALOG(dialogx));

gtk_widget_destroy(dialogx);

}

void on_dialog_yes(GtkButton *button,gpointer data)

{

gchar query_buf[4096];

const gchar *dbname;

dbname = gtk_entry_get_text(GTK_ENTRY(entry));

if(iscreate == TRUE)

{

sprintf(query_buf,"CREATE DATABASE %s",dbname);

/*mysql_query() 向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询,如果没有指定 link_identifier,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。*/

if(mysql_query(sqlconnect,query_buf)==0)

{

create_message_dialog(GTK_MESSAGE_INFO,"创建数据库成功");

}

else

{

create_message_dialog(GTK_MESSAGE_ERROR,"创建数据库失败");

}

}

else

{

sprintf(query_buf,"DROP DATABASE %s",dbname);

if(mysql_query(sqlconnect,query_buf)==0)

{

create_message_dialog(GTK_MESSAGE_WARNING,"数据库已经被删除!");

}

else

{

create_message_dialog(GTK_MESSAGE_ERROR,"删除数据库出错!");

}

}

gtk_widget_destroy(dialog);

}

void on_dialog_no(GtkButton *button,gpointer data)

{

gtk_widget_destroy(dialog);

}

㈨ GTK编程密码找回函数于数据库连接代码

自定义回调函数,捕捉最大化最小化信号,然后用自己的函数进行处理,就行了。
#include <stdio.h>
#include <gtk/gtk.h>
void callback(gpointer data)
{
GtkWidget *window=GTK_WIDGET(data);
switch(gdk_window_get_state(GDK_WINDOW(window->window)))
{
case 1<<0/* GDK_WINDOW_STATE_WITHDRAWN*/: printf("GDK_WINDOW_STATE_WITHDRAWN:the window is not shown.\n");break;
case 1<<1/* GDK_WINDOW_STATE_ICONIFIED*/: printf("GDK_WINDOW_STATE_ICONIFIED:the window is minimized.\n");break;//最小化处理
case 1<<2/* GDK_WINDOW_STATE_MAXIMIZED*/: printf("GDK_WINDOW_STATE_MAXIMIZED:the window is maximized.\n");break;//最大化处理
case 1<<3/* GDK_WINDOW_STATE_STICKY*/: printf("GDK_WINDOW_STATE_STICKY:the window is sticky.\n");break;
case 1<<4/* GDK_WINDOW_STATE_FULLSCREEN*/: printf("GDK_WINDOW_STATE_FULLSCREEN:the window is maximized without decorations.\n");break;
case 1<<5/* GDK_WINDOW_STATE_ABOVE*/: printf("GDK_WINDOW_STATE_ABOVE:the window is kept above other windows. \n");break;
case 1<<6/* GDK_WINDOW_STATE_BELOW*/: printf("GDK_WINDOW_STATE_BELOW:the window is kept below other windows. \n");break;
default:break;
}
}
int main(int argc,char *argv[])
{
gtk_init(&argc,&argv);
GtkWidget *window;
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
g_signal_connect_swapped(window,"window_state_event",
G_CALLBACK(callback),window);
gtk_main();
return 1;
}
有什么问题可留言

㈩ 求一段gtk+2.0连接sqlite数据库的例子实现简单的插入查询功能

int data_get(char*** result, int *row, int *column) {
char *zErrMsg = 0;
char *errmsg;
int i = 0;
data_open_db();//打开数据库
i = sqlite3_get_table(db, "select id,name from student", result, row, column, &errmsg);//这里写SQL语句。row是查询出的行数,column是列数。这个例子用来读取id与name,导入到gtk建立的treeview中。列数为2列,行数,我设定读取100行。
data_close_db();//关闭数据库
return i;
}
这是一条简单的查询语句,搜索id name。原理就这么简单。我给你简单注释一下