亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dnd.html

?? Linux下Qt編程的電子書
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
        insertText( text );
  }
  </pre>
 
你甚至可以使用<a href="qdragobject.html">QDragObject</a>的子類作為文件輸入輸出的部分。例如,如果你的程序有一個QDragObject的子類來把CAD設計編碼為DXF格式,你的保存和載入代碼也許可以是:
<pre>
  void MyWidget::save()
  {
    <a href="qfile.html">QFile</a> out(current_file_name);
    out.<a href="qfile.html#open">open</a>(IO_WriteOnly);
    MyCadDrag tmp(current_design);
    out.<a href="qiodevice.html#writeBlock">writeBlock</a>( tmp-&gt;encodedData( "image/x-dxf" ) );
  }

  void MyWidget::load()
  {
    <a href="qfile.html">QFile</a> in(current_file_name);
    in.<a href="qfile.html#open">open</a>(IO_ReadOnly);
    if ( !MyCadDrag::decode(in.<a href="qiodevice.html#readAll">readAll</a>(), current_design) ) {
        QMessageBox::<a href="qmessagebox.html#warning">warning</a>( this, "Format error",
            tr("The file \"%1\" is not in any supported format")
             .arg(current_file_name)
        );
    }
  }
  </pre>
 
注意QDragObject的子類叫做“MyCadDrag”,而不是“MyDxfDrag”——因為以后也許你要把它擴展為DXF、DWG、SVF、WMF,或者甚至是<a href="qpicture.html">QPicture</a>數據到其它應用程序中。
<p> <h3><a name="drag-and-drop-action">拖放操作</a></h3>
<p> 在一些簡單的情況下,拖放的目標接收一個被拖動的數據的復制并且由源來決定是否刪除初始的拖動對象。這就是<a href="qdropevent.html">QDropEvent</a>中的“Copy”操作。目標也可以選擇理解其它操作,特別是“Move”和“Link”操作。如果目標理解了“Move”操作,<em>目標</em>就會對復制和刪除操作負責并且源自己不會再試圖刪除數據。如果目標理解了“Link”操作,它存儲它自己的初始信息的引用,并且源也不會刪除初始信息的。最通用的拖放操作是在同一個窗口部件中執行一個“Move”——請參考下面的<a href=#advanced>增強的拖放</a>一節。
<p> 拖動操作的另一個主要用法是當使用一個引用類型,比如text/uri-list,實際被拖動的數據引用了文件或對象。
<p> <h3><a name="adding-new-drag-and-drop-types">添加新的拖放類型</a></h3>
<p> 就像上面的DXF例子中建議的一樣,拖放不僅僅局限于文本和圖片。任何信息都可以被拖放。在應用程序之間拖放信息,兩個應用程序必須使用它們都能接受和產生的數據格式。這個可以使用<i><a href="http://www.rfc-editor.org/rfc/rfc1341.txt">MIME類型</a></i>來達到——拖動的源提供一個它能纏身的MIME類型的類標(按從最常用的到比較少用到的順序排列),并且拖動目標選擇一種它能接受的。例如,<a href="qtextdrag.html">QTextDrag</a>提供了“<tt>text/plain</tt>”MIME類型(普通的沒有格式的文本)和并且Unicode格式是“<tt>text/utf16</tt>”和“<tt>text/utf8</tt>”的支持,<a href="qimagedrag.html">QImageDrag</a>提供了“<tt>image/</tt><tt>*</tt>”的支持,<tt>*</tt>是<a href="qimageio.html">QImageIO</a>支持的任何一種圖片格式,并且<a href="quridrag.html">QUriDrag</a>子類提供了“<tt>text/uri-list</tt>”的支持,一個文件(或URL)的列表傳輸的標準格式。
<p> 為了實現<a href="qdragobject.html">QDragObject</a>子類中沒有支持的拖放信息的類型,首先和最重要的步驟是查找一下現存的格式中哪個是適合的——<a href="http://www.iana.org">IANA</a>(Internet Assigned Numbers Authority)在<a href="http://www.isi.edu">ISI</a>(Information Sciences Institute)提供了一個<a href="http://www.isi.edu/in-notes/iana/assignments/media-types/">MIME媒體類型的分級列表</a>。使用標準的MIME類型將會使你的應用程序和現在以及未來的其它軟件在互相操作中能夠最優化。
<p> 為了支持另外的媒體類型,繼承QDragObject或<a href="qstoreddrag.html">QStoredDrag</a>。當你需要提供對多類型進行支持,繼承QDragObject。當一個類型就足夠的時候,繼承更加簡單的QStoredDrag。
<p> QDragObject的子類將會重載<a href="qmimesource.html#format">const char* format(int i) const</a>和<a href="qmimesource.html#encodedData">QByteArray encodedData(const char* mimetype) const</a>成員,并且提供對媒體數據進行編碼和靜態成員canDecode()和對進入的數據進行解碼的decode()一套方法,和<a href="qimagedrag.html">QImageDrag</a>的<a href="qimagedrag.html#canDecode">bool canDecode(QMimeSource*) const</a>和<a href="qimagedrag.html#decode">QByteArray decode(QMimeSource*) const</a>很相似。當然,你也可以通過省略其中的一些方法對一種媒體數據只支持拖或只支持放。
<p> QStoredDrag的子類提供了對媒體數據進行編碼和靜態成員canDecode()和對進入的數據進行解碼的decode()一套方法。
<p> <h3><a name="advanced">增強的拖放</a></h3>
<p> 在剪貼板模式中,用戶可以<em>剪切</em>或<em>復制</em>源信息,然后粘貼它。相似地,在拖放模式中,用戶可以拖動信息的<em>復制</em>或者它們能夠自己拖動信息到一個新的位置(<em>移動</em>它)。拖放模式無論如何對于程序員來說都是額外的復雜:程序直到放下(粘貼)完成才會知道用戶是想剪切還是復制!在應用程序之間拖動,這個沒有什么影響,但是在一個應用程序之內進行拖動,應用程序必須多加注意以免踩到自己的腳。例如,在文檔中拖動文本,拖動的開始點和放下事件也許是這樣:
<p> <pre>
  void MyEditor::startDrag()
  {
    <a href="qdragobject.html">QDragObject</a> *d = new <a href="qtextdrag.html">QTextDrag</a>(myHighlightedText(), this);
    if ( d-&gt;<a href="qdragobject.html#drag">drag</a>() &amp;&amp; d-&gt;<a href="qdragobject.html#target">target</a>() != this )
      cutMyHighlightedText();
  }

  void MyEditor::dropEvent(QDropEvent* event)
  {
    <a href="qstring.html">QString</a> text;

    if ( QTextDrag::<a href="qtextdrag.html#decode">decode</a>(event, text) ) {
      if ( event-&gt;source() == this &amp;&amp; event-&gt;action() == QDropEvent::Move ) {
        // 注意不要踩到自己的腳
        event-&gt;acceptAction();
        moveMyHighlightedTextTo(event-&gt;pos());
      } else {
        pasteTextAt(text, event-&gt;pos());
      }
    }
  }
  </pre>
 
