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

📄 window.cpp

📁 QT 开发环境里面一个很重要的文件
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2006-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 "mysortfilterproxymodel.h"#include "window.h"Window::Window(){    proxyModel = new MySortFilterProxyModel(this);    proxyModel->setDynamicSortFilter(true);    sourceGroupBox = new QGroupBox(tr("Original Model"));    proxyGroupBox = new QGroupBox(tr("Sorted/Filtered Model"));    sourceView = new QTreeView;    sourceView->setRootIsDecorated(false);    sourceView->setAlternatingRowColors(true);    proxyView = new QTreeView;    proxyView->setRootIsDecorated(false);    proxyView->setAlternatingRowColors(true);    proxyView->setModel(proxyModel);    proxyView->setSortingEnabled(true);    filterCaseSensitivityCheckBox = new QCheckBox(tr("Case sensitive filter"));    filterPatternLineEdit = new QLineEdit;    filterPatternLabel = new QLabel(tr("&Filter pattern:"));    filterPatternLabel->setBuddy(filterPatternLineEdit);    filterSyntaxComboBox = new QComboBox;    filterSyntaxComboBox->addItem(tr("Regular expression"), QRegExp::RegExp);    filterSyntaxComboBox->addItem(tr("Wildcard"), QRegExp::Wildcard);    filterSyntaxComboBox->addItem(tr("Fixed string"), QRegExp::FixedString);    fromDateEdit = new QDateEdit;    fromLabel = new QLabel(tr("F&rom:"));    fromLabel->setBuddy(fromDateEdit);    toDateEdit = new QDateEdit;    toLabel = new QLabel(tr("&To:"));    toLabel->setBuddy(toDateEdit);    connect(filterPatternLineEdit, SIGNAL(textChanged(const QString &)),            this, SLOT(textFilterChanged()));    connect(filterSyntaxComboBox, SIGNAL(currentIndexChanged(int)),            this, SLOT(textFilterChanged()));    connect(filterCaseSensitivityCheckBox, SIGNAL(toggled(bool)),            this, SLOT(textFilterChanged()));    connect(fromDateEdit, SIGNAL(dateChanged(const QDate &)),            this, SLOT(dateFilterChanged()));    connect(toDateEdit, SIGNAL(dateChanged(const QDate &)),            this, SLOT(dateFilterChanged()));    QHBoxLayout *sourceLayout = new QHBoxLayout;    sourceLayout->addWidget(sourceView);    sourceGroupBox->setLayout(sourceLayout);    QGridLayout *proxyLayout = new QGridLayout;    proxyLayout->addWidget(proxyView, 0, 0, 1, 3);    proxyLayout->addWidget(filterPatternLabel, 1, 0);    proxyLayout->addWidget(filterPatternLineEdit, 1, 1);    proxyLayout->addWidget(filterSyntaxComboBox, 1, 2);    proxyLayout->addWidget(filterCaseSensitivityCheckBox, 2, 0, 1, 3);    proxyLayout->addWidget(fromLabel, 3, 0);    proxyLayout->addWidget(fromDateEdit, 3, 1, 1, 2);    proxyLayout->addWidget(toLabel, 4, 0);    proxyLayout->addWidget(toDateEdit, 4, 1, 1, 2);    proxyGroupBox->setLayout(proxyLayout);    QVBoxLayout *mainLayout = new QVBoxLayout;    mainLayout->addWidget(sourceGroupBox);    mainLayout->addWidget(proxyGroupBox);    setLayout(mainLayout);    setWindowTitle(tr("Custom Sort/Filter Model"));    resize(500, 450);    proxyView->sortByColumn(1, Qt::AscendingOrder);    filterPatternLineEdit->setText("Grace|Sports");    filterCaseSensitivityCheckBox->setChecked(true);    fromDateEdit->setDate(QDate(1970, 01, 01));    toDateEdit->setDate(QDate(2099, 12, 31));}void Window::setSourceModel(QAbstractItemModel *model){    proxyModel->setSourceModel(model);    sourceView->setModel(model);}void Window::textFilterChanged(){    QRegExp::PatternSyntax syntax =            QRegExp::PatternSyntax(filterSyntaxComboBox->itemData(                    filterSyntaxComboBox->currentIndex()).toInt());    Qt::CaseSensitivity caseSensitivity =            filterCaseSensitivityCheckBox->isChecked() ? Qt::CaseSensitive                                                       : Qt::CaseInsensitive;    QRegExp regExp(filterPatternLineEdit->text(), caseSensitivity, syntax);    proxyModel->setFilterRegExp(regExp);}void Window::dateFilterChanged(){    proxyModel->setFilterMinimumDate(fromDateEdit->date());    proxyModel->setFilterMaximumDate(toDateEdit->date());}

⌨️ 快捷键说明

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