版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第25章信号与事件处理信号与事件处理是界面开发中的重要概念,它们用于对用户的操作进行处理。事件是Linux系统底层的Xwindow所定义的基本操作,例如鼠标移动、键盘按下都是事件。GDK将这些事件封装起来,可通过调用GDK库获得这些事件。信号是GObject对象受外界改变时所发出的,GTK+对界面构件定义了丰富的信号,其中包括用户操作界面构件时所产生的信号。例如,窗口显示、按钮按下会产生信号。本章将介绍与界面相关的信号与事件处理方法。25.1信号函数与回调函数GTK+是以事件驱动的图形模型,在进入GTK+主循环后,它会等待事件的发生以进行反馈。让GTK+进行工作有两个最基本的步骤,首先是使用信号函数将信号与事件进行注册,并连接到回调函数中;然后是设计回调函数,将所需执行的代码放在回调函数内。本节将详细介绍信号函数与回调函数的使用方法。25.1.1信号函数GTK+函数库是基于“信号”系统的。所有的GTK+应用程序无一例外都是基于“信号”驱动的。假如没有“信号”发出,则应用程序就什么都不会做。在GTK+中一个信号就是从Xwindow服务器传出来的一个消息。当一个“事件”发生时,它就会通过发送一个“信号”来表示它已经做出了反应。利用GTK+还可以为“信号”绑定专门的回调函数。也就是说回调函数只对它特定的“信号”才有反应并执行。1.g_signal_connect()函数在进行信号与事件处理前,首先要使用信号函数连接信号。信号函数由GObject库提供,GTK+的界面构件也是GObject对象,所以可以使用这些函数。g_signal_connect()函数用于连接信号或事件,它的一般形式为:gulongg_signal_connect(GObject*object,
constgchar*name,
GCallbackfunc,
gpointerfunc_data);object参数是发出信号的对象,如果是GTK+界面构件,那么必须使用宏G_OBJECT()将其强制转换为GObject对象,或者转换为gpointer类型。name参数是信号的名称,信号的名称被定义为字符串常量。func参数是回调函数的地址,可使用宏G_CALLBACK()返回一个函数的地址作为回调函数。func_data参数是传递给回调函数的gpointer类型,它可以是任何数据类型的地址。当一个信号被成功注册后,g_signal_connect()函数将返回一个无符号长整型数作为该信号的标识符。25.1.1信号函数2.g_signal_handler_disconnect()函数如果要断开该信号的连接,信号的标识符就会起到作用。g_signal_handler_disconnect()函数用于断开信号连接,它的一般形式为:voidg_signal_handler_disconnect(GObject*object,
gulonghandler_id);object参数是发出信号的对象,handler_id是信号标识符。该函数运行后,原先连接的信号则不能生效。(25_1_1.c)该程序使用了一个结构体记录多个界面构件和变量的指针,将结构体作为参数传递给回调函数时,就能访问到多个窗体构件。主函数中使用了两条信号连接函数,分别连接计数按钮和开关按钮的clicked信号。当计数按钮被按下时,回调函数label_const()改变标签上的内容,使计数器进1位。开关按钮按下时,回调函数close_const()判断开关按钮的状态。如果是按下状态,则断开计数按钮clicked信号的连接,这时再次按下计数按钮,label_const()函数不会被调用。否则重新连接按钮clicked信号,如图所示。25.1.1信号函数3.g_signal_connect_after()函数一个窗体构件的信号可连接多个回调函数,回调函数的执行顺序为信号标识符的顺序。如果要使某一个的回调函数在其它回调函数后执行,可使用g_signal_connect_after()函数连接信号和事件。其连接的回调函数在其它g_signal_connect()函数连接的回调函数后执行。该函数的一般形式为:gulongg_signal_connect_after(GObject*object,
constgchar*name,
GCallbackfunc,
gpointerfunc_data);下面用一个例子说明其用法,该示例是以前一个实例修改实现的。(25_1_1.c)程序中增加了一个回调函数和g_signal_connect_after()函数。开关按钮按下时,g_signal_connect()函数连接的回调函数disconn_dialog()被执行。该函数创建了一个消息对话框,待对话框关闭,g_signal_connect_after()函数连接的label_const()函数才会被执行,如图所示。25.1.1信号函数4.g_signal_connect_swapped()函数g_signal_connect_swapped()函数的作用同样是连接信号和事件,但只传递一个参数给回调函数。它的一般形式为:gulongg_signal_connect_swapped(GObject*object,
constgchar*name,
GCallbackfunc,
GObject*slot_object);该函数有4个参数,只有slot_object参数被传递到回调函数,所以在设计回调函数时只需要接收该参数。如下例所示:
GtkWidget
*button;
button=gtk_button_new_from_stock(GTK_STOCK_EXIT)
g_signal_connect_swapped(GTK_OBJECT(button),"clicked",
G_CALLBACK(gtk_widget_destroy),
(gpointer)window);
//window构件指针被传递按钮被按下时,回调函数gtk_widget_destroy()将window构件删除。该例的作用是删除一个窗体,但并非退出程序。gtk_widget_destroy()函数是GTK+库所定义的,在拥有多个窗体的程序中,可用于关闭某一窗体而不结束GTK+主循环。25.1.1信号函数5.g_signal_handlers_disconnect_by_func()函数g_signal_handlers_disconnect_by_func()函数的作用是断开已连接的信号和事件,它不需要消息标识符作为参数,而是根据回调函数的名称判断哪些信号和事件被断开。它的一般形式为:voidg_signal_handlers_disconnect_by_func(GObject*object,
GCallbackfunc,
gpointerdata);object参数是构件的名称,该构件所有与func参数和data参数定义相同的回调函数的连接都将被断开。25.1.2回调函数回调函数并非是GTK+所专有的,它是一种通过函数指针调用的函数。如果将某一个函数的指针作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,那么该函数就是回调函数。在GTK+中,回调函数必须造一定的规则定义。它的一般形式为:voidcallback_func(GObject*object,gpointerfunc_data);object参数是发送信号对象的指针,实际应用中也可以定义为GObject的子类,如GtkWidget类型。func_data参数是传递给回调函数的值,它可以是任意的数据类型。如果回调函数处理的是一个GDK事件,如关闭窗体构件的delete_event,那么在回调函数中必须有一个参数接受事件名。它的一般形式为:gintcallback_func(GObject*object,
GdkEvent*event,
gpointerfunc_data);event参数是一个GdkEvent联合体类型的值,实际应用中常用字符串代替。该回调函数可以使用gint类型定义返回值,返回值实际上会传递给GTK+主循环,作用是决定是否继续执行该事件。(25_1_2.c)25.1.2回调函数程序中创建了一个名为delete_event()的回调函数,当按下主窗体的关闭按钮时,delete_event事件发生。与其相连接的delete_event()函数会弹出一个对话框询问是否退出程序。如果选择确定,那么GTK+主循环继续处理delete_event事件。在窗体关闭时抛出destroy信号,与其相连接的destroy()函数将结束主循环,这样就能退出程序。如果在退出程序对话框中选择取消,那么delete_event()函数的返回值为TRUE,这时delete_event事件的处理将会终止,窗体继续存在,如图所示。25.2常用GTK+信号与事件GTK+为常用的界面构件定义了信号,这些信号可以认为是对事件的响应。在父类中定义的信号能被子类继承,例如按钮构件按下的clicked信号对于开关按钮、复选按钮和单选按钮等子类是有效的。而子类根据其特性又有特定的信号,如开关按钮状态改变时产生toggled信号。信号的产生时间常见的有以下3种。RunFirst:在动作开始时产生。RunLast:在动作结束时产生。Action:动作中产生。大多数信号的产生时间都是其中的一种或多种。以窗体构件为例,keys-changed事件在动作开始时产生,set-focus事件在动作结束时产生,activate-default事件在动作中和动作结束时都会产生。下面将介绍常用的GTK+信号。25.2.1GtkObject类信号GtkObject类是GTK+窗体构件对象的父类,该类的信号只有destory一个。当GtkObject对象被删除后destory信号被抛出。它的定义形式为:voidGtkObject::destroy(GtkObject*,
gpointer);信号的定义形式与作用与面向对象语言中的析构函数非常相似,它可以用于释放动态分配的内存和进行一些清理工作。(25_2_1.c)该程序主窗体中放置了一个按钮,并使用两条g_signal_connect()函数连接按钮clicked事件和destroy事件。当按下按钮clicked事件被抛出,回调函数destroy()调用gtk_widget_destroy()函数将按钮删除。按钮被删除后destroy信号被抛出,回调函数make_label()创建了一个新标签构件并装入窗体中。窗体构件作为容器只能在同一时间装入一个构件,因此可以证明destroy信号是在按钮构件被彻底删除后才被抛出,如图所示。25.2.2GtkWidget界面构件信号GtkWidget类是所有界面构件的父类,定义在该类中的信号也是所有界面构件所共有的。这些信号与界面构件的一般特性有关,其中常用的可以简单划分为以下几类。1.状态和样式所有的界面构件都有状态和样式两种基本属性成员。当界面构件状态和样式改变时,会抛出相关信号,如表所示。信
号发出时间说
明state-changedRunFirst当前界面构件状态发生改变时产生,回调函数中需要处理GtkStateType类型的参数style-setRunFirst界面构件样式改变时产生的信号,回调函数中需要处理GtkStyle类型参数25.2.2GtkWidget界面构件信号状态用于决定如何绘制界面构件,它是GtkStateType枚举类型。该类型用于定义使用何种颜色绘制构件,例如当构件处于活动状态时通常使用明亮的颜色,而处于被选择的状态时使用较深的颜色。样式用于为构件的不同状态定义颜色,它被定义为GtkStyle类。在连接样式和状态的函数中,需要额外处理一个参数,如下例所示:voiduser_function(GtkWidget*widget,
GtkStateTypestate,
gpointeruser_data);
//连接state-changed信号的回调函数voiduser_function(GtkWidget*widget,
GtkStyle*previous_style,
gpointeruser_data);
//连接style-set信号的回调函数在这两个回调函数的原型中,分别增加GtkStateType类型和GtkStyle类型的参数,这样就能在回调函数中获得状态和样式属性的指针。25.2.2GtkWidget界面构件信号2.显示与隐藏界面构件显示与隐藏的过程中会抛出一系列信号,这些信号在不同的时间产生,如表所示。通过捕捉这些信号,可以知道界面构件显示状态的改变。界面构件的显示是通过gtk_widget_show()函数实现的,它的作用是将已创建的界面构件显示在屏幕上。因此show信号的产生时间是调用gtk_widget_show()函数显示构件的时候,虽然这时该构件并非已经完成了在屏幕上的绘图。界面构件的隐藏是gtk_widget_hide()函数实现的,它的作用是将构件隐藏起来。界面构件并没有被删除,它与上层容器间的关系也没有被改变。hide信号在界面构件隐藏时产生。(25_2_2)信
号发出时间说
明showRunFirst界面构件显示时产生hideRunFirst界面构件隐藏时产生mapRunFirst界面构件请求被映射时产生unmapRunFirst界面构件请求取消映射时产生screen-changedRunLast界面在另一个屏幕上显示时产生,回调函数中需要处理GdkScreen类型参数realizeRunFirst界面构件请求实现时产生unrealizeRunFirst界面构件请求消除时产生25.2.2GtkWidget界面构件信号程序中创建了一个主窗体和一个子窗体,主窗体上放置着一个标签和按钮。标签显示子窗体显示状态,按钮用于显示或隐藏子窗体。按钮按下时,clicked信号的回调函数window2_sh()将判断子窗体是否已显示。如果显示则将其隐藏,反之将其显示。子窗体关闭按钮按下时,delete-event信号连接的回调函数delete_event()将子窗体隐藏,并返回TRUE终断delete-event信号的处理,这样子窗体不会被删除。子窗体显示或隐藏时,连接show和hide信号的回调函数window2_show()和window2_hide()将子窗体的显示状态写入到主窗体的标签上,如图所示。25.2.2GtkWidget界面构件信号map信号在界面构件请求被映射时产生,gtk_widget_show()函数和gtk_widget_map()函数运行会产生该信号。unmap信号在gtk_widget_unmap()函数运行时产生。Linux系统可设置多个屏幕,如果一个界面构件被移动到另一个屏幕上,screen-changed将被抛出。回调函数的一般形式为:voiduser_function(GtkWidget*widget,
GdkScreen*previous_screen,
gpointeruser_data);只有在使用GObject类派生新的子类窗体构件时,才会使用gtk_widget_realize()函数和gtk_widget_unrealize()函数。调用这两个函数会产生realize信号和unrealize信号。25.2.2GtkWidget界面构件信号3.外观改变在界面构件的尺寸和位置改变时,或者为界面构件最小尺寸需求改变时,将产生如表所示的信号。信
号发出时间说
明configure-eventRunLast在界面构件尺寸、位置和结构改变后产生,回调函数中需要处理GdkEventConfigure类型参数size-allocateRunFirst在界面构件尺寸改变时产生,回调函数中需要处理GtkAllocation类型参数size-requestRunFirst在界面构件最小尺寸需求改变时产生,回调函数中需要处理GtkRequisition类型参数25.2.2GtkWidget界面构件信号在使用鼠标改变构件尺寸时,configure-event事件只会在操作结束产生一次,size-allocate事件会连续不断地产生。这3个信号实际是事件,所以需要使用处理事件的函数原型来连接回调函数。如下例所示:01
gbooleanuser_function(GtkWidget*widget,02
GdkEventConfigure*event,03
gpointeruser_data);
//连接configure-event信号的回调函数04
voiduser_function(GtkWidget*widget,05
GtkAllocation*allocation,06
gpointeruser_data);
//连接size-allocate信号的回调函数07
voiduser_function(GtkWidget*widget,08
GtkRequisition*requisition,09
gpointeruser_data);
//连接size-request信号的回调函数这3个回调函数中的第二个参数是信号函数传递给回调函数的相关数据类型。GdkEventConfigure是结构体类型,它包含产生信号的事件信息。GtkAllocation结构体包含构件尺寸信息,GtkRequisition结构体包含最小尺寸需求信息。25.2.2GtkWidget界面构件信号4.焦点焦点是窗体构件或得能够被键盘控制的状态。包括窗体在内,按钮、文本输入框等拥有独立XWindow的窗体对象都能获得焦点。与焦点相关的信号见下表。信
号发出时间说
明focusRunLast界面构件获得焦点时产生,回调函数中需要处理Gtk-DirectionType类型参数move-focusRunLast焦点在同一个窗体内的界面构件中移动时产生,回调函数中需要处理GtkDirectionType类型参数25.2.2GtkWidget界面构件信号GtkDirectionType枚举类型是GTK+为方向定义的常量,在与以上信号连接的函数中,它用于标明焦点移动的方向。回调函数的定义形式为:gbooleanuser_function(GtkWidget*widget,
GtkDirectionTypearg1,
gpointeruser_data);
//连接focus信号的回调函数voiduser_function(GtkWidget*widget,
GtkDirectionTypearg1,
gpointeruser_data);
//连接move-focus信号的回调函数25.2.2GtkWidget界面构件信号5.快捷键定义快捷键集合并将该集合连接到窗体构件后,将产生与快捷键相关的信号,如表所示。注册一个快捷键后,将构件和信号标识符作为参数传递给gtk_widget_can_activate_accel()函数,那么使用快捷键时can-activate-accel信号被抛出。can-activate-accel信号的回调函数能够决定快捷键是否能被执行。(25_2_2)信
号发出时间说
明accel-closures-changedRunLast窗体构件添加或删除快捷键集合对象时产生can-activate-accelRunLast窗体构件快捷键集合对象可用时产生,回调函数中需要处理signal_id信号标识符mnemonic-activateRunLast下划线快捷键可用时产生,回调函数中需要处理gboolean类型参数25.2.2GtkWidget界面构件信号6.选择操作当构件中的数据被选择后,将产生与选择操作相关的信号,如表所示。信
号发出时间说
明selection-getRunLast选择数据后产生,回调函数中需要处理GtkSelectionData类型参数selection-clear-eventRunLast放弃选择的数据后产生,回调函数中需要处理GtkSelectionData类型参数selection-receivedRunLast构件收到选择请求后产生,回调函数中需要处理GtkSelectionData类型参数selection-request-eventRunLast当另一个构件请求目标构件选择数据时产生,回调函数中需要处理GtkSelectionData类型参数selection-notify-eventRunLast任何选择操作都将产生该信号,回调函数中需要处理GtkSelectionEvent类型参数25.2.2GtkWidget界面构件信号GtkSelectionData结构体是为选择操作定义的,它用于保存选择的数据。该结构的定义如下:structGtkSelectionData{
GdkAtomselection;
GdkAtomtarget;
GdkAtomtype;
gintformat;
guchar*data;
gintlength;};selection及target参数是在gtk_selection_convert()函数调用中所选定的值。type参数是构件返回的,用于定义数据形态,例如STRING表示为字符串,INTEGER表示整型数据。format参数是每个数据单位的位长,例如8位或32位。data参数是所选择数据的首地址指针。length是选择数据的长度,以字节为单位,负值表示选择的数据无效。25.2.2GtkWidget界面构件信号GtkSelectionEvent结构体除能够保存选择的数据外,还能保存操作类型。选择参数的回调函数一般形式为:01 voiduser_function(GtkWidget*widget,02 GtkSelectionData*data,03 guintinfo,04 guinttime,05 gpointeruser_data); //连接selection-get信号06 gbooleanuser_function(GtkWidget*widget,07 GdkEventSelection*event,08 gpointeruser_data);//连接selection-clear-event信号09 voiduser_function(GtkWidget*widget,10 GtkSelectionData*data,11 guinttime,12 gpointeruser_data); //连接selection-received信号13 gbooleanuser_function(GtkWidget*widget,14 GdkEventSelection*event,15 gpointeruser_data);
16 //连接selection-request-event信号17 gbooleanuser_function(GtkWidget*widget,18 GdkEventSelection*event,19 gpointeruser_data);
20 //连接selection-notify-event信号25.2.2GtkWidget界面构件信号7.拖放操作拖放操作涉及到很多GDK函数,例如在绘图区构件的操作中会产生拖放操作相关信号,如表所示。信
号发出时间说
明drag-beginRunLast拖放动作开始时产生,回调函数中需要处理GdkDragContext类型参数drag-data-deleteRunLast拖放动作结束后并删除相关数据时产生,回调函数中需要处理GdkDragContext类型参数drag-data-getRunLast选区拖放操作产生,回调函数中需要处理GdkDragContext类型参数和GtkSelectionData类型参数drag-data-receivedRunLast目标构件获得拖放数据时产生,回调函数中需要处理GdkDragContext类型参数和GtkSelectionData类型参数drag-dropRunLast当数据拖放在构件上时产生,回调函数中需要处理GdkDragContext类型参数drag-endRunLast拖放动作结束后产生,回调函数中需要处理GdkDragContext类型参数drag-failedRunLast拖放操作失败时产生,回调函数中需要处理GdkDragContext类型参数drag-leaveRunLast拖放操作完成,光标离开放入的地点时产生,回调函数中需要处理GdkDragContext类型参数drag-motionRunLast所有拖放操作都将产生,回调函数中需要处理GdkDragContext类型参数25.2.2GtkWidget界面构件信号GdkDragContext结构体用于存放拖放操作的相关数据,回调函数的一般形式。(25_2_2_7.c)25.2.2GtkWidget界面构件信号8.鼠标操作GtkWidget对象为鼠标事件设置了一系列信号,这些信号如表所示。信
号发出时间说
明button-press-eventRunLast鼠标按键按下时产生,回调函数中需要处理GdkEventButton类型参数button-release-eventRunLast鼠标按键放开时产生,回调函数中需要处理GdkEventButton类型参数motion-notify-eventRunLast鼠标指针移动到构件上时产生,回调函数中需要处理GdkEventMotion类型参数scroll-eventRunLast鼠标中的滚轴滚动时产生,回调函数中需要处理GdkEventScroll类型参数25.2.2GtkWidget界面构件信号GdkEventButton结构体用于保存鼠标操作信息,可通过访问结构体成员获得这些信息。通常在程序中使用事件盒接收鼠标操作信号。(25_2_2)程序中设置了一个按钮盒,并且在按钮盒中放置了一个标签按钮。当鼠标按键在信号盒上按下时,回调函数button_press通过访问GdkEventButton类型的type成员判断进行的操作是何种类型。GdkEventMotion结构体用于保存鼠标的位置的信息,GdkEventScroll结构体用于保存鼠标滚轴操作的信息。鼠标操作相关信号的回调函数一般形式为:01
gbooleanuser_function(GtkWidget*widget,02
GdkEventScroll*event,03
gpointeruser_data);
04
//连接button-press-event或button-release-event信号05
gbooleanuser_function(GtkWidget*widget,06
GdkEventMotion*event,07
gpointeruser_data);
08
//连接motion-notify-event信号09
gbooleanuser_function(GtkWidget*widget,10
GdkEventScroll*event,11
gpointeruser_data);
//连接scroll-event信号25.2.2GtkWidget界面构件信号9.键盘操作键盘操作通常不需要开发者去处理,GTK+提供了完整的机制处理键盘事件。在键盘事件发生时,界面构件可获得如表所示的信号。信
号发出时间说
明key-press-eventRunLast键盘按键按下时产生,回调函数中需要处理GdkEventKey类型参数key-release-eventRunLast键盘按键放开时产生,回调函数中需要处理GdkEventKey类型参数keynav-failedRunLast导航键失败时产生,回调函数中需要处理GtkDirectionType类型参数25.2.2GtkWidget界面构件信号GdkEventKey结构体用于保存按下的键的信息,GtkDirectionType枚举类型用于保存导航键的方向信息。回调函数的一般形式为:01
gbooleanuser_function(GtkWidget*widget,02
GdkEventKey*event,03
gpointeruser_data);
04
//连接key-press-event或key-release-event信号05
gbooleanuser_function(GtkWidget*widget,06
GtkDirectionTypedirection,07
gpointeruser_data);
//连接keynav-failed信号25.2.3GtkWindow窗体构件信号窗体构件的信号主要是在窗体构件中放置的界面构件被操作时产生,常用的信号如表所示。信
号发出时间说
明activate-defaultRunLast/Action窗体构件中默认的界面构件被按下时产生,通常是在按下键盘的回车键时activate-focusRunLast/Action窗体构件中获得焦点的界面构件被按下时产生,通常是在按下空格键时frame-eventRunLast窗体构件收到鼠标或键盘等任意事件时产生,回调函数中需要处理GdkEvent类型参数keys-changedRunFirst窗体构件中的界面构件添加、删除或改变热键时产生set-focusRunLast窗体构件中的界面构件获得焦点时产生25.2.3GtkWindow窗体构件信号GdkEvent联合体用于保存鼠标或键盘等事件的信息,通常每种事件对应其中一个成员。例如,鼠标按下事件发生时,使用的是联合体中GdkEventButton类型的成员。处理frame-event事件的回调函数一般形式为:gbooleanuser_function(GtkWindow*window,
GdkEvent*event,
gpointeruser_data);25.2.4GtkContainer容器构件信号容器构件在装入或移出界面构件,以及尺寸被重设和其中的界面构件获得焦点时将产生信号,如表所示。信
号发出时间说
明addRunFirst容器构件中装入界面构件时产生check-resizeRunLast容器构件中装入界面构件前检查是否需要重设尺寸时产生removeRunFirst容器构件中装入界面构件时产生,回调函数中需要处理GtkWidget类型参数set-focus-childRunFirst容器构件中的界面构件获得焦点时产生,回调函数中需要处理GtkWidget类型参数25.2.4GtkContainer容器构件信号remove和set-focus-child信号会将相关界面构件的指针作为参数传递给回调函数。回调函数的一般形式为:voiduser_function(GtkContainer*container,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 楚雄彝族自治州禄丰县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 株洲市茶陵县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 抚州市乐安县2025-2026学年第二学期五年级语文期中考试卷(部编版含答案)
- 渭南市蒲城县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 果洛藏族自治州班玛县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 年度调薪方案
- 酒业营销策划方案
- 城市宣传片策划方案
- 深度解析(2026)《CBT 4259-2013船用货舱加热器》
- 深度解析(2026)《CBT 3710-1995船用氟利昂活塞式制冷压缩机修理技术要求》
- 中医基础理论在临床上运用
- 1.电工基础、计算机应用基础(50题)
- 医院医疗信息安全管理培训
- 遥感原理与应用-第5章遥感图像的几何处理-第8章遥感图像自动识别分类
- 建行普惠金融培训
- 高血压病人麻醉管理
- 设备管理竞聘材料
- 医院护理质量持续改进项目案例
- 沙河至铁山港东线铁路外部供电工程环境影响报告表
- 2025年陕西省西安交大少年班自主招生数学试卷(初中组) (解析版)
- 工业厂房硬化地面施工方案
评论
0/150
提交评论