📄 ipage2.htm
字号:
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体"> gtk_init(&argc,&argv);</span><span style="font-size: 10.0pt; font-family: 宋体"> <span lang="EN-US">/*</span>初始化显示环境<span lang="EN-US">*/</span></span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-indent: -25.0pt; text-autospace: none; margin-left: 25.0pt">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体"> </span>
<span style="font-size: 10.0pt; font-family: 宋体"> </span><span lang="EN-US" style="font-family: 宋体"><font size="2">g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);</font></span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_window_set_title(GTK_WINDOW(window),"Process1Bar");</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_container_set_border_width(GTK_CONTAINER(window),10);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
vbox=gtk_vbox_new(FALSE,0);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_container_add(GTK_CONTAINER(window),vbox);</span><span style="font-size: 10.0pt; font-family: 宋体"> <span lang="EN-US">/*</span>在盒子容器中显示<span lang="EN-US">*/</span></span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
hbox=gtk_hbox_new(FALSE,0);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,5);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
label=gtk_label_new("A window clock");</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,5);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
clocker=gtk_label_new(NULL);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_box_pack_start(GTK_BOX(hbox),clocker,TRUE,TRUE,5);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_timeout_add(1000,(GtkFunction)clock_begin,NULL);</span><span style="font-size: 10.0pt; font-family: 宋体"> <span lang="EN-US">/*</span>超时函数实现计时<span lang="EN-US">*/</span></span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体"> sep=gtk_hseparator_new();</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_box_pack_start(GTK_BOX(vbox),sep,FALSE,FALSE,5);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
hbox=gtk_hbox_new(FALSE,0);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,5);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
gtk_widget_show_all(window);</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体"> gtk_main();</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体"> return FALSE;</span><span style="font-size: 10.0pt; font-family: 宋体"> </span><span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">
/*</span><span style="font-size: 10.0pt; font-family: 宋体">由用户终止程序</span><span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">*/</span></font></p>
<p class="MsoNormal" align="left" style="text-align: left; text-autospace: none">
<font color="#3D5063">
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">} </span></font>
</p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">pro.c</font></span><span style="font-family:宋体"><font size="2">是一个在窗口中产生动态进度条的子程序,其源代码如下:</font></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">#include <gtk/gtk.h></font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">typedef struct _ProgressData {</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> GtkWidget *window;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> GtkWidget *pbar;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> int timer;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">}ProgressData;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">gint progress_timeout(
gpointer data ){ </font></span><span style="font-family:宋体"><font size="2"> <span lang="EN-US">
/*</span>更新进度条,使进度条的移动</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> ProgressData *pdata = (ProgressData *)data;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gdouble new_val;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> new_val=gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(pdata->pbar))+
0.01;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> if (new_val > 1.0) new_val = 0.0;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(pdata->pbar),new_val);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> return TRUE;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">} </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal"><font color="#3D5063">
<span lang="EN-US" style="font-family:宋体"><font size="2">void destroy_progress(
GtkWidget *widget,ProgressData *pdata){ /*</font></span><span style="font-family:宋体"><font size="2">退出</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gtk_timeout_remove (pdata->timer);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> pdata->timer = 0;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> pdata->window = NULL;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> g_free (pdata);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gtk_main_quit ();</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">}</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">int main( int argc,char *argv[]){</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> ProgressData *pdata;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> GtkWidget *align;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> GtkWidget *separator;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> GtkWidget *table;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> GtkWidget *button;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> GtkWidget *vbox;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> </font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063"> gtk_init (&argc, &argv);</font></span></p>
<p class="MsoNormal"><font color="#3D5063"><span style="font-family:宋体">
<font size="2"> <span lang="EN-US">pdata =g_malloc(sizeof(ProgressData)); /*</span>为传递到回调函数中的数据分配内存</font><span lang="EN-US"><font size="2">*/</font></span></span></font></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -