Qt:Документация 4.3.2/mainwindows-menus-mainwindow-cpp
Материал из Wiki.crossplatform.ru
![]() | Внимание: Актуальная версия перевода документации находится здесь |
__NOTOC__
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции |
[править] mainwindow.cpp Example File
mainwindows/menus/mainwindow.cpp
/**************************************************************************** ** ** Copyright (C) 2004-2007 Trolltech ASA. All rights reserved. ** ** This file is part of the example classes of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http://trolltech.com/products/qt/licenses/licensing/opensource/ ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http://trolltech.com/products/qt/licenses/licensing/licensingoverview ** or contact the sales department at sales@trolltech.com. ** ** In addition, as a special exception, Trolltech gives you certain ** additional rights. These rights are described in the Trolltech GPL ** Exception version 1.0, which can be found at ** http://www.trolltech.com/products/qt/gplexception/ and in the file ** GPL_EXCEPTION.txt in this package. ** ** In addition, as a special exception, Trolltech, as the sole copyright ** holder for Qt Designer, grants users of the Qt/Eclipse Integration ** plug-in the right for the Qt/Eclipse Integration to link to ** functionality provided by Qt Designer and its related libraries. ** ** Trolltech reserves all rights not expressly granted herein. ** ** Trolltech ASA (c) 2007 ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include <QtGui> #include "mainwindow.h" MainWindow::MainWindow() { QWidget *widget = new QWidget; setCentralWidget(widget); QWidget *topFiller = new QWidget; topFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); infoLabel = new QLabel(tr("<i>Choose a menu option, or right-click to " "invoke a context menu</i>")); infoLabel->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken); infoLabel->setAlignment(Qt::AlignCenter); QWidget *bottomFiller = new QWidget; bottomFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); QVBoxLayout *layout = new QVBoxLayout; layout->setMargin(5); layout->addWidget(topFiller); layout->addWidget(infoLabel); layout->addWidget(bottomFiller); widget->setLayout(layout); createActions(); createMenus(); QString message = tr("A context menu is available by right-clicking"); statusBar()->showMessage(message); setWindowTitle(tr("Menus")); setMinimumSize(160, 160); resize(480, 320); } void MainWindow::contextMenuEvent(QContextMenuEvent *event) { QMenu menu(this); menu.addAction(cutAct); menu.addAction(copyAct); menu.addAction(pasteAct); menu.exec(event->globalPos()); } void MainWindow::newFile() { infoLabel->setText(tr("Invoked <b>File|New</b>")); } void MainWindow::open() { infoLabel->setText(tr("Invoked <b>File|Open</b>")); } void MainWindow::save() { infoLabel->setText(tr("Invoked <b>File|Save</b>")); } void MainWindow::print() { infoLabel->setText(tr("Invoked <b>File|Print</b>")); } void MainWindow::undo() { infoLabel->setText(tr("Invoked <b>Edit|Undo</b>")); } void MainWindow::redo() { infoLabel->setText(tr("Invoked <b>Edit|Redo</b>")); } void MainWindow::cut() { infoLabel->setText(tr("Invoked <b>Edit|Cut</b>")); } void MainWindow::copy() { infoLabel->setText(tr("Invoked <b>Edit|Copy</b>")); } void MainWindow::paste() { infoLabel->setText(tr("Invoked <b>Edit|Paste</b>")); } void MainWindow::bold() { infoLabel->setText(tr("Invoked <b>Edit|Format|Bold</b>")); } void MainWindow::italic() { infoLabel->setText(tr("Invoked <b>Edit|Format|Italic</b>")); } void MainWindow::leftAlign() { infoLabel->setText(tr("Invoked <b>Edit|Format|Left Align</b>")); } void MainWindow::rightAlign() { infoLabel->setText(tr("Invoked <b>Edit|Format|Right Align</b>")); } void MainWindow::justify() { infoLabel->setText(tr("Invoked <b>Edit|Format|Justify</b>")); } void MainWindow::center() { infoLabel->setText(tr("Invoked <b>Edit|Format|Center</b>")); } void MainWindow::setLineSpacing() { infoLabel->setText(tr("Invoked <b>Edit|Format|Set Line Spacing</b>")); } void MainWindow::setParagraphSpacing() { infoLabel->setText(tr("Invoked <b>Edit|Format|Set Paragraph Spacing</b>")); } void MainWindow::about() { infoLabel->setText(tr("Invoked <b>Help|About</b>")); QMessageBox::about(this, tr("About Menu"), tr("The <b>Menu</b> example shows how to create " "menu-bar menus and context menus.")); } void MainWindow::aboutQt() { infoLabel->setText(tr("Invoked <b>Help|About Qt</b>")); } void MainWindow::createActions() { newAct = new QAction(tr("&New"), this); newAct->setShortcut(tr("Ctrl+N")); newAct->setStatusTip(tr("Create a new file")); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); openAct = new QAction(tr("&Open..."), this); openAct->setShortcut(tr("Ctrl+O")); openAct->setStatusTip(tr("Open an existing file")); connect(openAct, SIGNAL(triggered()), this, SLOT(open())); saveAct = new QAction(tr("&Save"), this); saveAct->setShortcut(tr("Ctrl+S")); saveAct->setStatusTip(tr("Save the document to disk")); connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); printAct = new QAction(tr("&Print..."), this); printAct->setShortcut(tr("Ctrl+P")); printAct->setStatusTip(tr("Print the document")); connect(printAct, SIGNAL(triggered()), this, SLOT(print())); exitAct = new QAction(tr("E&xit"), this); exitAct->setShortcut(tr("Ctrl+Q")); exitAct->setStatusTip(tr("Exit the application")); connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); undoAct = new QAction(tr("&Undo"), this); undoAct->setShortcut(tr("Ctrl+Z")); undoAct->setStatusTip(tr("Undo the last operation")); connect(undoAct, SIGNAL(triggered()), this, SLOT(undo())); redoAct = new QAction(tr("&Redo"), this); redoAct->setShortcut(tr("Ctrl+Y")); redoAct->setStatusTip(tr("Redo the last operation")); connect(redoAct, SIGNAL(triggered()), this, SLOT(redo())); cutAct = new QAction(tr("Cu&t"), this); cutAct->setShortcut(tr("Ctrl+X")); cutAct->setStatusTip(tr("Cut the current selection's contents to the " "clipboard")); connect(cutAct, SIGNAL(triggered()), this, SLOT(cut())); copyAct = new QAction(tr("&Copy"), this); copyAct->setShortcut(tr("Ctrl+C")); copyAct->setStatusTip(tr("Copy the current selection's contents to the " "clipboard")); connect(copyAct, SIGNAL(triggered()), this, SLOT(copy())); pasteAct = new QAction(tr("&Paste"), this); pasteAct->setShortcut(tr("Ctrl+V")); pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current " "selection")); connect(pasteAct, SIGNAL(triggered()), this, SLOT(paste())); boldAct = new QAction(tr("&Bold"), this); boldAct->setCheckable(true); boldAct->setShortcut(tr("Ctrl+B")); boldAct->setStatusTip(tr("Make the text bold")); connect(boldAct, SIGNAL(triggered()), this, SLOT(bold())); QFont boldFont = boldAct->font(); boldFont.setBold(true); boldAct->setFont(boldFont); italicAct = new QAction(tr("&Italic"), this); italicAct->setCheckable(true); italicAct->setShortcut(tr("Ctrl+I")); italicAct->setStatusTip(tr("Make the text italic")); connect(italicAct, SIGNAL(triggered()), this, SLOT(italic())); QFont italicFont = italicAct->font(); italicFont.setItalic(true); italicAct->setFont(italicFont); setLineSpacingAct = new QAction(tr("Set &Line Spacing..."), this); setLineSpacingAct->setStatusTip(tr("Change the gap between the lines of a " "paragraph")); connect(setLineSpacingAct, SIGNAL(triggered()), this, SLOT(setLineSpacing())); setParagraphSpacingAct = new QAction(tr("Set &Paragraph Spacing..."), this); setLineSpacingAct->setStatusTip(tr("Change the gap between paragraphs")); connect(setParagraphSpacingAct, SIGNAL(triggered()), this, SLOT(setParagraphSpacing())); aboutAct = new QAction(tr("&About"), this); aboutAct->setStatusTip(tr("Show the application's About box")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); aboutQtAct = new QAction(tr("About &Qt"), this); aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); connect(aboutQtAct, SIGNAL(triggered()), this, SLOT(aboutQt())); leftAlignAct = new QAction(tr("&Left Align"), this); leftAlignAct->setCheckable(true); leftAlignAct->setShortcut(tr("Ctrl+L")); leftAlignAct->setStatusTip(tr("Left align the selected text")); connect(leftAlignAct, SIGNAL(triggered()), this, SLOT(leftAlign())); rightAlignAct = new QAction(tr("&Right Align"), this); rightAlignAct->setCheckable(true); rightAlignAct->setShortcut(tr("Ctrl+R")); rightAlignAct->setStatusTip(tr("Right align the selected text")); connect(rightAlignAct, SIGNAL(triggered()), this, SLOT(rightAlign())); justifyAct = new QAction(tr("&Justify"), this); justifyAct->setCheckable(true); justifyAct->setShortcut(tr("Ctrl+J")); justifyAct->setStatusTip(tr("Justify the selected text")); connect(justifyAct, SIGNAL(triggered()), this, SLOT(justify())); centerAct = new QAction(tr("&Center"), this); centerAct->setCheckable(true); centerAct->setShortcut(tr("Ctrl+E")); centerAct->setStatusTip(tr("Center the selected text")); connect(centerAct, SIGNAL(triggered()), this, SLOT(center())); alignmentGroup = new QActionGroup(this); alignmentGroup->addAction(leftAlignAct); alignmentGroup->addAction(rightAlignAct); alignmentGroup->addAction(justifyAct); alignmentGroup->addAction(centerAct); leftAlignAct->setChecked(true); } void MainWindow::createMenus() { fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newAct); fileMenu->addAction(openAct); fileMenu->addAction(saveAct); fileMenu->addAction(printAct); fileMenu->addSeparator(); fileMenu->addAction(exitAct); editMenu = menuBar()->addMenu(tr("&Edit")); editMenu->addAction(undoAct); editMenu->addAction(redoAct); editMenu->addSeparator(); editMenu->addAction(cutAct); editMenu->addAction(copyAct); editMenu->addAction(pasteAct); editMenu->addSeparator(); helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addAction(aboutAct); helpMenu->addAction(aboutQtAct); formatMenu = editMenu->addMenu(tr("&Format")); formatMenu->addAction(boldAct); formatMenu->addAction(italicAct); formatMenu->addSeparator()->setText(tr("Alignment")); formatMenu->addAction(leftAlignAct); formatMenu->addAction(rightAlignAct); formatMenu->addAction(justifyAct); formatMenu->addAction(centerAct); formatMenu->addSeparator(); formatMenu->addAction(setLineSpacingAct); formatMenu->addAction(setParagraphSpacingAct); }
Copyright © 2007 Trolltech | Trademarks | Qt 4.3.2
|