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

📄 mainwindow.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2004-2006 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://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** 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 "pieview.h"#include "mainwindow.h"MainWindow::MainWindow(){    QMenu *fileMenu = new QMenu(tr("&File"), this);    QAction *openAction = fileMenu->addAction(tr("&Open..."));    openAction->setShortcut(QKeySequence(tr("Ctrl+O")));    QAction *saveAction = fileMenu->addAction(tr("&Save As..."));    saveAction->setShortcut(QKeySequence(tr("Ctrl+S")));    QAction *quitAction = fileMenu->addAction(tr("E&xit"));    quitAction->setShortcut(QKeySequence(tr("Ctrl+Q")));    setupModel();    setupViews();    connect(openAction, SIGNAL(triggered()), this, SLOT(openFile()));    connect(saveAction, SIGNAL(triggered()), this, SLOT(saveFile()));    connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));    menuBar()->addMenu(fileMenu);    statusBar();    openFile(":/Charts/qtdata.cht");    setWindowTitle(tr("Chart"));    resize(640, 480);}void MainWindow::setupModel(){    model = new QStandardItemModel(8, 2, this);    model->setHeaderData(0, Qt::Horizontal, tr("Label"));    model->setHeaderData(1, Qt::Horizontal, tr("Quantity"));}void MainWindow::setupViews(){    QSplitter *splitter = new QSplitter;    QTableView *table = new QTableView;    pieChart = new PieView;    splitter->addWidget(table);    splitter->addWidget(pieChart);    splitter->setStretchFactor(0, 0);    splitter->setStretchFactor(1, 1);    table->setModel(model);    pieChart->setModel(model);    QItemSelectionModel *selectionModel = new QItemSelectionModel(model);    table->setSelectionModel(selectionModel);    pieChart->setSelectionModel(selectionModel);    setCentralWidget(splitter);}void MainWindow::openFile(const QString &path){    QString fileName;    if (path.isNull())        fileName = QFileDialog::getOpenFileName(this, tr("Choose a data file"),                                                "", "*.cht");    else        fileName = path;    if (!fileName.isEmpty()) {        QFile file(fileName);        if (file.open(QFile::ReadOnly | QFile::Text)) {            QTextStream stream(&file);            QString line;            model->removeRows(0, model->rowCount(QModelIndex()), QModelIndex());            int row = 0;            do {                line = stream.readLine();                if (!line.isEmpty()) {                    model->insertRows(row, 1, QModelIndex());                    QStringList pieces = line.split(",", QString::SkipEmptyParts);                    model->setData(model->index(row, 0, QModelIndex()),                                   pieces.value(0));                    model->setData(model->index(row, 1, QModelIndex()),                                   pieces.value(1));                    model->setData(model->index(row, 0, QModelIndex()),                                   QColor(pieces.value(2)), Qt::DecorationRole);                    row++;                }            } while (!line.isEmpty());            file.close();            statusBar()->showMessage(tr("Loaded %1").arg(fileName), 2000);        }    }}void MainWindow::saveFile(){    QString fileName = QFileDialog::getSaveFileName(this,        tr("Save file as"), "", "*.cht");    if (!fileName.isEmpty()) {        QFile file(fileName);        QTextStream stream(&file);        if (file.open(QFile::WriteOnly | QFile::Text)) {            for (int row = 0; row < model->rowCount(QModelIndex()); ++row) {                QStringList pieces;                pieces.append(model->data(model->index(row, 0, QModelIndex()),                                          Qt::DisplayRole).toString());                pieces.append(model->data(model->index(row, 1, QModelIndex()),                                          Qt::DisplayRole).toString());                pieces.append(model->data(model->index(row, 0, QModelIndex()),                                          Qt::DecorationRole).toString());                stream << pieces.join(",") << "\n";            }        }        file.close();        statusBar()->showMessage(tr("Saved %1").arg(fileName), 2000);    }}

⌨️ 快捷键说明

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