ToolbarDemo::ToolbarDemo() : QMainWindow(0, "Toolbar Demo") { //主窗口本身是一个高级容器 //建立动作 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 ); //建立帮助菜单 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 ); }
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 ); }