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

📄 menu.cpp

📁 《Linux程序设计权威指南》一书qt下的源码
💻 CPP
字号:
#include "menu.h"#include "icons.h"#include <qlabel.h>#include <qtextcodec.h>#include <qmenubar.h>#include <qpopupmenu.h>#include <qstatusbar.h>#include <qpixmap.h>#include <qlayout.h>#include <qapplication.h>#include <qmessagebox.h>MenuDemo::MenuDemo( QWidget *parent, const char *name )    : QWidget( parent, name ){	//建立布局	QVBoxLayout *vbox = new QVBoxLayout(this);	QPixmap p1( p1_xpm );	QPixmap p2( p2_xpm );	QPixmap p3( p3_xpm );	//建立 print 子菜单	QPopupMenu *print = new QPopupMenu( this );	print->insertTearOffHandle();	print->insertItem( tr("打印到打印机(&P)"), this, SLOT(printer()) );	print->insertItem( tr("打印到文件(&f)"), this, SLOT(file()) );	print->insertItem( tr("打印到传真机(&x)"), this, SLOT(fax()) );	print->insertSeparator();	print->insertItem( tr("打印机配置(&S)"), this, SLOT(printerSetup()) );	//建立文件菜单	QPopupMenu *file = new QPopupMenu( this );	file->insertItem( p1, tr("打开(&O)"), this, SLOT(open()), CTRL+Key_O );	file->insertItem( p2, tr("新建(&N)"), this, SLOT(news()), CTRL+Key_N );	file->insertItem( p3, tr("保存(&S)"), this, SLOT(save()), CTRL+Key_S );	file->insertItem( tr("关闭(&W)"), this, SLOT(closeDoc()), CTRL+Key_W );	file->insertSeparator();	file->insertItem( tr("打印(&P)"), print, CTRL+Key_P );	file->insertSeparator();	file->insertItem( tr("退出(&x)"),  qApp, SLOT(quit()), CTRL+Key_Q );	//建立编辑菜单	QPopupMenu *edit = new QPopupMenu( this );	int undoID = edit->insertItem( tr("撤销(&U)"), this, SLOT(undo()) );	int redoID = edit->insertItem( tr("重复(&R)"), this, SLOT(redo()) );	edit->setItemEnabled( undoID, FALSE );	edit->setItemEnabled( redoID, FALSE );	//建立帮助菜单	QPopupMenu *help = new QPopupMenu( this );	help->insertItem( tr("关于(&H)..."), this, SLOT(about()), CTRL+Key_H );	help->insertItem( tr("关于&Qt ..."), this, SLOT(aboutQt()) );	menubar = new QMenuBar( this );	menubar->insertItem( tr("文件(&F)"), file );	menubar->insertItem( tr("编辑(&E)"), edit );	menubar->insertSeparator();	menubar->insertItem( tr("帮助(&H)"), help );	menubar->setSeparator( QMenuBar::InWindowsStyle );	vbox->addWidget(menubar);	//stretch the vbox	vbox->addStretch(0);	//建立状态条	QStatusBar *sbar = new QStatusBar(this);	vbox->addWidget(sbar);	sbar->message(tr("菜单演示, 请测试快捷键...")); 	connect( this,  SIGNAL(explain(const QString&)),		sbar, SLOT(message(const QString&)) );}void MenuDemo::printer(){       emit explain( "File/Printer/Print selected" );}       void MenuDemo::file(){       emit explain( "File/Printer/Print To File selected" );}void MenuDemo::fax(){    emit explain( "File/Printer/Print To Fax selected" );}void MenuDemo::printerSetup(){    emit explain( "File/Printer/Printer Setup selected" );}void MenuDemo::open(){    emit explain( "File/Open selected" );}void MenuDemo::news(){    emit explain( "File/New selected" );}void MenuDemo::save(){    emit explain( "File/Save selected" );}void MenuDemo::closeDoc(){    emit explain( "File/Close selected" );}void MenuDemo::undo(){    emit explain( "Edit/Undo selected" );}void MenuDemo::redo(){    emit explain( "Edit/Redo selected" );}void MenuDemo::about(){    QMessageBox::about( this, "Qt Menu Example",                        "This example demonstrates simple use of Qt menus.\n"                        "You can cut and paste lines from it to your own\n"                        "programs." );}void MenuDemo::aboutQt(){    QMessageBox::aboutQt( this, "Qt Menu Example" );}

⌨️ 快捷键说明

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