<p> 一些窗口部件在數據被拖動到它們上面時會問一個“是”或“否”的細節。比如,一個CAD程序也許只接收在視圖中的文本對象上放下的文本。在這種情況下,<a href="qwidget.html#dragMoveEvent">dragMoveEvent()</a>被使用并且給定一個<em>區域</em>是接受或者忽略拖動:
<pre>
  void MyWidget::dragMoveEvent(QDragMoveEvent* event)
  {
    if ( QTextDrag::<a href="qtextdrag.html#canDecode">canDecode</a>(event) ) {
      MyCadItem* item = findMyItemAt(event-&gt;pos());
      if ( item )
        event-&gt;accept();
    }
  }
  </pre>
 
如果搜索對象的計算指令特別地慢,如果你告訴系統你允許那些區域接受請求的話,你也許可以達到更好的效果:
<pre>
  void MyWidget::dragMoveEvent(QDragMoveEvent* event)
  {
    if ( QTextDrag::<a href="qtextdrag.html#canDecode">canDecode</a>(event) ) {
      MyCadItem* item = findMyItemAt(event-&gt;pos());
      if ( item ) {
        <a href="qrect.html">QRect</a> r = item-&gt;areaRelativeToMeClippedByAnythingInTheWay();
        if ( item-&gt;type() == MyTextType )
          event-&gt;accept( r );
        else
          event-&gt;ignore( r );
      }
    }
  }
  </pre>
 
