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

📄 mainwindow.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2007-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.**** 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"#include "treemodel.h"MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent){    setupUi(this);    QStringList headers;    headers << tr("Title") << tr("Description");    QFile file(":/default.txt");    file.open(QIODevice::ReadOnly);    TreeModel *model = new TreeModel(headers, file.readAll());    file.close();    view->setModel(model);    for (int column = 0; column < model->columnCount(); ++column)        view->resizeColumnToContents(column);    connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));    connect(view->selectionModel(),            SIGNAL(selectionChanged(const QItemSelection &,                                    const QItemSelection &)),            this, SLOT(updateActions()));    connect(actionsMenu, SIGNAL(aboutToShow()), this, SLOT(updateActions()));    connect(insertRowAction, SIGNAL(triggered()), this, SLOT(insertRow()));    connect(insertColumnAction, SIGNAL(triggered()), this, SLOT(insertColumn()));    connect(removeRowAction, SIGNAL(triggered()), this, SLOT(removeRow()));    connect(removeColumnAction, SIGNAL(triggered()), this, SLOT(removeColumn()));    connect(insertChildAction, SIGNAL(triggered()), this, SLOT(insertChild()));    updateActions();}void MainWindow::insertChild(){    QModelIndex index = view->selectionModel()->currentIndex();    QAbstractItemModel *model = view->model();    if (model->columnCount(index) == 0) {        if (!model->insertColumn(0, index))            return;    }    if (!model->insertRow(0, index))        return;    for (int column = 0; column < model->columnCount(index); ++column) {        QModelIndex child = model->index(0, column, index);        model->setData(child, QVariant("[No data]"), Qt::EditRole);        if (!model->headerData(column, Qt::Horizontal).isValid())            model->setHeaderData(column, Qt::Horizontal, QVariant("[No header]"),                                 Qt::EditRole);    }    view->selectionModel()->setCurrentIndex(model->index(0, 0, index),                                            QItemSelectionModel::ClearAndSelect);    updateActions();}bool MainWindow::insertColumn(const QModelIndex &parent){    QAbstractItemModel *model = view->model();    int column = view->selectionModel()->currentIndex().column();    // Insert a column in the parent item.    bool changed = model->insertColumn(column + 1, parent);    if (changed)        model->setHeaderData(column + 1, Qt::Horizontal, QVariant("[No header]"),                             Qt::EditRole);    updateActions();    return changed;}void MainWindow::insertRow(){    QModelIndex index = view->selectionModel()->currentIndex();    QAbstractItemModel *model = view->model();    if (!model->insertRow(index.row()+1, index.parent()))        return;    updateActions();    for (int column = 0; column < model->columnCount(index.parent()); ++column) {        QModelIndex child = model->index(index.row()+1, column, index.parent());        model->setData(child, QVariant("[No data]"), Qt::EditRole);    }}bool MainWindow::removeColumn(const QModelIndex &parent){    QAbstractItemModel *model = view->model();    int column = view->selectionModel()->currentIndex().column();    // Insert columns in each child of the parent item.    bool changed = model->removeColumn(column, parent);    if (!parent.isValid() && changed)        updateActions();    return changed;}void MainWindow::removeRow(){    QModelIndex index = view->selectionModel()->currentIndex();    QAbstractItemModel *model = view->model();    if (model->removeRow(index.row(), index.parent()))        updateActions();}void MainWindow::updateActions(){    bool hasSelection = !view->selectionModel()->selection().isEmpty();    removeRowAction->setEnabled(hasSelection);    removeColumnAction->setEnabled(hasSelection);    bool hasCurrent = view->selectionModel()->currentIndex().isValid();    insertRowAction->setEnabled(hasCurrent);    insertColumnAction->setEnabled(hasCurrent);    if (hasCurrent) {        view->closePersistentEditor(view->selectionModel()->currentIndex());        int row = view->selectionModel()->currentIndex().row();        int column = view->selectionModel()->currentIndex().column();        if (view->selectionModel()->currentIndex().parent().isValid())            statusBar()->showMessage(tr("Position: (%1,%2)").arg(row).arg(column));        else            statusBar()->showMessage(tr("Position: (%1,%2) in top level").arg(row).arg(column));    }}

⌨️ 快捷键说明

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