在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例Clojure → linux 下图形界面thread 示例代码

linux 下图形界面thread 示例代码

Clojure

下载此实例
  • 开发语言:Others
  • 实例大小:3.55KB
  • 下载次数:6
  • 浏览次数:210
  • 发布时间:2015-04-12
  • 实例类别:Clojure
  • 发 布 人:yumo
  • 文件格式:.c
  • 所需积分:2
 相关标签: linux

实例介绍

【实例简介】
【实例截图】

【核心代码】

//thread.c
#include <gtk/gtk.h>
static GtkWidget *label;
static GtkWidget *fixed;
static GtkWidget *label1;
static GtkWidget *label2;
static gchar *title[10]={"yumo","istruely","averyvery","handsome","bigboy","","","","",""};
static gchar *num[10]={"10","9","8","7","6","5","4","3","2","1",""};
GtkWidget *entry1;
gint count=0;
gint m=0;
gint n=0;
static gint sign;


//////////线程实现
int image_go1(GtkWidget *label)
{
	gint x,y;
	x = -30;
        y = 50;
	g_usleep(1500000);
	for(;;)
	{
                if(x==400)
                break;
		g_usleep(15000);
		gdk_threads_enter();
		gtk_fixed_move(GTK_FIXED(fixed),label, x, y);
	        x = x   1;
		gdk_threads_leave();
	}
        return 0;
}

int image_go2(GtkWidget *label)
{
	gint x,y;
	x = -30;
        y = 20;
	for(;;)
	{
                if(x==400)
                break;
		g_usleep(15000);
		gdk_threads_enter();
		gtk_fixed_move(GTK_FIXED(fixed),label, x, y);
	        x = x   1;
		gdk_threads_leave();
	}
        return 0;
}

//////////倒数计时
gint backcount()
{
gtk_label_set_text(GTK_LABEL(label),num[n]);
n  ;
if(n>10)
return 0;
}

//////////button按钮效果
int on_begin(GtkWidget* button,gpointer data) 
{ 
 //gtk_window_set_focus(GTK_WINDOW(window),entry1);
 gtk_widget_set_sensitive(button,FALSE); 
 sign=g_timeout_add(1000,backcount,NULL);
 g_thread_create(image_go1, label1, FALSE, NULL);
 g_thread_create(image_go2, label2, FALSE, NULL);
 return 0;
} 

//////////计算正确单词
void countnum(GtkWidget *button,gpointer data)
{
    //gint backcount();
    const char *password=gtk_entry_get_text(GTK_ENTRY((GtkWidget *)data));
    if(strcmp(title[m],password)==0)
    {
         count;
       printf("还好 第%d个单词输对了\n",(m 1));  
    }
    else    
    printf("2货 第%d个单词输错了\n",(m 1)); 
    gtk_entry_set_text(GTK_ENTRY(entry1),""); 
    m  ;
}









int main(int argc, char* argv[])
{
	GtkWidget *window;
	GtkWidget *vbox, *viewport, *button;

	if(!g_thread_supported())
        g_thread_init(NULL);
	gdk_threads_init();
	gtk_init(&argc,&argv);

	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        //gtk_window_set_focus(GTK_WINDOW(window),entry1);



	gtk_window_set_title(GTK_WINDOW(window),"Ywriter");
	g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
	gtk_container_set_border_width(GTK_CONTAINER(window),2);
	vbox = gtk_vbox_new(FALSE,0);
	gtk_container_add(GTK_CONTAINER(window),vbox);
	viewport = gtk_viewport_new(NULL,NULL);
	gtk_box_pack_start(GTK_BOX(vbox),viewport,FALSE,FALSE,5);
	fixed = gtk_fixed_new();
        gtk_widget_set_usize(fixed,550,340);
	gtk_container_add(GTK_CONTAINER(viewport),fixed);


        entry1=gtk_entry_new();
	gtk_fixed_put(GTK_FIXED(fixed),entry1,200,250);
        //gtk_window_set_focus(GTK_WINDOW(window),entry1);


	button = gtk_button_new_with_label("start");
	gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,5);
	g_signal_connect(G_OBJECT(button),"released",G_CALLBACK(on_begin),NULL);
        //gtk_window_set_focus(GTK_WINDOW(window),entry1);

///////////////

////////////////////////////////////////////////////
        label1=gtk_label_new(title[0]);
        label2=gtk_label_new(title[1]);
	gtk_fixed_put(GTK_FIXED(fixed),label1,-80,50);
	gtk_fixed_put(GTK_FIXED(fixed),label2,-80,20);


        label=gtk_label_new("");
	gtk_fixed_put(GTK_FIXED(fixed),label,200,190);
////////////////////////////////////////////////////
        g_signal_connect(GTK_OBJECT(entry1),"activate",GTK_SIGNAL_FUNC(countnum),entry1);


    





	gtk_widget_show_all(window);
	gdk_threads_enter();
	gtk_main();
	gdk_threads_leave();
	return FALSE;
}

标签: linux

实例下载地址

linux 下图形界面thread 示例代码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警