0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GTK構(gòu)件之雜項(xiàng)構(gòu)件(2)

嵌入式技術(shù) ? 來(lái)源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-11-27 07:53 ? 次閱讀

1.進(jìn)度條progress bar

??進(jìn)度條用于顯示正在進(jìn)行的操作的狀態(tài)。創(chuàng)建進(jìn)度條函數(shù)如下:

GtkWidget*gtk_progress_bar_new (void)

??創(chuàng)建進(jìn)度條成功后,即可使用以下函數(shù)設(shè)置進(jìn)度條顯示比例和獲取進(jìn)度條百分比。

/*獲取進(jìn)度條百分比*/
gdouble gtk_progress_bar_get_fraction (GtkProgressBar *pbar)
/*設(shè)置進(jìn)度條百分比*/
void gtk_progress_bar_set_fraction (GtkProgressBar *pbar,gdouble fraction)
參數(shù):fraction為進(jìn)度條比例,取值范圍為0.0~1.0

??GTK 1.2 版已經(jīng)給進(jìn)度條添加了一個(gè)新的功能,那就是允許它以不同的方法顯示其值,并通知用戶(hù)它的當(dāng)前值和范圍。進(jìn)度條可以用以下函數(shù)設(shè)置它的移動(dòng)方向:

/*設(shè)置進(jìn)度條移動(dòng)方向*/
void gtk_progress_bar_set_orientation (GtkProgressBar *pbar, GtkOrientation  orientation)
orientation可填以下參數(shù):
GTK_PROGRESS_LEFT_TO_RIGHT 從左向右
GTK_PROGRESS_RIGHT_TO_LEFT 從右向左
GTK_PROGRESS_BOTTOM_TO_TOP 從下向上
GTK_PROGRESS_TOP_TO_BOTTOM 從上向下
/*獲取進(jìn)度條移動(dòng)方向*/
int gtk_progress_bar_get_orientation(GtkProgressBar *pbar, GtkOrientation)

??除了指示進(jìn)度已經(jīng)發(fā)生的數(shù)量以外, 進(jìn)度條還可以設(shè)置為僅僅指示有活動(dòng)在繼續(xù),即活動(dòng)狀態(tài)。這在進(jìn)度無(wú)法按數(shù)值度量的情況下很有用。用下面的函數(shù)來(lái)表明進(jìn)度有了些進(jìn)展。

//設(shè)置活動(dòng)的比例
void gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,gdouble  fraction)
void gtk_progress_bar_pulse (GtkProgressBar *pbar)

2.進(jìn)度條示例

pYYBAGOCpwGAM59BAABOiGf4t0c927.png#pic_center

#include 
#include 
#define TOGGLE_SHOW 1 //文本顯示
#define TOGGLE_DIRECTION 2 //方向按鈕
#define TOGGLE_ACTIVE 3 //激活按鈕
typedef struct
{
	GtkWidget *window;/*窗口*/
	GtkWidget *pbar;/*進(jìn)度條*/
	gint timer;/*定時(shí)器標(biāo)志*/
	gint bar_active;
	gint bar_show_stat;//進(jìn)度條文本顯示標(biāo)志
}gtk_progress;
gtk_progress *pdata=NULL;