<p> 如果你需要在拖動進程開始定時器、開始滾動窗口或者合適的情況(但是不要忘記在dragMoveEvent()中停止滾動和定時器)中給出視覺效果,dragMoveEvent()也可以被使用。
<p> <h3><a name="inter-operating-with-other-applications">和其它應用程序之間的操作</a></h3>
在X11上,公有的<a class="r" href="http://www.newplanetsoftware.com/xdnd/">XDND協議</a>被使用,而Qt在Windows上使用OLE標準,并且Qt在Mac上使用Carbon拖動管理器。在X11上,XDND使用MIME,所以不需要轉換。Qt的應用編程接口與平臺無關。在Windows上,可以識別MIME的應用程序可以通過使用MIME類型命名的剪貼板格式進行通訊。一些Windows引用程序已經在它們的剪貼板格式中使用MIME命名約定了。在內部,Qt也有在專有的剪貼板格式和MIME類型之間轉換的能力。在適當時候,這個接口應該被公開,但是如果你現在需要這樣的轉換,請和你的Qt技術支持服務進行聯系。
<p> 在X11上,Qt也支持使用Motif拖放協議的拖動。重新實現中合并了由Daniel Dardailler寫的一些代碼,并且由Qt的Matt Koss &lt;koss@napri.sk&gt;和Trolltech修改過。這里是初始版權通告:
<p> 
<p> Copyright 1996 Daniel Dardailler。
<p> 允許任何目的地使用、復制、修改、發布和銷售這個軟件并且允許沒有任何費用,上面的版權通告必須出現在所有的復制當中并且版權通告和這個允許通告要在支持文檔中出現,并且Daniel Dardailler的姓名在沒有被特定允許的情況下不能出現在和所發布的軟件相關的廣告和宣傳中。Daniel Dardailler對于這個軟件的任何目的的適用性都沒有任何責任。它僅僅提供的是“它自己”,而沒有明確或暗示任何責任。
<p> Copyright 1999 Matt Koss修改,和上面的協議相同。

