当前位置: 技术问答>linux和unix
gtk画曲线的工具
来源: 互联网 发布时间:2017-03-30
本文导语: 本人想在gtk下画曲线,显示数据库查询出来的数据(横坐标是时间,拉框可调节范围),看了cairo感觉不是很合适。 不知道有没有什么比较合适的工具。(语言c,桌面gnome) | 头文件 #include ...
本人想在gtk下画曲线,显示数据库查询出来的数据(横坐标是时间,拉框可调节范围),看了cairo感觉不是很合适。
不知道有没有什么比较合适的工具。(语言c,桌面gnome)
不知道有没有什么比较合适的工具。(语言c,桌面gnome)
|
头文件 #include
用到的控件:GdkGC、GdkDrawable、GdkColor
用到的函数:gdk_draw_line(画线)、gdk_draw_rectangle(画矩形)、gdk_draw_arc(画曲线)
具体参数,楼主可以参照GTK+2.0的manual,我在我的资料里有上传帮助文档
用到的控件:GdkGC、GdkDrawable、GdkColor
用到的函数:gdk_draw_line(画线)、gdk_draw_rectangle(画矩形)、gdk_draw_arc(画曲线)
具体参数,楼主可以参照GTK+2.0的manual,我在我的资料里有上传帮助文档
|
直接用gtk画吧,看看这篇介绍
http://blog.sina.com.cn/s/blog_5163b2980100dqgs.html
http://blog.sina.com.cn/s/blog_5163b2980100dqgs.html
|
/* COMPILE USING: gcc -Wextra -o cairo1 `pkg-config --cflags --libs gtk+-3.0` cairo1.c */
#include
#define WINDOW_WIDTH 300
#define WINDOW_HEIGHT 300
static gboolean draw_cb(GtkWidget *widget, cairo_t *cr, gpointer data)
{
/* Connect the GtkDrawingArea to the current cairo context */
cr = gdk_cairo_create( gtk_widget_get_window (widget));
/* Set color for background */
cairo_set_source_rgb(cr, 1, 1, 1);
/* fill in the background color*/
cairo_paint(cr);
/* set color for rectangle */
cairo_set_source_rgb(cr, 0.42, 0.65, 0.80);
/* set the line width */
cairo_set_line_width(cr,6);
/* draw the rectangle's path beginning at 3,3 */
cairo_rectangle (cr, 3, 3, 100, 100);
/* stroke the rectangle's path with the chosen color so it's actually visible */
cairo_stroke(cr);
/* draw circle */
cairo_set_source_rgb(cr, 0.17, 0.63, 0.12);
cairo_set_line_width(cr,2);
cairo_arc(cr, 150, 210, 20, 0, 2*G_PI);
cairo_stroke(cr);
/* draw horizontal line */
cairo_set_source_rgb(cr, 0.77, 0.16, 0.13);
cairo_set_line_width(cr, 6);
cairo_move_to(cr, 80,160);
cairo_line_to(cr, 200, 160);
cairo_stroke(cr);
/* free cr and all associated resources */
cairo_destroy(cr);
return FALSE;
}
int main (int argc, char *argv[])
{
gtk_init (&argc, &argv);
GtkWidget *window;
GtkWidget *da;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
da = gtk_drawing_area_new();
gtk_widget_set_size_request (da, WINDOW_WIDTH, WINDOW_HEIGHT);
g_signal_connect (da, "draw", G_CALLBACK(draw_cb), NULL);
gtk_container_add (GTK_CONTAINER (window), da);
gtk_widget_show(da);
gtk_widget_show (window);
gtk_main ();
return 0;
}
http://www.gtkforums.com/viewtopic.php?f=3&t=988&p=195286=Drawing%20with%20Cairo%20in%20GTK3#p195286