/*窗口關(guān)閉處理函數(shù)*/
void window_destroy_callback(GtkWidget *widget,gpointer data)
{
	/*銷(xiāo)毀定時(shí)器*/
	gtk_timeout_remove(pdata->timer);
	pdata->timer=0;
	pdata->window=NULL;
	g_free(pdata);//釋放資源
	/*銷(xiāo)毀窗口*/
	gtk_main_quit();

}
/*定時(shí)器超時(shí)處理函數(shù)*/
gboolean progress_timeout(gpointer data)
{
	gtk_progress *pdata=(gtk_progress *)data;
	gdouble new_val;
	gchar buff[20];
	if(pdata->bar_active)//暫停進(jìn)度條
	{
		gtk_progress_bar_pulse(GTK_PROGRESS_BAR (pdata->pbar));
		return TRUE;//返回TRUE表示可以繼續(xù)調(diào)用
	}
	new_val=gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR (pdata->pbar));//獲取進(jìn)度條數(shù)值
	new_val+=0.01;
	if(new_val>1.0)new_val=0.0;
	if(pdata->bar_show_stat)
	{
		snprintf(buff,sizeof(buff),"百分比:%d %%",(gint)(new_val*100));
		gtk_progress_bar_set_text (GTK_PROGRESS_BAR (pdata->pbar), buff);//設(shè)置進(jìn)度條文本
	}
	gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (pdata->pbar),new_val);//設(shè)置進(jìn)度條值
	return TRUE;
}
/*按鈕處理函數(shù)*/
void check_button_callback(GtkWidget *widget,gpointer data)
{
	gint flag=(gpointer)data;
	/*獲取按鈕狀態(tài)*/
	if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
	{
		switch(flag)
		{
			case TOGGLE_SHOW:
				pdata->bar_show_stat=1;//顯示文本
			break;
			case TOGGLE_DIRECTION://設(shè)置進(jìn)度條方向?yàn)閺淖笸?				gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR (pdata->pbar), GTK_PROGRESS_RIGHT_TO_LEFT);
			break;
			case TOGGLE_ACTIVE:
				pdata->bar_active=1;//暫停進(jìn)度條
				//gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR (pdata->pbar),0.5);//設(shè)置活動(dòng)的比例
				gtk_progress_bar_pulse(GTK_PROGRESS_BAR (pdata->pbar));
				break;
		}
	}
	else
	{
		switch(flag)
		{
			case TOGGLE_SHOW:
				pdata->bar_show_stat=0;//取消顯示
				gtk_progress_bar_set_text (GTK_PROGRESS_BAR (pdata->pbar), NULL);//取消文本
			break;
			case TOGGLE_DIRECTION:
				gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR (pdata->pbar), GTK_PROGRESS_LEFT_TO_RIGHT);//設(shè)置進(jìn)度條方向?yàn)閺淖笸?			break;
			case TOGGLE_ACTIVE:
				pdata->bar_active=0;//恢復(fù)進(jìn)度條
				break;
		}
	}
}

