📄 c1853.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML><HEAD><TITLE>拖放</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="GTK+ 2.0 教程"HREF="book1.html"><LINKREL="PREVIOUS"TITLE="提供选中区"HREF="x1827.html"><LINKREL="NEXT"TITLE="属性"HREF="x1875.html"></HEAD><BODYCLASS="CHAPTER"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">GTK+ 2.0 教程</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="x1827.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="x1875.html"ACCESSKEY="N">Next >>></A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="CHAPTER"><H1><ANAME="CH-DRAGANGDROP">拖放</H1><P>GTK+ 有一套高级的用来支持图形程序之间通过拖放系统传递信息的函数。GTK+ 能在低级的 Xdnd 和 Motif 拖放协议基础上实施拖放。</P><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-DRAGANDDROPOVERVIEW">概述</H1><P>一个支持 GTK+ 拖放的应用程序先要定义和设置能拖放的构件。每个构件都可以是拖放的来源端和/或目标端。注意这些构件必须有一个关联的 X 窗口,用 GTK_WIDGET_NO_WINDOW(widget) 检测。</P><P>源构件可以发送拖动数据,因此允许用户把东西从它们上面拖出去,同时目标构件能接收拖动数据。拖放的目标端能限制它们接受谁的拖动数据,比如,同一应用程序或任意应用程序(包括它自己)。</P><P>发送和接收拖动数据是利用 GTK+ 信号来进行的。投放一个项到一个目的构件需要一个数据请求(源构件使用)和数据接收信号处理函数(目的构件使用)。还可以连接一些附加的信号处理函数,如果你想要知道何时拖动开始(在拖动开始的最初阶段),何时投放成功,以及何时整个拖放过程完成(是否成功)。</P><P>当接收到请求时,你的应用程序将需要为源构件提供数据,还包括一个拖动数据请求信号处理函数。而对目的构件将需要一个拖动数据接收信号处理函数。</P><P>一个典型的拖放周期将像下面这样:</P><P></P><OLTYPE="1"><LI><P> 拖动开始。</P></LI><LI><P> 拖动数据请求(当投放发生)。</P></LI><LI><P> 拖动数据被接收(可能在同一个应用程序内部或不同应用程序之间)。</P></LI><LI><P> 拖动数据被删除(如果拖动是移动)。</P></LI><LI><P> 拖放过程完成。</P></LI></OL><P>在它们之间也有一些次要的步骤,但这些我们等下再作详细介绍。</P></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="x1827.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="book1.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="x1875.html"ACCESSKEY="N">Next >>></A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">提供选中区</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"> </TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">属性</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -