qwerty-example.html
来自「QT 下载资料仅供参考」· HTML 代码 · 共 510 行 · 第 1/2 页
HTML
510 行
<a name="x361"></a> if ( !f.<a href="qfile.html#open">open</a>( <a href="qfile.html#open">IO_ReadOnly</a> ) ) return;<a name="x374"></a> e-><a href="qmultilineedit.html#setAutoUpdate">setAutoUpdate</a>( FALSE ); <a href="qtextstream.html">QTextStream</a> t(&f); if ( code >= Codec )<a name="x400"></a> t.<a href="qtextstream.html#setCodec">setCodec</a>( codecList-><a href="qptrlist.html#at">at</a>(code-Codec) ); else if ( code == Uni )<a name="x401"></a> t.<a href="qtextstream.html#setEncoding">setEncoding</a>( QTextStream::Unicode ); else if ( code == MBug ) t.<a href="qtextstream.html#setEncoding">setEncoding</a>( QTextStream::UnicodeReverse ); else if ( code == Lat1 ) t.<a href="qtextstream.html#setEncoding">setEncoding</a>( QTextStream::Latin1 ); else if ( code == Guess ) { <a href="qfile.html">QFile</a> f(fileName); f.<a href="qfile.html#open">open</a>(IO_ReadOnly); char buffer[256]; int l = 256;<a name="x362"></a> l=f.<a href="qfile.html#readBlock">readBlock</a>(buffer,l);<a name="x389"></a> <a href="qtextcodec.html">QTextCodec</a>* codec = QTextCodec::<a href="qtextcodec.html#codecForContent">codecForContent</a>(buffer, l); if ( codec ) {<a name="x393"></a><a name="x371"></a> QMessageBox::<a href="qmessagebox.html#information">information</a>(this,"Encoding",QString("Codec: ")+codec-><a href="qtextcodec.html#name">name</a>()); t.<a href="qtextstream.html#setCodec">setCodec</a>( codec ); } }<a name="x399"></a><a name="x396"></a> e-><a href="qtextedit.html#setText">setText</a>( t.<a href="qtextstream.html#read">read</a>() );<a name="x360"></a> f.<a href="qfile.html#close">close</a>(); e-><a href="qmultilineedit.html#setAutoUpdate">setAutoUpdate</a>( TRUE );<a name="x405"></a> e-><a href="qwidget.html#repaint">repaint</a>(); <a href="qwidget.html#setCaption">setCaption</a>( fileName ); changed = FALSE;}void <a name="f204"></a>Editor::openAsEncoding( int code ){#ifndef QT_NO_FILEDIALOG //storing filename (proper save) is left as an exercise... <a href="qstring.html">QString</a> fn = QFileDialog::<a href="qfiledialog.html#getOpenFileName">getOpenFileName</a>( QString::null, QString::null, this ); if ( !fn.<a href="qstring.html#isEmpty">isEmpty</a>() ) (void) load( fn, code );#endif}bool <a name="f205"></a>Editor::save(){#ifndef QT_NO_FILEDIALOG //storing filename (proper save) is left as an exercise...<a name="x364"></a> <a href="qstring.html">QString</a> fn = QFileDialog::<a href="qfiledialog.html#getSaveFileName">getSaveFileName</a>( QString::null, QString::null, this ); if ( !fn.<a href="qstring.html#isEmpty">isEmpty</a>() ) return saveAs( fn ); return FALSE;#endif}void <a name="f206"></a>Editor::saveAsEncoding( int code ){#ifndef QT_NO_FILEDIALOG //storing filename (proper save) is left as an exercise... <a href="qstring.html">QString</a> fn = QFileDialog::<a href="qfiledialog.html#getSaveFileName">getSaveFileName</a>( QString::null, QString::null, this ); if ( !fn.<a href="qstring.html#isEmpty">isEmpty</a>() ) (void) saveAs( fn, code );#endif}void <a name="f207"></a>Editor::addEncoding(){#ifndef QT_NO_FILEDIALOG <a href="qstring.html">QString</a> fn = QFileDialog::<a href="qfiledialog.html#getOpenFileName">getOpenFileName</a>( QString::null, "*.map", this ); if ( !fn.<a href="qstring.html#isEmpty">isEmpty</a>() ) { <a href="qfile.html">QFile</a> f(fn); if (f.<a href="qfile.html#open">open</a>(IO_ReadOnly)) {<a name="x392"></a> if (QTextCodec::<a href="qtextcodec.html#loadCharmap">loadCharmap</a>(&f)) { rebuildCodecList(); } else {<a name="x372"></a> QMessageBox::<a href="qmessagebox.html#warning">warning</a>(0,"Charmap error", "The file did not contain a valid charmap.\n\n" "A charmap file should look like this:\n" " <code_set_name> thename\n" " <escape_char> /\n" " % alias thealias\n" " CHARMAP\n" " <tokenname> /x12 <U3456>\n" " <tokenname> /xAB/x12 <U0023>\n" " ...\n" " END CHARMAP\n" ); } } }#endif}bool <a name="f208"></a>Editor::saveAs( const <a href="qstring.html">QString</a>& fileName, int code ){ <a href="qfile.html">QFile</a> f( fileName ); if ( no_writing || !f.<a href="qfile.html#open">open</a>( <a href="qfile.html#open">IO_WriteOnly</a> ) ) { QMessageBox::<a href="qmessagebox.html#warning">warning</a>(this,"I/O Error", QString("The file could not be opened.\n\n") +fileName); return FALSE; } <a href="qtextstream.html">QTextStream</a> t(&f); if ( code >= Codec ) t.<a href="qtextstream.html#setCodec">setCodec</a>( codecList-><a href="qptrlist.html#at">at</a>(code-Codec) ); else if ( code == Uni ) t.<a href="qtextstream.html#setEncoding">setEncoding</a>( QTextStream::Unicode ); else if ( code == MBug ) t.<a href="qtextstream.html#setEncoding">setEncoding</a>( QTextStream::UnicodeReverse ); else if ( code == Lat1 ) t.<a href="qtextstream.html#setEncoding">setEncoding</a>( QTextStream::Latin1 );<a name="x397"></a> t << e-><a href="qtextedit.html#text">text</a>(); f.<a href="qfile.html#close">close</a>(); <a href="qwidget.html#setCaption">setCaption</a>( fileName ); changed = FALSE; return TRUE;}void <a name="f209"></a>Editor::print(){#ifndef QT_NO_PRINTER if ( printer.setup(this) ) { // opens printer dialog printer.setFullPage(TRUE); // we'll set our own margins <a href="qpainter.html">QPainter</a> p; p.<a href="qpainter.html#begin">begin</a>( &printer ); // paint on printer p.<a href="qpainter.html#setFont">setFont</a>( e-><a href="qtextedit.html#font">font</a>() );<a name="x382"></a> <a href="qfontmetrics.html">QFontMetrics</a> fm = p.<a href="qpainter.html#fontMetrics">fontMetrics</a>(); <a href="qpaintdevicemetrics.html">QPaintDeviceMetrics</a> metrics( &printer ); // need width/height // of printer surface<a name="x377"></a> const int MARGIN = metrics.<a href="qpaintdevicemetrics.html#logicalDpiX">logicalDpiX</a>() / 2; // half-inch margin int yPos = MARGIN; // y position for each line<a name="x373"></a> for( int i = 0 ; i < e-><a href="qmultilineedit.html#numLines">numLines</a>() ; i++ ) { if ( printer.aborted() ) break;<a name="x376"></a><a name="x367"></a> if ( yPos + fm.<a href="qfontmetrics.html#lineSpacing">lineSpacing</a>() > metrics.<a href="qpaintdevicemetrics.html#height">height</a>() - MARGIN ) { // no more room on this page if ( !printer.newPage() ) // start new page break; // some error yPos = MARGIN; // back to top of page }<a name="x378"></a> p.<a href="qpainter.html#drawText">drawText</a>( MARGIN, yPos, metrics.<a href="qpaintdevicemetrics.html#width">width</a>() - 2*MARGIN,<a name="x375"></a> fm.<a href="qfontmetrics.html#lineSpacing">lineSpacing</a>(), ExpandTabs, e-><a href="qmultilineedit.html#textLine">textLine</a>( i ) ); yPos += fm.<a href="qfontmetrics.html#lineSpacing">lineSpacing</a>(); } p.<a href="qpainter.html#end">end</a>(); // send job to printer }#endif}void Editor::<a href="qwidget.html#resizeEvent">resizeEvent</a>( <a href="qresizeevent.html">QResizeEvent</a> * ){ if ( e && m ) e-><a href="qwidget.html#setGeometry">setGeometry</a>( 0, m-><a href="qwidget.html#height">height</a>(), width(), height() - m-><a href="qwidget.html#height">height</a>() );}<a name="x402"></a>void Editor::<a href="qwidget.html#closeEvent">closeEvent</a>( <a href="qcloseevent.html">QCloseEvent</a> *event ){<a name="x358"></a> event-><a href="qcloseevent.html#accept">accept</a>(); if ( changed ) { // the text has been changed switch ( QMessageBox::<a href="qmessagebox.html#warning">warning</a>( this, "Qwerty", "Save changes to Document?", <a href="qobject.html#tr">tr</a>("&Yes"), <a href="qobject.html#tr">tr</a>("&No"), <a href="qobject.html#tr">tr</a>("Cancel"), 0, 2) ) { case 0: // yes if ( save() ) event-><a href="qcloseevent.html#accept">accept</a>(); else<a name="x359"></a> event-><a href="qcloseevent.html#ignore">ignore</a>(); break; case 1: // no event-><a href="qcloseevent.html#accept">accept</a>(); break; default: // cancel event-><a href="qcloseevent.html#ignore">ignore</a>(); break; } }}void <a name="f210"></a>Editor::toUpper(){ e-><a href="qtextedit.html#setText">setText</a>(e-><a href="qtextedit.html#text">text</a>().upper());}void <a name="f211"></a>Editor::toLower(){ e-><a href="qtextedit.html#setText">setText</a>(e-><a href="qtextedit.html#text">text</a>().lower());}void <a name="f212"></a>Editor::textChanged(){ changed = TRUE;}</pre><p> <hr><p> Main:<p> <pre>/****************************************************************************** $Id: qt/main.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 <<a href="qapplication-h.html">qapplication.h</a>>#include "qwerty.h"int main( int argc, char **argv ){ <a href="qapplication.html">QApplication</a> a( argc, argv );<a name="x412"></a> bool isSmall = qApp-><a href="qapplication.html#desktop">desktop</a>()->size().width() < 450 || qApp-><a href="qapplication.html#desktop">desktop</a>()->size().height() < 450; int i; for ( i= argc <= 1 ? 0 : 1; i<argc; i++ ) { Editor *e = new Editor; e-><a href="qwidget.html#setCaption">setCaption</a>("Qt Example - QWERTY"); if ( i > 0 ) e->load( argv[i] ); if ( isSmall ) {<a name="x420"></a> e-><a href="qwidget.html#showMaximized">showMaximized</a>(); } else { e-><a href="qwidget.html#resize">resize</a>( 400, 400 ); e-><a href="qwidget.html#show">show</a>(); } }<a name="x415"></a><a name="x414"></a> a.<a href="qobject.html#connect">connect</a>( &a, SIGNAL(<a href="qapplication.html#lastWindowClosed">lastWindowClosed</a>()), &a, SLOT(<a href="qapplication.html#quit">quit</a>()) ); return a.<a href="qapplication.html#exec">exec</a>();}</pre><p>See also <a href="examples.html">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 + -
显示快捷键?