int main(int argc,char *argv[])
{
	GtkWidget *box;
	GtkWidget *alignment;/*對(duì)齊構(gòu)件*/
	GtkWidget *separate;/*分割線*/
	GtkWidget  *table; 
	GtkWidget *button;
	pdata=g_malloc(sizeof(gtk_progress));
	gtk_init(&argc,&argv);
	/*創(chuàng)建窗口*/
	pdata->window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(pdata->window), "GTK PRO_BAR");
	/*設(shè)置邊框?qū)挾?/
	gtk_container_set_border_width(GTK_CONTAINER(pdata->window), 2);
	/*設(shè)置窗口大小是否可以調(diào)整*/
	gtk_window_set_resizable(GTK_WINDOW(pdata->window),TRUE);
	/*關(guān)聯(lián)信號(hào)*/
	g_signal_connect(G_OBJECT(pdata->window),"destroy", G_CALLBACK(window_destroy_callback),NULL);

	/*創(chuàng)建一個(gè)縱向盒*/
	box=gtk_vbox_new(FALSE,5);
	/*將縱向盒放到窗口中*/
	gtk_container_add(GTK_CONTAINER(pdata->window),box);
	gtk_widget_show(box);

	/*創(chuàng)建對(duì)齊構(gòu)件*/
	alignment=gtk_alignment_new(0.5, 0.5, 0.8, 1);
	/*將對(duì)齊構(gòu)件放入縱向盒中*/
	gtk_box_pack_start(GTK_BOX(box),alignment,FALSE,FALSE, 2);
	gtk_widget_show(alignment);

	/*創(chuàng)建進(jìn)度條*/
	pdata->pbar=gtk_progress_bar_new();
	/*將進(jìn)度條放入到對(duì)齊構(gòu)件中*/
	gtk_container_add(GTK_CONTAINER(alignment), pdata->pbar);
	gtk_widget_show(pdata->pbar);

	/*
		添加定時(shí)器,用戶(hù)修改進(jìn)度條的值
			100 --毫秒單位,表示100ms鐘觸發(fā)調(diào)用一次progress_timeout
	*/
	pdata->timer=gtk_timeout_add(100,progress_timeout,pdata);

	/*創(chuàng)建水平分割線*/
	separate=gtk_hseparator_new();
	gtk_box_pack_start(GTK_BOX(box),separate, FALSE,FALSE,0);
	gtk_widget_show(separate);

	/*創(chuàng)建2行2列組裝表*/
	table=gtk_table_new(2,2,FALSE);
	gtk_box_pack_start(GTK_BOX(box),table, FALSE,TRUE,0);
	gtk_widget_show(table);

	/*創(chuàng)建復(fù)選按鈕,用于選擇進(jìn)度條文本顯示*/
	button=gtk_check_button_new_with_label("顯示文本");
	/*將按鈕放入組裝表中*/
	gtk_table_attach_defaults (GTK_TABLE(table),button,0,1,0,1);
	g_signal_connect(GTK_OBJECT(button),"toggled",G_CALLBACK(check_button_callback), (gpointer)TOGGLE_SHOW);
	gtk_widget_show(button);
	
	/*創(chuàng)建復(fù)選按鈕,用于調(diào)節(jié)進(jìn)度條方向*/
	button=gtk_check_button_new_with_label("方向顯示");
	gtk_table_attach_defaults (GTK_TABLE(table),button,0,1,1,2);
	g_signal_connect(GTK_OBJECT(button),"toggled",G_CALLBACK(check_button_callback), (gpointer)TOGGLE_DIRECTION);
	gtk_widget_show(button);
	/*創(chuàng)建復(fù)選按鈕,用于調(diào)節(jié)進(jìn)度條激活和關(guān)閉*/
	button=gtk_check_button_new_with_label("暫停加載");
	gtk_table_attach_defaults (GTK_TABLE(table),button,0,1,2,3);
	g_signal_connect(GTK_OBJECT(button),"toggled",G_CALLBACK(check_button_callback), (gpointer)TOGGLE_ACTIVE);
	gtk_widget_show(button);

	/*添加分割線*/
	separate=gtk_hseparator_new();
	gtk_box_pack_start(GTK_BOX(box),separate, FALSE,FALSE,0);
	gtk_widget_show(separate);	

	/*創(chuàng)建按鈕,用于退出程序*/
	button=gtk_button_new_from_stock(GTK_STOCK_QUIT);
	gtk_box_pack_start(GTK_BOX(box),button,FALSE,TRUE,0);
	g_signal_connect(GTK_OBJECT(button),"clicked",G_CALLBACK(window_destroy_callback),NULL);
	gtk_widget_show(button);	
	gtk_widget_show(pdata->window);
	gtk_main();
	return 0;
}

3.對(duì)話(huà)框 Dialogs

??對(duì)話(huà)構(gòu)件非常簡(jiǎn)單,事實(shí)上它僅僅是一個(gè)預(yù)先組裝了幾個(gè)構(gòu)件到里面的窗口。對(duì)話(huà)框的數(shù)據(jù)結(jié)構(gòu)是:

struct GtkDialog
{
GtkWindow window;
GtkWidget *vbox;  //縱向盒
GtkWidget *action_area; //橫向盒
};

? 從上面可以看到, 對(duì)話(huà)框只是簡(jiǎn)單地創(chuàng)建一個(gè)窗口,并在頂部組裝一個(gè)縱向盒(vbox),然后在這個(gè)縱向盒中組裝一個(gè)分隔線(separator),再加一個(gè)稱(chēng)為“活動(dòng)區(qū)(action_area)”的橫向盒(hbox)。

對(duì)話(huà)框構(gòu)件可以用于彈出消息,或者其它類(lèi)似的任務(wù)。這里有兩個(gè)函數(shù)來(lái)創(chuàng)建一個(gè)新的對(duì)話(huà)框。