<!-- eof -->
<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 2002 
<a href="http://www.trolltech.com">Trolltech</a>
<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td><a href="zh_CN.html">譯者:Cavendish</a>
<td align=right><div align=right>Qt 3.0.5版</div>
</table></div></address></body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美制服另类| 成人动漫中文字幕| 欧美男生操女生| 亚洲国产人成综合网站| 在线免费不卡电影| 一区二区三区高清| 在线观看成人小视频| 亚洲一区二区三区爽爽爽爽爽| 91成人免费网站| 中文字幕乱码日本亚洲一区二区| 国产成人在线视频播放| 国产精品国产a级| av激情成人网| 亚洲一区二区成人在线观看| 欧美精品v日韩精品v韩国精品v| 日韩精品一级中文字幕精品视频免费观看| 欧美日韩亚洲综合在线 | 一区二区三国产精华液| 色综合天天综合在线视频| 亚洲在线视频免费观看| 欧美人伦禁忌dvd放荡欲情| 日本午夜精品视频在线观看| 国产精品的网站| 在线免费观看不卡av| 一区二区国产视频| 欧美大肚乱孕交hd孕妇| 国产麻豆91精品| 亚洲欧美日韩成人高清在线一区| 欧美色图在线观看| 久久福利视频一区二区| 亚洲欧洲日韩一区二区三区| 欧美日本一区二区三区四区| 激情图片小说一区| 亚洲色图制服诱惑 | 国产福利不卡视频| 亚洲日本在线视频观看| 欧美一区二区成人6969| 丁香亚洲综合激情啪啪综合| 中文字幕中文乱码欧美一区二区| 欧美三级视频在线| 国产精品66部| 天天操天天干天天综合网| 国产女主播一区| 欧美老肥妇做.爰bbww| 成人激情小说乱人伦| 婷婷久久综合九色综合伊人色| 精品粉嫩超白一线天av| 欧美午夜电影在线播放| 国产成人自拍网| 美女尤物国产一区| 亚洲素人一区二区| 久久亚洲春色中文字幕久久久| 色综合久久综合| 视频在线在亚洲| 亚洲视频你懂的| 26uuu色噜噜精品一区二区| 欧美性xxxxxx少妇| 成人福利视频网站| 国产成人午夜视频| 美国精品在线观看| 香蕉av福利精品导航| 亚洲免费在线看| 国产精品久久二区二区| 久久嫩草精品久久久精品| 在线电影国产精品| 91亚洲永久精品| 成人激情免费视频| 国产激情一区二区三区四区 | 不卡免费追剧大全电视剧网站| 麻豆成人久久精品二区三区红| 一片黄亚洲嫩模| 亚洲嫩草精品久久| 亚洲人妖av一区二区| 国产精品你懂的| 国产亚洲欧美一级| 精品成人a区在线观看| 日韩午夜精品电影| 日韩一区二区三区视频在线观看| 欧美日韩视频第一区| 欧美亚洲日本国产| 欧美日韩精品欧美日韩精品一综合| 日本精品一区二区三区四区的功能| 91小视频在线免费看| 91亚洲精品一区二区乱码| 国产精品夜夜嗨| 粉嫩高潮美女一区二区三区| 国产二区国产一区在线观看| 国产精品乡下勾搭老头1| 国产精品中文字幕欧美| 国产乱一区二区| 福利91精品一区二区三区| 高清久久久久久| 91色婷婷久久久久合中文| 91碰在线视频| thepron国产精品| 免费观看一级特黄欧美大片| 日本中文字幕一区二区有限公司| 亚洲图片激情小说| 午夜影视日本亚洲欧洲精品| 亚洲与欧洲av电影| 日韩在线一区二区三区| 中文字幕欧美一区| 亚洲影院在线观看| 亚洲bt欧美bt精品777| 亚洲成人1区2区| 久久福利资源站| 国产宾馆实践打屁股91| 欧美精品v日韩精品v韩国精品v| 欧美日韩精品是欧美日韩精品| 日韩女优电影在线观看| 欧美电影免费观看高清完整版在线观看 | 精品国产麻豆免费人成网站| 日韩欧美国产一二三区| 欧美精彩视频一区二区三区| 中国色在线观看另类| 亚洲已满18点击进入久久| 亚洲成a人片在线不卡一二三区| 免费国产亚洲视频| 国产福利电影一区二区三区| 在线区一区二视频| 欧美性猛片aaaaaaa做受| 久久这里只精品最新地址| 亚洲国产精华液网站w| 亚洲一区二区中文在线| 日日欢夜夜爽一区| 国产精品99久久久久久久女警 | 国产精品美女一区二区三区| 国产精品久久久久久久久晋中| 夜夜操天天操亚洲| 韩国av一区二区三区在线观看| 国产在线精品免费| 欧美亚洲尤物久久| 久久亚洲精品小早川怜子| 亚洲一区二区三区爽爽爽爽爽| 另类小说色综合网站| 不卡av免费在线观看| 6080午夜不卡| 欧美激情综合在线| 午夜激情久久久| 丁香婷婷深情五月亚洲| 91网站视频在线观看| 欧美午夜电影在线播放| 国产精品电影一区二区| 蜜桃视频一区二区| 欧洲色大大久久| 日韩欧美一区在线观看| 18欧美乱大交hd1984| 国产一区三区三区| 在线免费观看日本欧美| 国产精品天天摸av网| 日韩av高清在线观看| 欧美日精品一区视频| 26uuu精品一区二区| 亚洲成人激情综合网| 成人免费视频免费观看| 久久久99精品免费观看| 一级日本不卡的影视| 成人午夜视频免费看| 欧美日韩在线观看一区二区| 欧美激情在线一区二区| 久久精品国产澳门| 精品国精品自拍自在线| 青青草伊人久久| 欧美亚洲一区二区在线| 亚洲一区二区三区中文字幕| 成人黄色综合网站| 中文字幕不卡一区| 国产一区在线看| 精品国产乱码久久久久久浪潮| 婷婷中文字幕一区三区| 色综合网色综合| 亚洲制服丝袜av| 91麻豆视频网站| 亚洲欧美激情视频在线观看一区二区三区 | 欧美自拍偷拍一区| 久久久综合视频| 国内精品视频666| 久久久久久久久久久电影| 亚洲国产aⅴ天堂久久| 欧美日韩一区二区三区四区五区| 亚洲欧洲av色图| 91国产免费看| 夜夜嗨av一区二区三区四季av| 99r国产精品| 一区二区三区四区在线| 色婷婷久久久亚洲一区二区三区| 亚洲美女在线国产| 91女神在线视频| 亚洲一区二区av电影| 欧美性色综合网| 蜜臀91精品一区二区三区| 制服丝袜日韩国产| 国产在线精品一区二区不卡了| 国产偷国产偷精品高清尤物 | 成人午夜在线播放| 国产视频在线观看一区二区三区| 99热精品一区二区| 国产精品妹子av| 99re热这里只有精品免费视频| 亚洲乱码国产乱码精品精小说 |