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

📄 mainwindow.cpp

📁 Qt4的一些例子
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    goToCellAction = new QAction(tr("&Go to Cell..."), this);    goToCellAction->setIcon(QIcon(":/images/gotocell.png"));    goToCellAction->setShortcut(tr("F5"));    goToCellAction->setStatusTip(tr("Go to the specified cell"));    connect(goToCellAction, SIGNAL(triggered()),            this, SLOT(goToCell()));    recalculateAction = new QAction(tr("&Recalculate"), this);    recalculateAction->setShortcut(tr("F9"));    recalculateAction->setStatusTip(tr("Recalculate all the "                                       "spreadsheet's formulas"));    connect(recalculateAction, SIGNAL(triggered()),            spreadsheet, SLOT(recalculate()));    sortAction = new QAction(tr("&Sort..."), this);    sortAction->setStatusTip(tr("Sort the selected cells or all the "                                "cells"));    connect(sortAction, SIGNAL(triggered()), this, SLOT(sort()));    showGridAction = new QAction(tr("&Show Grid"), this);    showGridAction->setCheckable(true);    showGridAction->setChecked(spreadsheet->showGrid());    showGridAction->setStatusTip(tr("Show or hide the spreadsheet's "                                    "grid"));    connect(showGridAction, SIGNAL(toggled(bool)),            spreadsheet, SLOT(setShowGrid(bool)));#if QT_VERSION < 0x040102    // workaround for a QTableWidget bug in Qt 4.1.1    connect(showGridAction, SIGNAL(toggled(bool)),            spreadsheet->viewport(), SLOT(update()));#endif    autoRecalcAction = new QAction(tr("&Auto-Recalculate"), this);    autoRecalcAction->setCheckable(true);    autoRecalcAction->setChecked(spreadsheet->autoRecalculate());    autoRecalcAction->setStatusTip(tr("Switch auto-recalculation on or "                                      "off"));    connect(autoRecalcAction, SIGNAL(toggled(bool)),            spreadsheet, SLOT(setAutoRecalculate(bool)));    aboutAction = new QAction(tr("&About"), this);    aboutAction->setStatusTip(tr("Show the application's About box"));    connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));    aboutQtAction = new QAction(tr("About &Qt"), this);    aboutQtAction->setStatusTip(tr("Show the Qt library's About box"));    connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));}void MainWindow::createMenus(){    fileMenu = menuBar()->addMenu(tr("&File"));    fileMenu->addAction(newAction);    fileMenu->addAction(openAction);    fileMenu->addAction(saveAction);    fileMenu->addAction(saveAsAction);    separatorAction = fileMenu->addSeparator();    for (int i = 0; i < MaxRecentFiles; ++i)        fileMenu->addAction(recentFileActions[i]);    fileMenu->addSeparator();    fileMenu->addAction(exitAction);    editMenu = menuBar()->addMenu(tr("&Edit"));    editMenu->addAction(cutAction);    editMenu->addAction(copyAction);    editMenu->addAction(pasteAction);    editMenu->addAction(deleteAction);    selectSubMenu = editMenu->addMenu(tr("&Select"));    selectSubMenu->addAction(selectRowAction);    selectSubMenu->addAction(selectColumnAction);    selectSubMenu->addAction(selectAllAction);    editMenu->addSeparator();    editMenu->addAction(findAction);    editMenu->addAction(goToCellAction);    toolsMenu = menuBar()->addMenu(tr("&Tools"));    toolsMenu->addAction(recalculateAction);    toolsMenu->addAction(sortAction);    optionsMenu = menuBar()->addMenu(tr("&Options"));    optionsMenu->addAction(showGridAction);    optionsMenu->addAction(autoRecalcAction);    menuBar()->addSeparator();    helpMenu = menuBar()->addMenu(tr("&Help"));    helpMenu->addAction(aboutAction);    helpMenu->addAction(aboutQtAction);}void MainWindow::createContextMenu(){    spreadsheet->addAction(cutAction);    spreadsheet->addAction(copyAction);    spreadsheet->addAction(pasteAction);    spreadsheet->setContextMenuPolicy(Qt::ActionsContextMenu);}void MainWindow::createToolBars(){    fileToolBar = addToolBar(tr("&File"));    fileToolBar->addAction(newAction);    fileToolBar->addAction(openAction);    fileToolBar->addAction(saveAction);    editToolBar = addToolBar(tr("&Edit"));    editToolBar->addAction(cutAction);    editToolBar->addAction(copyAction);    editToolBar->addAction(pasteAction);    editToolBar->addSeparator();    editToolBar->addAction(findAction);    editToolBar->addAction(goToCellAction);}void MainWindow::createStatusBar(){    locationLabel = new QLabel(" W999 ");    locationLabel->setAlignment(Qt::AlignHCenter);    locationLabel->setMinimumSize(locationLabel->sizeHint());    formulaLabel = new QLabel;    formulaLabel->setIndent(3);    statusBar()->addWidget(locationLabel);    statusBar()->addWidget(formulaLabel, 1);    connect(spreadsheet, SIGNAL(currentCellChanged(int, int, int, int)),            this, SLOT(updateStatusBar()));    connect(spreadsheet, SIGNAL(modified()),            this, SLOT(spreadsheetModified()));    updateStatusBar();}void MainWindow::readSettings(){    QSettings settings("Software Inc.", "Spreadsheet");    QRect rect = settings.value("geometry",                                QRect(200, 200, 400, 400)).toRect();    move(rect.topLeft());    resize(rect.size());    recentFiles = settings.value("recentFiles").toStringList();    updateRecentFileActions();    bool showGrid = settings.value("showGrid", true).toBool();    showGridAction->setChecked(showGrid);    bool autoRecalc = settings.value("autoRecalc", true).toBool();    autoRecalcAction->setChecked(autoRecalc);}void MainWindow::writeSettings(){    QSettings settings("Software Inc.", "Spreadsheet");    settings.setValue("geometry", geometry());    settings.setValue("recentFiles", recentFiles);    settings.setValue("showGrid", showGridAction->isChecked());    settings.setValue("autoRecalc", autoRecalcAction->isChecked());}bool MainWindow::okToContinue(){    if (isWindowModified()) {        int r = QMessageBox::warning(this, tr("Spreadsheet"),                        tr("The document has been modified.\n"                           "Do you want to save your changes?"),                        QMessageBox::Yes | QMessageBox::Default,                        QMessageBox::No,                        QMessageBox::Cancel | QMessageBox::Escape);        if (r == QMessageBox::Yes) {            return save();        } else if (r == QMessageBox::Cancel) {            return false;        }    }    return true;}bool MainWindow::loadFile(const QString &fileName){    if (!spreadsheet->readFile(fileName)) {        statusBar()->showMessage(tr("Loading canceled"), 2000);        return false;    }    setCurrentFile(fileName);    statusBar()->showMessage(tr("File loaded"), 2000);    return true;}bool MainWindow::saveFile(const QString &fileName){    if (!spreadsheet->writeFile(fileName)) {        statusBar()->showMessage(tr("Saving canceled"), 2000);        return false;    }    setCurrentFile(fileName);    statusBar()->showMessage(tr("File saved"), 2000);    return true;}void MainWindow::setCurrentFile(const QString &fileName){    curFile = fileName;    setWindowModified(false);    QString shownName = "Untitled";    if (!curFile.isEmpty()) {        shownName = strippedName(curFile);        recentFiles.removeAll(curFile);        recentFiles.prepend(curFile);        updateRecentFileActions();    }    setWindowTitle(tr("%1[*] - %2").arg(shownName)                                   .arg(tr("Spreadsheet")));}void MainWindow::updateRecentFileActions(){    QMutableStringListIterator i(recentFiles);    while (i.hasNext()) {        if (!QFile::exists(i.next()))            i.remove();    }    for (int j = 0; j < MaxRecentFiles; ++j) {        if (j < recentFiles.count()) {            QString text = tr("&%1 %2")                           .arg(j + 1)                           .arg(strippedName(recentFiles[j]));            recentFileActions[j]->setText(text);            recentFileActions[j]->setData(recentFiles[j]);            recentFileActions[j]->setVisible(true);        } else {            recentFileActions[j]->setVisible(false);        }    }    separatorAction->setVisible(!recentFiles.isEmpty());}QString MainWindow::strippedName(const QString &fullFileName){    return QFileInfo(fullFileName).fileName();}

⌨️ 快捷键说明

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