/*創(chuàng)建對(duì)話(huà)框*/
GtkWidget*gtk_dialog_new (void)
/*創(chuàng)建對(duì)話(huà)框,可設(shè)置多個(gè)參數(shù)*/
GtkWidget*gtk_dialog_new_with_buttons (const gchar    *title,
                             GtkWindow      *parent,
                             GtkDialogFlags  flags,
                             const gchar    *first_button_text,
                             ...)
形參:title  --對(duì)話(huà)框標(biāo)題
      parent  --所屬父窗口
      flags   --對(duì)話(huà)框?qū)傩?,可填下列一個(gè)或多個(gè)屬性
GTK_DIALOG_MODAL  使對(duì)話(huà)框使用獨(dú)占模式。 
GTK_DIALOG_DESTROY_WITH_PARENTS保證對(duì)話(huà)框在指定父窗口被關(guān)閉時(shí)也一起關(guān)閉。 
GTK_DIALOG_NO_SEPARATOR  省略縱向盒與活動(dòng)區(qū)之間的分隔線 
     first_button_text  --第一個(gè)按鈕字符文本

4.dialog示例

poYBAGOCpwGAVjsGAABIz7zRUHg493.png#pic_center

#include 
#include 
GtkWidget *dialog;
GtkWidget *window;

/*按鍵處理回調(diào)函數(shù)*/
void button_clicked_callback(GtkWidget *widget,gpointer data)
{
	char *pada=(gchar *)data;
	if(!strcmp(pada,"on"))
	{
		gtk_widget_destroy(dialog);//關(guān)閉對(duì)話(huà)框
	}
	if(!strcmp(pada,"ok"))
	{
		gtk_main_quit();
	}
}
/*窗口按鈕處理回調(diào)函數(shù)*/
void button_callback(GtkWidget *widget,gpointer data)
{
	GtkWidget *label;
	GtkWidget *button;
	GtkWidget *table;
	#if 0
	dialog=gtk_dialog_new();//創(chuàng)建對(duì)話(huà)框
	gtk_window_set_title(GTK_WINDOW(dialog),"是否退出");
	#endif
	/*創(chuàng)建對(duì)話(huà)框,設(shè)置對(duì)話(huà)框模式為獨(dú)占*/
	dialog=gtk_dialog_new_with_buttons("是否退出",GTK_WINDOW(window),GTK_DIALOG_MODAL,NULL);
	/*創(chuàng)建標(biāo)簽*/
	label=gtk_label_new("是否退出?");
	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),label,TRUE, TRUE,0);
	gtk_widget_show(label);

	/*創(chuàng)建組裝表*/
	table=gtk_table_new(1,0,FALSE);
	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),table,FALSE, FALSE, 0);
	/*創(chuàng)建按鈕*/
	button=gtk_button_new_from_stock(GTK_STOCK_NO);
	gtk_table_attach_defaults(GTK_TABLE(table),button,0,1,0,1);
	gtk_widget_show(button);
	g_signal_connect(GTK_OBJECT(button),"clicked",G_CALLBACK(button_clicked_callback),"on");
	/*創(chuàng)建按鈕*/
	button=gtk_button_new_from_stock(GTK_STOCK_OK);
	gtk_table_attach_defaults(GTK_TABLE(table),button,1,2,0,1);
	g_signal_connect(GTK_OBJECT(button),"clicked",G_CALLBACK(button_clicked_callback),"ok");
	gtk_widget_show(button);
	gtk_widget_show(table);
	gtk_widget_show(dialog);
	
}
int main(int argc,char **argv)
{
	
	GtkWidget *table;
	GtkWidget *button;
	gtk_init(&argc,&argv);
	/*創(chuàng)建窗口*/
	window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window),"GTK");
	gtk_container_set_border_width(GTK_CONTAINER(window), 5);
	gtk_widget_set_usize(window, 200, 200);
	g_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit), NULL);
	
	/*創(chuàng)建組裝表*/
	table=gtk_table_new(3,4,TRUE);
	gtk_container_add(GTK_CONTAINER(window),table);
	/*創(chuàng)建按鈕*/
	button=gtk_button_new_with_label("關(guān)閉");
	gtk_table_attach_defaults(GTK_TABLE(table),button,1,3,1,2);
	g_signal_connect(GTK_OBJECT(button),"clicked",G_CALLBACK(button_callback), NULL);

	gtk_widget_show(button);
	gtk_widget_show(table);
	gtk_widget_show(window);
	gtk_main();
	return 0;
	
}

