⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textedit.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}void TextEdit::fileSave(){    if ( !currentEditor() )	return;    QString fn;    if ( filenames.find( currentEditor() ) == filenames.end() ) {	fileSaveAs();    } else {	QFile file( *filenames.find( currentEditor() ) );	if ( !file.open( IO_WriteOnly ) )	    return;	QTextStream ts( &file );	ts << currentEditor()->text();    }}void TextEdit::fileSaveAs(){    if ( !currentEditor() )	return;    QString fn = QFileDialog::getSaveFileName( QString::null, tr( "HTML-Files (*.htm *.html);;All Files (*)" ), this );    if ( !fn.isEmpty() ) {	filenames.replace( currentEditor(), fn );	fileSave();	tabWidget->setTabLabel( currentEditor(), QFileInfo( fn ).fileName() );    }}void TextEdit::filePrint(){    if ( !currentEditor() )	return;#ifndef QT_NO_PRINTER    QPrinter printer;    printer.setFullPage(TRUE);    QPaintDeviceMetrics screen( this );    printer.setResolution( screen.logicalDpiY() );    if ( printer.setup( this ) ) {	QPainter p( &printer );	QPaintDeviceMetrics metrics( p.device() );	int dpix = metrics.logicalDpiX();	int dpiy = metrics.logicalDpiY();	const int margin = 72; // pt	QRect body( margin * dpix / 72, margin * dpiy / 72,		    metrics.width() - margin * dpix / 72 * 2,		    metrics.height() - margin * dpiy / 72 * 2 );	QFont font( "times", 10 );	QSimpleRichText richText( currentEditor()->text(), font, currentEditor()->context(), currentEditor()->styleSheet(),				  currentEditor()->mimeSourceFactory(), body.height() );	richText.setWidth( &p, body.width() );	QRect view( body );	int page = 1;	do {	    richText.draw( &p, body.left(), body.top(), view, colorGroup() );	    view.moveBy( 0, body.height() );	    p.translate( 0 , -body.height() );	    p.setFont( font );	    p.drawText( view.right() - p.fontMetrics().width( QString::number( page ) ),			view.bottom() + p.fontMetrics().ascent() + 5, QString::number( page ) );	    if ( view.top()  >= richText.height() )		break;	    printer.newPage();	    page++;	} while (TRUE);    }#endif}void TextEdit::fileClose(){    delete currentEditor();    if ( currentEditor() )	currentEditor()->viewport()->setFocus();}void TextEdit::fileExit(){    qApp->quit();}void TextEdit::editUndo(){    if ( !currentEditor() )	return;    currentEditor()->undo();}void TextEdit::editRedo(){    if ( !currentEditor() )	return;    currentEditor()->redo();}void TextEdit::editCut(){    if ( !currentEditor() )	return;    currentEditor()->cut();}void TextEdit::editCopy(){    if ( !currentEditor() )	return;    currentEditor()->copy();}void TextEdit::editPaste(){    if ( !currentEditor() )	return;    currentEditor()->paste();}void TextEdit::textBold(){    if ( !currentEditor() )	return;    currentEditor()->setBold( actionTextBold->isOn() );}void TextEdit::textUnderline(){    if ( !currentEditor() )	return;    currentEditor()->setUnderline( actionTextUnderline->isOn() );}void TextEdit::textItalic(){    if ( !currentEditor() )	return;    currentEditor()->setItalic( actionTextItalic->isOn() );}void TextEdit::textFamily( const QString &f ){    if ( !currentEditor() )	return;    currentEditor()->setFamily( f );    currentEditor()->viewport()->setFocus();}void TextEdit::textSize( const QString &p ){    if ( !currentEditor() )	return;    currentEditor()->setPointSize( p.toInt() );    currentEditor()->viewport()->setFocus();}void TextEdit::textStyle( int i ){    if ( !currentEditor() )	return;    if ( i == 0 )	currentEditor()->setParagType( QStyleSheetItem::DisplayBlock, QStyleSheetItem::ListDisc );    else if ( i == 1 )	currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListDisc );    else if ( i == 2 )	currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListCircle );    else if ( i == 3 )	currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListSquare );    else if ( i == 4 )	currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListDecimal );    else if ( i == 5 )	currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListLowerAlpha );    else if ( i == 6 )	currentEditor()->setParagType( QStyleSheetItem::DisplayListItem, QStyleSheetItem::ListUpperAlpha );    currentEditor()->viewport()->setFocus();}void TextEdit::textColor(){    if ( !currentEditor() )	return;    QColor col = QColorDialog::getColor( currentEditor()->color(), this );    if ( !col.isValid() )	return;    currentEditor()->setColor( col );    QPixmap pix( 16, 16 );    pix.fill( col );    actionTextColor->setIconSet( pix );}void TextEdit::textAlign( QAction *a ){    if ( !currentEditor() )	return;    if ( a == actionAlignLeft )	currentEditor()->setAlignment( AlignLeft );    else if ( a == actionAlignCenter )	currentEditor()->setAlignment( AlignHCenter );    else if ( a == actionAlignRight )	currentEditor()->setAlignment( AlignRight );    else if ( a == actionAlignJustify )	currentEditor()->setAlignment( AlignJustify );}void TextEdit::fontChanged( const QFont &f ){    comboFont->lineEdit()->setText( f.family() );    comboSize->lineEdit()->setText( QString::number( f.pointSize() ) );    actionTextBold->setOn( f.bold() );    actionTextItalic->setOn( f.italic() );    actionTextUnderline->setOn( f.underline() );}void TextEdit::colorChanged( const QColor &c ){    QPixmap pix( 16, 16 );    pix.fill( c );    actionTextColor->setIconSet( pix );}void TextEdit::alignmentChanged( int a ){    if ( ( a == AlignAuto ) || ( a & AlignLeft ))	actionAlignLeft->setOn( TRUE );    else if ( ( a & AlignHCenter ) )	actionAlignCenter->setOn( TRUE );    else if ( ( a & AlignRight ) )	actionAlignRight->setOn( TRUE );    else if ( ( a & AlignJustify ) )	actionAlignJustify->setOn( TRUE );}void TextEdit::editorChanged( QWidget * ){    if ( !currentEditor() )	return;    fontChanged( currentEditor()->font() );    colorChanged( currentEditor()->color() );    alignmentChanged( currentEditor()->alignment() );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -