ftpclient-example.html
来自「QT 下载资料仅供参考」· HTML 代码 · 共 937 行 · 第 1/3 页
HTML
937 行
if ( !name.<a href="qstring.html#isEmpty">isEmpty</a>() && ok ) localOperator.mkdir( name );}void <a name="f279"></a>FtpMainWindow::slotLocalRemove(){}void <a name="f280"></a>FtpMainWindow::slotRemoteMkDir(){ // create a dir on the remote filesystem (FTP server) bool ok = FALSE; <a href="qstring.html">QString</a> name = QInputDialog::<a href="qinputdialog.html#getText">getText</a>( <a href="qobject.html#tr">tr</a>( "Directory Name:" ), QString::null, QLineEdit::Normal, QString::null, &ok, this ); if ( !name.<a href="qstring.html#isEmpty">isEmpty</a>() && ok ) remoteOperator.mkdir( name );}void <a name="f281"></a>FtpMainWindow::slotRemoteRemove(){}void <a name="f282"></a>FtpMainWindow::slotConnectionStateChanged( int, const <a href="qstring.html">QString</a> &msg ){ <a href="qmainwindow.html#statusBar">statusBar</a>()->message( msg );}</pre><p> <hr><p> The API of the FtpViewItem and FtpView classes (ftpview.h):<p> <pre>/****************************************************************************** $Id: qt/ftpview.h 3.0.5 edited Oct 12 2001 $**** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.**** This file is part of an example program for Qt. This example** program may be used, distributed and modified without limitation.*******************************************************************************/#ifndef FTPVIEW_H#define FTPVIEW_H#include <<a href="qlistview-h.html">qlistview.h</a>>#include <<a href="qvaluelist-h.html">qvaluelist.h</a>>#include <<a href="qurlinfo-h.html">qurlinfo.h</a>>class FtpViewItem : public <a href="qlistviewitem.html">QListViewItem</a>{public: FtpViewItem( <a href="qlistview.html">QListView</a> *parent, const <a href="qurlinfo.html">QUrlInfo</a> &i ); int compare( <a href="qlistviewitem.html">QListViewItem</a> * i, int col, bool ascending ) const; <a href="qstring.html">QString</a> text( int c ) const; const <a href="qpixmap.html">QPixmap</a>* pixmap( int c ) const; <a href="qurlinfo.html">QUrlInfo</a> entryInfo() { return info; }private: <a href="qurlinfo.html">QUrlInfo</a> info;};class FtpView : public <a href="qlistview.html">QListView</a>{ Q_OBJECTpublic: FtpView( <a href="qwidget.html">QWidget</a> *parent ); <a href="qvaluelist.html">QValueList</a><QUrlInfo> selectedItems() const;public slots: void slotInsertEntries( const <a href="qvaluelist.html">QValueList</a><QUrlInfo> &info );signals: void itemSelected( const <a href="qurlinfo.html">QUrlInfo</a> &info );private slots: void slotSelected( <a href="qlistviewitem.html">QListViewItem</a> *item );};#endif</pre><p> <hr><p> Their Implementation (ftpview.cpp):<p> <pre>/****************************************************************************** $Id: qt/ftpview.cpp 3.0.5 edited Oct 12 2001 $**** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.**** This file is part of an example program for Qt. This example** program may be used, distributed and modified without limitation.*******************************************************************************/#include "ftpview.h"#include <<a href="qpixmap-h.html">qpixmap.h</a>>#include <<a href="qvaluelist-h.html">qvaluelist.h</a>>/* XPM */static const char* closed_xpm[]={ "15 15 6 1", ". c None", "b c #ffff00", "d c #000000", "* c #999999", "a c #cccccc", "c c #ffffff", "...............", "..*****........", ".*ababa*.......", "*abababa******.", "*cccccccccccc*d", "*cbababababab*d", "*cabababababa*d", "*cbababababab*d", "*cabababababa*d", "*cbababababab*d", "*cabababababa*d", "*cbababababab*d", "**************d", ".dddddddddddddd", "..............."};/* XPM */static const char* file_xpm[]={ "13 15 5 1", ". c #7f7f7f", "# c None", "c c #000000", "b c #bfbfbf", "a c #ffffff", "..........###", ".aaaaaaaab.##", ".aaaaaaaaba.#", ".aaaaaaaacccc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".aaaaaaaaaabc", ".bbbbbbbbbbbc", "ccccccccccccc"};QPixmap *folderIcon = 0;QPixmap *fileIcon = 0;<a name="f287"></a>FtpViewItem::FtpViewItem( <a href="qlistview.html">QListView</a> *parent, const <a href="qurlinfo.html">QUrlInfo</a> &i )<a name="x693"></a> : <a href="qlistviewitem.html">QListViewItem</a>( parent, i.<a href="qurlinfo.html#name">name</a>() ), info( i ){}<a name="x688"></a>int FtpViewItem::<a href="qlistviewitem.html#compare">compare</a>( <a href="qlistviewitem.html">QListViewItem</a> * i, int col, bool ascending ) const{ FtpViewItem *other = (FtpViewItem*)i; switch ( col ) { case 1:<a name="x696"></a> if ( info.<a href="qvaluelist.html#size">size</a>() == other->info.<a href="qvaluelist.html#size">size</a>() ) return 0; else return info.<a href="qvaluelist.html#size">size</a>() < other->info.<a href="qvaluelist.html#size">size</a>() ? -1 : 1; case 2: if ( info.lastModified() == other->info.lastModified() ) return 0; else return info.lastModified() < other->info.lastModified() ? -1 : 1; default: // use default method for colum 0 and others added in the future return QListViewItem::compare( i, col, ascending ); };}<a name="x691"></a>QString FtpViewItem::<a href="qlistviewitem.html#text">text</a>( int c ) const{ switch ( c ) { case 0: return info.name(); case 1: return QString::number( info.<a href="qvaluelist.html#size">size</a>() ); case 2: return info.lastModified().toString(); } return "????";}<a name="x689"></a>const QPixmap *FtpViewItem::<a href="qlistviewitem.html#pixmap">pixmap</a>( int c ) const{ if ( !folderIcon ) folderIcon = new <a href="qpixmap.html">QPixmap</a>( closed_xpm ); if ( !fileIcon ) fileIcon = new <a href="qpixmap.html">QPixmap</a>( file_xpm ); if ( info.isDir() && c == 0 ) return folderIcon; else if ( info.isFile() && c == 0 ) return fileIcon; return 0;}<a name="f283"></a>FtpView::FtpView( <a href="qwidget.html">QWidget</a> *parent ) : <a href="qlistview.html">QListView</a>( parent ){ <a href="qlistview.html#addColumn">addColumn</a>( <a href="qobject.html#tr">tr</a>( "Name" ) ); <a href="qlistview.html#addColumn">addColumn</a>( <a href="qobject.html#tr">tr</a>( "Size" ) ); <a href="qlistview.html#addColumn">addColumn</a>( <a href="qobject.html#tr">tr</a>( "Last Modified" ) ); <a href="qlistview.html#setColumnAlignment">setColumnAlignment</a>( 1, Qt::AlignRight ); <a href="qlistview.html#setShowSortIndicator">setShowSortIndicator</a>( TRUE ); <a href="qlistview.html#setAllColumnsShowFocus">setAllColumnsShowFocus</a>( TRUE ); <a href="qlistview.html#setSelectionMode">setSelectionMode</a>( Extended ); <a href="qobject.html#connect">connect</a>( this, SIGNAL( <a href="qlistview.html#doubleClicked">doubleClicked</a>( <a href="qlistviewitem.html">QListViewItem</a> * ) ), this, SLOT( slotSelected( <a href="qlistviewitem.html">QListViewItem</a> * ) ) ); <a href="qobject.html#connect">connect</a>( this, SIGNAL( <a href="qlistview.html#returnPressed">returnPressed</a>( <a href="qlistviewitem.html">QListViewItem</a> * ) ), this, SLOT( slotSelected( <a href="qlistviewitem.html">QListViewItem</a> * ) ) );}void <a name="f284"></a>FtpView::slotInsertEntries( const <a href="qvaluelist.html">QValueList</a><QUrlInfo> &info ){ QValueList<QUrlInfo>::ConstIterator it;<a name="x695"></a><a name="x694"></a> for( it = info.<a href="qvaluelist.html#begin">begin</a>(); it != info.<a href="qvaluelist.html#end">end</a>(); ++it ) { if ( (*it).name() != ".." && (*it).name() != "." && (*it).name()[ 0 ] == '.' ) continue; FtpViewItem *item = new FtpViewItem( this, (*it) ); if ( (*it).isDir() )<a name="x690"></a> item-><a href="qlistviewitem.html#setSelectable">setSelectable</a>( FALSE ); }}void <a name="f285"></a>FtpView::slotSelected( <a href="qlistviewitem.html">QListViewItem</a> *item ){ if ( !item ) return; FtpViewItem *i = (FtpViewItem*)item; if ( i->entryInfo().isDir() ) emit itemSelected( i->entryInfo() );}QValueList<QUrlInfo> <a name="f286"></a>FtpView::selectedItems() const{ <a href="qvaluelist.html">QValueList</a><QUrlInfo> lst; <a href="qlistviewitemiterator.html">QListViewItemIterator</a> it( (QListView*)this );<a name="x692"></a> for ( ; it.<a href="qlistviewitemiterator.html#current">current</a>(); ++it ) { if ( it.<a href="qlistviewitemiterator.html#current">current</a>()->isSelected() ) { lst << ( (FtpViewItem*)it.<a href="qlistviewitemiterator.html#current">current</a>() )->entryInfo(); } } return lst;}</pre><p> <hr><p> Main (main.cpp):<p> <pre>/****************************************************************************** $Id: qt/main.cpp 3.0.5 edited Nov 6 2001 $**** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.**** This file is part of an example program for Qt. This example** program may be used, distributed and modified without limitation.*******************************************************************************/#include <<a href="qapplication-h.html">qapplication.h</a>>#include <<a href="qnetwork-h.html">qnetwork.h</a>>#include <<a href="qsplitter-h.html">qsplitter.h</a>>#include "ftpmainwindow.h"int main( int argc, char **argv ){ <a href="qapplication.html">QApplication</a> a( argc, argv ); // call this to register the built-in network protocols, e.g. FTP // and HTTP. <a href="qurloperator.html#qInitNetworkProtocols">qInitNetworkProtocols</a>(); FtpMainWindow m; a.<a href="qapplication.html#setMainWidget">setMainWidget</a>( &m ); <a href="qvaluelist.html">QValueList</a><int> sizes; sizes << 300 << 70 << 300; m.mainSplitter()->setSizes( sizes ); m.<a href="qwidget.html#resize">resize</a>( 800, 600 );<a name="x699"></a> m.<a href="qwidget.html#show">show</a>(); return a.<a href="qapplication.html#exec">exec</a>();}</pre><p>See also <a href="network-examples.html">Network Examples</a>.<!-- eof --><p><address><hr><div align=center><table width=100% cellspacing=0 border=0><tr><td>Copyright © 2002 <a href="http://www.trolltech.com">Trolltech</a><td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a><td align=right><div align=right>Qt version 3.0.5</div></table></div></address></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?