審核編輯黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GTK+ 2.0 教程

    滾動(dòng)條構(gòu)件 Scrollbar Widgets比例構(gòu)件 Scale Widgets創(chuàng)建一個(gè)比例構(gòu)件函數(shù)和信號(hào)(至少講了函數(shù))常用的范圍函數(shù)設(shè)置更新方式獲得和設(shè)置調(diào)整對(duì)象鍵盤(pán)和鼠標(biāo)綁定示例雜項(xiàng)
    發(fā)表于 10-21 17:17

    面向無(wú)線傳感網(wǎng)絡(luò)的構(gòu)件化開(kāi)發(fā)方法

    層的集成化操作基本是一樣的,圖2 是CC2420系統(tǒng)集成構(gòu)件調(diào)用硬件抽象層構(gòu)件的關(guān)系。圖2 系統(tǒng)集成構(gòu)件和硬件抽象層
    發(fā)表于 11-02 15:43

    嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件相關(guān)資料推薦

    慕課蘇州大學(xué).嵌入式開(kāi)發(fā)及應(yīng)用.第二章.入門(mén)與軟件框架.嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范0 目錄2 入門(mén)與軟件框架2.1 嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)
    發(fā)表于 10-27 07:05

    嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件

    嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范構(gòu)件化設(shè)計(jì)嵌入式硬件構(gòu)件核心構(gòu)件中間構(gòu)件終端
    發(fā)表于 10-27 09:01

    構(gòu)件方法進(jìn)行GPIO應(yīng)用編程

    慕課蘇州大學(xué).嵌入式開(kāi)發(fā)及應(yīng)用.第二章.入門(mén)與軟件框架.用構(gòu)件方法進(jìn)行GPIO應(yīng)用編程0 目錄2 入門(mén)與軟件框架2.3 用構(gòu)件方法進(jìn)行GPIO應(yīng)用編程2.3.1 課堂重點(diǎn)2.3.2 測(cè)試與作業(yè)3 下一章0 目錄
    發(fā)表于 11-08 07:35

    UART驅(qū)動(dòng)構(gòu)件的設(shè)計(jì)方法

    慕課蘇州大學(xué).嵌入式開(kāi)發(fā)及應(yīng)用.第二章.入門(mén)與軟件框架.UART驅(qū)動(dòng)構(gòu)件的設(shè)計(jì)方法0 目錄2 入門(mén)與軟件框架2.1 UART驅(qū)動(dòng)構(gòu)件的設(shè)計(jì)方法2.1.1 課堂重點(diǎn)2.1.2 測(cè)試與作業(yè)3 下一章0
    發(fā)表于 11-08 07:50

    GPIO構(gòu)件封裝方法與規(guī)范

    文章目錄1、GPIO構(gòu)件封裝方法與規(guī)范2、利用構(gòu)件方法控制小燈閃爍3、工程文件組織框架與第一個(gè)C語(yǔ)言工程分析1、GPIO構(gòu)件封裝方法與規(guī)范構(gòu)件
    發(fā)表于 11-08 06:58

    Flash在線編程構(gòu)件的使用

    慕課蘇州大學(xué).嵌入式開(kāi)發(fā)及應(yīng)用.第三章.基本模塊.Flash在線編程構(gòu)件的使用0 目錄3 基本模塊3.7 Flash在線編程構(gòu)件的使用3.7.1 課堂重點(diǎn)3.7.2 測(cè)試與作業(yè)4 下一章0 目錄3
    發(fā)表于 12-20 07:41

    FLASH在線編程構(gòu)件的設(shè)計(jì)方法

    慕課蘇州大學(xué).嵌入式開(kāi)發(fā)及應(yīng)用.第三章.基本模塊.FLASH在線編程構(gòu)件的設(shè)計(jì)方法0 目錄3 基本模塊3.8 FLASH在線編程構(gòu)件的設(shè)計(jì)方法3.8.1 課堂重點(diǎn)3.8.2 測(cè)試與作業(yè)4 下一章0
    發(fā)表于 12-20 07:57

    構(gòu)件內(nèi)聚性度量方法研究

    構(gòu)件的內(nèi)聚性度量是衡量構(gòu)件質(zhì)量的一個(gè)重要指標(biāo)。度量構(gòu)件內(nèi)聚度的經(jīng)典方法程序切片,由于切片劃分的不同,其度量值不同。本文不僅很好地度量構(gòu)件的內(nèi)聚度且度量值唯一。
    發(fā)表于 01-09 11:58 ?7次下載

    基于GTK+的組合構(gòu)件設(shè)計(jì)

    基于GTK+的組合構(gòu)件設(shè)計(jì) 圖形用戶(hù)界面是用戶(hù)與儀器的唯一交互方式,也是整個(gè)嵌入式系統(tǒng)一個(gè)尤為重要的方面。GTK+即是一個(gè)應(yīng)用于嵌入式圖形界面開(kāi)發(fā)的良好圖形庫(kù)。在
    發(fā)表于 10-15 08:55 ?752次閱讀
    基于<b class='flag-5'>GTK</b>+的組合<b class='flag-5'>構(gòu)件</b>設(shè)計(jì)

    慕課嵌入式開(kāi)發(fā)及應(yīng)用(第二章.嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范)

    慕課蘇州大學(xué).嵌入式開(kāi)發(fā)及應(yīng)用.第二章.入門(mén)與軟件框架.嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范0 目錄2 入門(mén)與軟件框架2.1 嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)
    發(fā)表于 10-19 18:33 ?8次下載
    慕課嵌入式開(kāi)發(fā)及應(yīng)用(第二章.嵌入式硬件<b class='flag-5'>構(gòu)件</b>與底層驅(qū)動(dòng)<b class='flag-5'>構(gòu)件</b>基本規(guī)范)

    嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范

    嵌入式硬件構(gòu)件與底層驅(qū)動(dòng)構(gòu)件基本規(guī)范構(gòu)件化設(shè)計(jì)嵌入式硬件構(gòu)件核心構(gòu)件中間構(gòu)件終端
    發(fā)表于 10-20 13:36 ?6次下載
    嵌入式硬件<b class='flag-5'>構(gòu)件</b>與底層驅(qū)動(dòng)<b class='flag-5'>構(gòu)件</b>基本規(guī)范

    GTK構(gòu)件雜項(xiàng)構(gòu)件

    ??標(biāo)簽(Labels)是GTK中最常用的構(gòu)件,實(shí)際上它很簡(jiǎn)單。因?yàn)闆](méi)有相關(guān)聯(lián)的X窗口,標(biāo)簽不能引發(fā)信號(hào)。如果需要獲取或引發(fā)信號(hào),可以將它放在一個(gè)事件盒中,或放在按鈕構(gòu)件里面。
    的頭像 發(fā)表于 11-25 10:20 ?783次閱讀
    <b class='flag-5'>GTK</b><b class='flag-5'>構(gòu)件</b><b class='flag-5'>之</b><b class='flag-5'>雜項(xiàng)</b><b class='flag-5'>構(gòu)件</b>

    GTK構(gòu)件微調(diào)按鈕

    ? 微調(diào)按鈕(Spin Button)構(gòu)件通常用于讓用戶(hù)從一個(gè)取值范圍你選擇一個(gè)值。它由一個(gè)文本輸入框和旁邊的向上和向下兩個(gè)按鈕組成。點(diǎn)擊某一個(gè)按鈕會(huì)讓文本輸入框里的數(shù)值大小在一定范圍你改變。文本輸入框里也可以直接輸入一個(gè)特定值。
    的頭像 發(fā)表于 11-30 09:50 ?1175次閱讀
    <b class='flag-5'>GTK</b><b class='flag-5'>構(gòu)件</b><b class='flag-5'>之</b>微調(diào)按鈕