⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipage2.htm

📁 操作系统课程设计
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<span lang="EN-US" style="font-size: 10.0pt; font-family: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; gtk_init(&amp;argc,&amp;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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp; </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),&quot;delete_event&quot;,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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
gtk_window_set_title(GTK_WINDOW(window),&quot;Process1Bar&quot;);</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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
label=gtk_label_new(&quot;A window clock&quot;);</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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 
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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 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: 宋体">&nbsp;&nbsp;&nbsp;&nbsp; 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: 宋体">}&nbsp; </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 &lt;gtk/gtk.h&gt;</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">&nbsp;&nbsp;&nbsp; GtkWidget *window;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; GtkWidget *pbar;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 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">&nbsp;</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
/*</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">&nbsp;&nbsp;&nbsp; ProgressData *pdata = (ProgressData *)data;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; gdouble new_val;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; new_val=gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(pdata-&gt;pbar))+ 
0.01;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; if (new_val &gt; 1.0)&nbsp;&nbsp;&nbsp; new_val = 0.0;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(pdata-&gt;pbar),new_val);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 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">&nbsp;</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){&nbsp;&nbsp; /*</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">&nbsp;&nbsp;&nbsp; gtk_timeout_remove (pdata-&gt;timer);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; pdata-&gt;timer = 0;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; pdata-&gt;window = NULL;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; g_free (pdata);</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; 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">&nbsp;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">int main( int&nbsp;&nbsp; argc,char *argv[]){</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; ProgressData *pdata;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; GtkWidget *align;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; GtkWidget *separator;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; GtkWidget *table;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; GtkWidget *button;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; GtkWidget *vbox;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;</font></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:宋体">
<font size="2" color="#3D5063">&nbsp;&nbsp;&nbsp; gtk_init (&amp;argc, &amp;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 + -