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

📄 theme.cpp

📁 《Linux程序设计权威指南》一书qt下的源码
💻 CPP
字号:
#include "theme.h"#include "icons.h"#include "wood.h"#include "metal.h"#include <qtextcodec.h>#include <qmenubar.h>#include <qpopupmenu.h>#include <qstatusbar.h>#include <qpixmap.h>#include <qapplication.h>#include <qmultilineedit.h>#include <qmessagebox.h>#include <qmainwindow.h>#include <qtoolbar.h>#include <qaction.h>#include <qwhatsthis.h>#include <qfiledialog.h>#include <qwindowsstyle.h>#include <qplatinumstyle.h>#include <qmotifstyle.h>#include <qmotifplusstyle.h>#include <qcdestyle.h>const char * fileOpenText = "<img source=\"fileopen\"> ""按此按钮打开一个<em>新文件</em>. <br><br>""你也可以使用文件菜单中的<b>打开命令</b>";const char * fileSaveText = "按此按钮保存被编辑的内容""你将被提示选择一个文件名\n\n""你也可以从菜单中选择保存或者保存为命令";const char * filePrintText = "按此按钮打印正在编辑的文件\n\n""你和可以从菜单中选择打印命令";ThemeDemo::ThemeDemo()    : QMainWindow(0, "Toolbar Demo"){	appFont = QApplication::font();	//建立动作	QAction *fileNewAction, *fileOpenAction, *fileSaveAction,		*fileSaveAsAction, *filePrintAction, *fileCloseAction,		*fileQuitAction;	fileNewAction = new QAction( "New", tr("新建(&N)"), 		CTRL+Key_N, this, "new" );	connect( fileNewAction, SIGNAL( activated() ) ,this, SLOT( newDoc()));	fileOpenAction = new QAction( "Open File", QPixmap( fileopen ), 		tr("打开(&O)"), CTRL+Key_O, this, "open" );	connect( fileOpenAction, SIGNAL( activated() ) , this, SLOT( load() ) );	QMimeSourceFactory::defaultFactory()->setPixmap( "fileopen",		QPixmap( fileopen ) );	fileOpenAction->setWhatsThis( tr(fileOpenText) );	fileSaveAction = new QAction( "Save File", QPixmap( filesave ), 		tr("保存(&S)"), CTRL+Key_S, this, "save" );	connect( fileSaveAction, SIGNAL( activated() ) , this, SLOT( save() ) );	fileSaveAction->setWhatsThis( tr(fileSaveText) );	fileSaveAsAction = new QAction( "Save File As", tr("保存为(&s)..."), 		0,  this, "save as" );	connect( fileSaveAsAction, SIGNAL(activated()),this,SLOT( saveAs() ));	fileSaveAsAction->setWhatsThis( tr(fileSaveText) );	filePrintAction = new QAction( "Print File", QPixmap( fileprint ), 		tr("打印(&P)"), CTRL+Key_P, this, "print" );	connect( filePrintAction, SIGNAL(activated()) , this, SLOT(print()));	filePrintAction->setWhatsThis( tr(filePrintText) );	fileCloseAction = new QAction( "Close", tr("关闭(&C)"), CTRL+Key_W, 		this, "close" );	connect( fileCloseAction, SIGNAL(activated()) , this, SLOT(close()) );	fileQuitAction = new QAction( "Quit", tr("退出(&Q)"), CTRL+Key_Q, 		this, "quit" );	connect(fileQuitAction,SIGNAL(activated()),qApp,SLOT(closeAllWindows()));	//建立按钮条	QToolBar* fileTools = new QToolBar( this, "file operations" );	fileTools->setLabel( "File Operations" );	fileOpenAction->addTo( fileTools );	fileSaveAction->addTo( fileTools );	filePrintAction->addTo( fileTools );	(void)QWhatsThis::whatsThisButton( fileTools );	//建立文件菜单	QPopupMenu * file = new QPopupMenu( this );	menuBar()->insertItem( tr("文件(&F)"), file );	fileNewAction->addTo( file );	fileOpenAction->addTo( file );	fileSaveAction->addTo( file );	fileSaveAsAction->addTo( file );	file->insertSeparator();	filePrintAction->addTo( file );	file->insertSeparator();	fileCloseAction->addTo( file );	fileQuitAction->addTo( file );	//建立Style菜单	QPopupMenu *style = new QPopupMenu( this );	style->setCheckable( TRUE );	menuBar()->insertItem( tr("风格(&S)") , style );	sMetal = style->insertItem( "&Metal", this, SLOT( styleMetal() ) );	sWood = style->insertItem( "&Norwegian Wood", this, SLOT( styleWood() ) );	sPlatinum = style->insertItem( "&Platinum" , this ,SLOT( stylePlatinum() ) );	sWindows = style->insertItem( "&Windows", this, SLOT( styleWindows() ) );	sCDE = style->insertItem( "&CDE", this, SLOT( styleCDE() ) );	sMotif = style->insertItem( "M&otif", this, SLOT( styleMotif() ) );	sMotifPlus = style->insertItem( "Motif P&lus", this, SLOT( styleMotifPlus() ) );	//建立帮助菜单	QPopupMenu * help = new QPopupMenu( this );	menuBar()->insertSeparator();	menuBar()->insertItem( tr("帮助(&H)"), help );	help->insertItem( tr("关于(&A)"), this, SLOT(about()), Key_F1 );	help->insertItem( tr("关于 &Qt"), this, SLOT(aboutQt()) );	help->insertSeparator();	help->insertItem(tr("这是什么?"),this,SLOT(whatsThis()),SHIFT+Key_F1);	QMultiLineEdit *e = new QMultiLineEdit( this, "editor" );	e->setFocus();	setCentralWidget( e );	statusBar()->message( tr("准备就绪"), 2000 );	resize( 400, 400 );}void ThemeDemo::newDoc(){    ThemeDemo *ed = new ThemeDemo;    ed->show();}void ThemeDemo::load(){    QString fn = QFileDialog::getOpenFileName( QString::null, QString::null,                                               this);    statusBar()->message( "Loading " + fn );}void ThemeDemo::save(){    statusBar()->message( "Saved" );}void ThemeDemo::saveAs(){    statusBar()->message( "Save as..." );}void ThemeDemo::closeEvent( QCloseEvent* ce ){	ce->accept();}void ThemeDemo::print(){    statusBar()->message( "Send to printer..." );}void ThemeDemo::selectStyleMenu( int s ){    menuBar()->setItemChecked( sWood, FALSE );    menuBar()->setItemChecked( sMetal, FALSE );    menuBar()->setItemChecked( sPlatinum, FALSE );    menuBar()->setItemChecked( sWindows, FALSE );    menuBar()->setItemChecked( sCDE, FALSE );    menuBar()->setItemChecked( sMotif, FALSE );    menuBar()->setItemChecked( sMotifPlus, FALSE );    menuBar()->setItemChecked( s, TRUE );}void ThemeDemo::styleWood(){    qApp->setStyle( new NorwegianWoodStyle );    qApp->setFont( appFont, TRUE );    selectStyleMenu( sWood );}void ThemeDemo::styleMetal(){    qApp->setStyle( new MetalStyle );    qApp->setFont( appFont, TRUE );    selectStyleMenu( sMetal );}void ThemeDemo::stylePlatinum(){    qApp->setStyle( new QPlatinumStyle );    QPalette p( QColor( 239, 239, 239 ) );    qApp->setPalette( p, TRUE );    qApp->setFont( appFont, TRUE );    selectStyleMenu( sPlatinum );}void ThemeDemo::styleWindows(){    qApp->setStyle( new QWindowsStyle );    qApp->setFont( appFont, TRUE );    selectStyleMenu( sWindows );}void ThemeDemo::styleCDE(){    qApp->setStyle( new QCDEStyle( TRUE ) );    selectStyleMenu( sCDE );    QPalette p( QColor( 75, 123, 130 ) );    p.setColor( QPalette::Active, QColorGroup::Base, QColor( 55, 77, 78 ) );    p.setColor( QPalette::Inactive, QColorGroup::Base, QColor( 55, 77, 78 ) );    p.setColor( QPalette::Disabled, QColorGroup::Base, QColor( 55, 77, 78 ) );    p.setColor( QPalette::Active, QColorGroup::Highlight, Qt::white );    p.setColor( QPalette::Active, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );    p.setColor( QPalette::Inactive, QColorGroup::Highlight, Qt::white );    p.setColor( QPalette::Inactive, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );    p.setColor( QPalette::Disabled, QColorGroup::Highlight, Qt::white );    p.setColor( QPalette::Disabled, QColorGroup::HighlightedText, QColor( 55, 77, 78 ) );    p.setColor( QPalette::Active, QColorGroup::Foreground, Qt::white );    p.setColor( QPalette::Active, QColorGroup::Text, Qt::white );    p.setColor( QPalette::Active, QColorGroup::ButtonText, Qt::white );    p.setColor( QPalette::Inactive, QColorGroup::Foreground, Qt::white );    p.setColor( QPalette::Inactive, QColorGroup::Text, Qt::white );    p.setColor( QPalette::Inactive, QColorGroup::ButtonText, Qt::white );    p.setColor( QPalette::Disabled, QColorGroup::Foreground, Qt::lightGray );    p.setColor( QPalette::Disabled, QColorGroup::Text, Qt::lightGray );    p.setColor( QPalette::Disabled, QColorGroup::ButtonText, Qt::lightGray );    qApp->setPalette( p, TRUE );    qApp->setFont( QFont( "times", appFont.pointSize() ), TRUE );}void ThemeDemo::styleMotif(){    qApp->setStyle( new QMotifStyle );    QPalette p( QColor( 192, 192, 192 ) );    qApp->setPalette( p, TRUE );    qApp->setFont( appFont, TRUE );    selectStyleMenu( sMotif );}void ThemeDemo::styleMotifPlus(){    qApp->setStyle( new QMotifPlusStyle );    QPalette p( QColor( 192, 192, 192 ) );    qApp->setPalette( p, TRUE );    qApp->setFont( appFont, TRUE );    selectStyleMenu( sMotifPlus );} void ThemeDemo::about(){    QMessageBox::about( this, "Qt Toolbar Example",                        "This example demonstrates simple use of "                        "QMainWindow,\nQMenuBar and QToolBar.");}void ThemeDemo::aboutQt(){    QMessageBox::aboutQt( this, "Qt Toolbar Example" );}

⌨️ 快捷键说明

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