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

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

?? helpwindow.cpp

?? Trolltech公司發布的基于C++圖形開發環境
?? CPP
字號:
/****************************************************************************** $Id: qt/helpwindow.cpp   3.3.4   edited May 27 2003 $**** 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 "helpwindow.h"#include <qstatusbar.h>#include <qpixmap.h>#include <qpopupmenu.h>#include <qmenubar.h>#include <qtoolbar.h>#include <qtoolbutton.h>#include <qiconset.h>#include <qfile.h>#include <qtextstream.h>#include <qstylesheet.h>#include <qmessagebox.h>#include <qfiledialog.h>#include <qapplication.h>#include <qcombobox.h>#include <qevent.h>#include <qlineedit.h>#include <qobjectlist.h>#include <qfileinfo.h>#include <qfile.h>#include <qdatastream.h>#include <qprinter.h>#include <qsimplerichtext.h>#include <qpainter.h>#include <qpaintdevicemetrics.h>#include <ctype.h>HelpWindow::HelpWindow( const QString& home_, const QString& _path,			QWidget* parent, const char *name )    : QMainWindow( parent, name, WDestructiveClose ),      pathCombo( 0 ), selectedURL(){    readHistory();    readBookmarks();    browser = new QTextBrowser( this );    browser->mimeSourceFactory()->setFilePath( _path );    browser->setFrameStyle( QFrame::Panel | QFrame::Sunken );    connect( browser, SIGNAL( textChanged() ),	     this, SLOT( textChanged() ) );    setCentralWidget( browser );    if ( !home_.isEmpty() )	browser->setSource( home_ );    connect( browser, SIGNAL( highlighted( const QString&) ),	     statusBar(), SLOT( message( const QString&)) );    resize( 640,700 );    QPopupMenu* file = new QPopupMenu( this );    file->insertItem( tr("&New Window"), this, SLOT( newWindow() ), ALT | Key_N );    file->insertItem( tr("&Open File"), this, SLOT( openFile() ), ALT | Key_O );    file->insertItem( tr("&Print"), this, SLOT( print() ), ALT | Key_P );    // The same three icons are used twice each.    QIconSet icon_back( QPixmap("textdrawing/previous.png") );    QIconSet icon_forward( QPixmap("textdrawing/next.png") );    QIconSet icon_home( QPixmap("textdrawing/home.png") );    QPopupMenu* go = new QPopupMenu( this );    backwardId = go->insertItem( icon_back,				 tr("&Backward"), browser, SLOT( backward() ),				 ALT | Key_Left );    forwardId = go->insertItem( icon_forward,				tr("&Forward"), browser, SLOT( forward() ),				ALT | Key_Right );    go->insertItem( icon_home, tr("&Home"), browser, SLOT( home() ) );    hist = new QPopupMenu( this );    QStringList::Iterator it = history.begin();    for ( ; it != history.end(); ++it )	mHistory[ hist->insertItem( *it ) ] = *it;    connect( hist, SIGNAL( activated( int ) ),	     this, SLOT( histChosen( int ) ) );    bookm = new QPopupMenu( this );    bookm->insertItem( tr( "Add Bookmark" ), this, SLOT( addBookmark() ) );    bookm->insertSeparator();    QStringList::Iterator it2 = bookmarks.begin();    for ( ; it2 != bookmarks.end(); ++it2 )	mBookmarks[ bookm->insertItem( *it2 ) ] = *it2;    connect( bookm, SIGNAL( activated( int ) ),	     this, SLOT( bookmChosen( int ) ) );    menuBar()->insertItem( tr("&File"), file );    menuBar()->insertItem( tr("&Go"), go );    menuBar()->insertItem( tr( "History" ), hist );    menuBar()->insertItem( tr( "Bookmarks" ), bookm );    menuBar()->setItemEnabled( forwardId, FALSE);    menuBar()->setItemEnabled( backwardId, FALSE);    connect( browser, SIGNAL( backwardAvailable( bool ) ),	     this, SLOT( setBackwardAvailable( bool ) ) );    connect( browser, SIGNAL( forwardAvailable( bool ) ),	     this, SLOT( setForwardAvailable( bool ) ) );    QToolBar* toolbar = new QToolBar( this );    addToolBar( toolbar, "Toolbar");    QToolButton* button;    button = new QToolButton( icon_back, tr("Backward"), "", browser, SLOT(backward()), toolbar );    connect( browser, SIGNAL( backwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) );    button->setEnabled( FALSE );    button = new QToolButton( icon_forward, tr("Forward"), "", browser, SLOT(forward()), toolbar );    connect( browser, SIGNAL( forwardAvailable(bool) ), button, SLOT( setEnabled(bool) ) );    button->setEnabled( FALSE );    button = new QToolButton( icon_home, tr("Home"), "", browser, SLOT(home()), toolbar );    toolbar->addSeparator();    pathCombo = new QComboBox( TRUE, toolbar );    connect( pathCombo, SIGNAL( activated( const QString & ) ),	     this, SLOT( pathSelected( const QString & ) ) );    toolbar->setStretchableWidget( pathCombo );    setRightJustification( TRUE );    setDockEnabled( DockLeft, FALSE );    setDockEnabled( DockRight, FALSE );    pathCombo->insertItem( home_ );    browser->setFocus();}void HelpWindow::setBackwardAvailable( bool b){    menuBar()->setItemEnabled( backwardId, b);}void HelpWindow::setForwardAvailable( bool b){    menuBar()->setItemEnabled( forwardId, b);}void HelpWindow::textChanged(){    if ( browser->documentTitle().isNull() )	setCaption( browser->context() );    else	setCaption( browser->documentTitle() ) ;    selectedURL = caption();    if ( !selectedURL.isEmpty() && pathCombo ) {	bool exists = FALSE;	int i;	for ( i = 0; i < pathCombo->count(); ++i ) {	    if ( pathCombo->text( i ) == selectedURL ) {		exists = TRUE;		break;	    }	}	if ( !exists ) {	    pathCombo->insertItem( selectedURL, 0 );	    pathCombo->setCurrentItem( 0 );	    mHistory[ hist->insertItem( selectedURL ) ] = selectedURL;	} else	    pathCombo->setCurrentItem( i );	selectedURL = QString::null;    }}HelpWindow::~HelpWindow(){    history.clear();    QMap<int, QString>::Iterator it = mHistory.begin();    for ( ; it != mHistory.end(); ++it )	history.append( *it );    QFile f( QDir::currentDirPath() + "/.history" );    f.open( IO_WriteOnly );    QDataStream s( &f );    s << history;    f.close();    bookmarks.clear();    QMap<int, QString>::Iterator it2 = mBookmarks.begin();    for ( ; it2 != mBookmarks.end(); ++it2 )	bookmarks.append( *it2 );    QFile f2( QDir::currentDirPath() + "/.bookmarks" );    f2.open( IO_WriteOnly );    QDataStream s2( &f2 );    s2 << bookmarks;    f2.close();}void HelpWindow::about(){    QMessageBox::about( this, "HelpViewer Example",			"<p>This example implements a simple HTML help viewer "			"using Qt's rich text capabilities</p>"			"<p>It's just about 100 lines of C++ code, so don't expect too much :-)</p>"			);}void HelpWindow::aboutQt(){    QMessageBox::aboutQt( this, "QBrowser" );}void HelpWindow::openFile(){#ifndef QT_NO_FILEDIALOG    QString fn = QFileDialog::getOpenFileName( QString::null, QString::null, this );    if ( !fn.isEmpty() )	browser->setSource( fn );#endif}void HelpWindow::newWindow(){    ( new HelpWindow(browser->source(), "qbrowser") )->show();}void HelpWindow::print(){#ifndef QT_NO_PRINTER    QPrinter printer;    printer.setFullPage(TRUE);    if ( printer.setup() ) {	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);	QStringList filePaths = browser->mimeSourceFactory()->filePath();	QString file;	QStringList::Iterator it = filePaths.begin();	for ( ; it != filePaths.end(); ++it ) {	    file = QUrl( *it, QUrl( browser->source() ).path() ).path();	    if ( QFile::exists( file ) )		break;	    else		file = QString::null;	}	if ( file.isEmpty() )	    return;	QFile f( file );	if ( !f.open( IO_ReadOnly ) )	    return;	QTextStream ts( &f );	QSimpleRichText richText( ts.read(), font, browser->context(), browser->styleSheet(),				  browser->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 HelpWindow::pathSelected( const QString &_path ){    browser->setSource( _path );    QMap<int, QString>::Iterator it = mHistory.begin();    bool exists = FALSE;    for ( ; it != mHistory.end(); ++it ) {	if ( *it == _path ) {	    exists = TRUE;	    break;	}    }    if ( !exists )	mHistory[ hist->insertItem( _path ) ] = _path;}void HelpWindow::readHistory(){    if ( QFile::exists( QDir::currentDirPath() + "/.history" ) ) {	QFile f( QDir::currentDirPath() + "/.history" );	f.open( IO_ReadOnly );	QDataStream s( &f );	s >> history;	f.close();	while ( history.count() > 20 )	    history.remove( history.begin() );    }}void HelpWindow::readBookmarks(){    if ( QFile::exists( QDir::currentDirPath() + "/.bookmarks" ) ) {	QFile f( QDir::currentDirPath() + "/.bookmarks" );	f.open( IO_ReadOnly );	QDataStream s( &f );	s >> bookmarks;	f.close();    }}void HelpWindow::histChosen( int i ){    if ( mHistory.contains( i ) )	browser->setSource( mHistory[ i ] );}void HelpWindow::bookmChosen( int i ){    if ( mBookmarks.contains( i ) )	browser->setSource( mBookmarks[ i ] );}void HelpWindow::addBookmark(){    mBookmarks[ bookm->insertItem( caption() ) ] = caption();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频免费看| 久久久久88色偷偷免费 | 欧美丝袜第三区| 91看片淫黄大片一级在线观看| 国产一区二区精品久久91| 精品一区二区三区不卡| 狠狠狠色丁香婷婷综合久久五月| 精品一区二区三区日韩| 国精产品一区一区三区mba视频| 免费人成黄页网站在线一区二区 | 欧美日本一道本在线视频| 欧美日韩日日夜夜| 日韩欧美国产小视频| 久久综合丝袜日本网| 国产精品久久久久久久久久久免费看| 欧美国产精品一区二区| 亚洲欧美色一区| 天天亚洲美女在线视频| 国产精品18久久久久久久久| 成人av资源站| 欧美日韩成人在线| 久久久久国产精品厨房| 亚洲乱码一区二区三区在线观看| 亚洲福利视频一区二区| 国产一区二区三区av电影| 99综合电影在线视频| 欧美日韩黄色影视| 国产亚洲精品中文字幕| 亚洲福利一区二区三区| 国产精品66部| 6080yy午夜一二三区久久| 久久综合狠狠综合| 亚洲一卡二卡三卡四卡五卡| 国产精品自拍一区| 欧美在线999| 国产三级精品三级| 水蜜桃久久夜色精品一区的特点| 国产精品自产自拍| 欧美午夜一区二区| 欧美国产欧美综合| 玖玖九九国产精品| 欧美日韩中文字幕一区二区| 日本一区二区三区高清不卡| 爽爽淫人综合网网站| 成人av电影在线观看| 欧美精品一区二区三区蜜臀| 亚洲高清三级视频| 国产1区2区3区精品美女| 欧美日本国产一区| 一卡二卡三卡日韩欧美| 成人一二三区视频| 久久亚洲综合av| 免费精品视频在线| 欧美色网站导航| 亚洲三级电影全部在线观看高清| 久久 天天综合| 日韩亚洲欧美在线| 天堂va蜜桃一区二区三区 | 国产一区二区电影| 91精品国产欧美一区二区18| 亚洲免费色视频| av不卡免费电影| 中文字幕在线不卡国产视频| 国产盗摄视频一区二区三区| 欧美成人激情免费网| 日本亚洲欧美天堂免费| 69av一区二区三区| 免费高清在线一区| 欧美高清视频不卡网| 亚洲午夜羞羞片| 欧美日韩一区高清| 亚洲成人手机在线| 91精品久久久久久蜜臀| 日本女人一区二区三区| 欧美一区日韩一区| 日本免费新一区视频| 欧美一区二区三区在线看| 日av在线不卡| 26uuu国产日韩综合| 国产成人精品一区二区三区网站观看| 26uuu国产电影一区二区| 国产精品99久久久久久似苏梦涵| 久久精品亚洲精品国产欧美| 国产成人精品综合在线观看| 中文字幕一区在线观看视频| 91蝌蚪porny成人天涯| 亚洲成人黄色小说| 欧美videos大乳护士334| 国产精品一区二区不卡| 国产精品毛片久久久久久| 99久久精品免费看国产免费软件| 亚洲欧美日韩在线不卡| 欧美日韩另类一区| 国内精品久久久久影院一蜜桃| 欧美精品一区二| 成人av网站大全| 婷婷国产在线综合| 久久精品亚洲乱码伦伦中文| 99久久精品费精品国产一区二区| 亚洲资源中文字幕| 精品嫩草影院久久| 91丨porny丨首页| 日韩福利视频网| 国产日韩影视精品| 欧美久久久久久久久久| 国产精品中文有码| 亚洲国产美女搞黄色| www国产精品av| 99久久99久久精品免费观看| 日韩精品一级中文字幕精品视频免费观看| 亚洲精品在线电影| 色88888久久久久久影院野外| 日本不卡123| 综合网在线视频| 久久综合色天天久久综合图片| 91在线云播放| 国产激情视频一区二区在线观看 | 亚洲伦理在线精品| 久久久久九九视频| 欧美偷拍一区二区| 成人av网址在线观看| 国产资源精品在线观看| 午夜视频在线观看一区| 中文字幕不卡一区| 欧美精品一区二区三区高清aⅴ| 91麻豆产精品久久久久久| 精品一区二区三区在线观看国产| 中文字幕在线不卡| 久久精品一级爱片| 欧美sm极限捆绑bd| 3atv一区二区三区| 欧美三区免费完整视频在线观看| 国产精品99久久久久久久女警| 日韩成人一级片| 亚洲国产精品久久一线不卡| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久激情五月激情| 午夜精品久久久久久久| 亚洲品质自拍视频| 中文字幕一区二区三中文字幕| 久久亚洲欧美国产精品乐播| 91精品国产综合久久国产大片| 欧美探花视频资源| 欧美在线视频全部完| 91天堂素人约啪| 99精品视频在线播放观看| 成人av电影免费在线播放| 国产一二三精品| 国产呦精品一区二区三区网站| 蜜桃av噜噜一区| 青青草97国产精品免费观看| 亚洲成av人综合在线观看| 一区二区三区四区高清精品免费观看 | 亚洲女同ⅹxx女同tv| 1024精品合集| 一区二区三区四区不卡视频| 一区二区三区免费网站| 亚洲一二三四在线观看| 五月婷婷综合网| 三级精品在线观看| 麻豆精品一区二区av白丝在线| 蜜臀久久99精品久久久画质超高清| 五月激情六月综合| 午夜精品影院在线观看| 日韩**一区毛片| 韩国视频一区二区| 国产成人精品免费看| av网站免费线看精品| 欧美亚男人的天堂| 日韩欧美中文一区| 亚洲精品一区二区精华| 欧美激情一区二区在线| 亚洲日本一区二区三区| 亚洲国产婷婷综合在线精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 激情综合五月婷婷| 国产99久久久国产精品潘金网站| 白白色亚洲国产精品| 在线观看一区日韩| 91精选在线观看| 国产日韩欧美麻豆| 亚洲主播在线播放| 黄色日韩网站视频| 一本一本久久a久久精品综合麻豆| 91黄色免费网站| 久久看人人爽人人| 亚洲与欧洲av电影| 国产一区二区三区精品视频| 色哟哟国产精品| 欧美成人女星排名| 亚洲综合清纯丝袜自拍| 国产成人综合视频| 欧美日韩视频第一区| 国产精品国产三级国产普通话99| 亚洲bdsm女犯bdsm网站| 成人网在线免费视频| 91精品国产一区二区三区| 亚洲色图视频网| 国产福利91精品一区| 日韩一区二区免费在线观看|