#ifndef SORTVIEW_H
#define SORTVIEW_H
#include <QtGui>
class SortView :
public QWidget
{
Q_OBJECT
public:
SortView();
private:
QListView *view;
QStringListModel *model;
QSortFilterProxyModel *modelProxy;
QComboBox *syntaxBox;
private slots:
void filterChanged(QString text);
};
#endif
// SORTVIEW_H
#include
"sortview.h"
SortView::SortView()
{
model =
new QStringListModel(QColor::colorNames(),
this);
modelProxy =
new QSortFilterProxyModel(
this);
modelProxy->setSourceModel(model);
modelProxy->setFilterKeyColumn(0);
view =
new QListView(
this);
view->setModel(modelProxy);
QLineEdit *filterInput =
new QLineEdit;
QLabel *filterLabel =
new QLabel(tr(
"Filter"));
QHBoxLayout *filterLayout =
new QHBoxLayout;
filterLayout->addWidget(filterLabel);
filterLayout->addWidget(filterInput);
syntaxBox =
new QComboBox;
syntaxBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
syntaxBox->addItem(tr(
"Regular expression"), QRegExp::RegExp);
syntaxBox->addItem(tr(
"Wildcard"), QRegExp::Wildcard);
syntaxBox->addItem(tr(
"Fixed string"), QRegExp::FixedString);
QLabel *syntaxLabel =
new QLabel(tr(
"Syntax"));
QHBoxLayout *syntaxLayout =
new QHBoxLayout;
syntaxLayout->addWidget(syntaxLabel);
syntaxLayout->addWidget(syntaxBox);
QVBoxLayout *layout =
new QVBoxLayout(
this);
layout->addWidget(view);
layout->addLayout(filterLayout);
layout->addLayout(syntaxLayout);
connect(filterInput, SIGNAL(textChanged(QString)),
this, SLOT(filterChanged(QString)));
}
void SortView::filterChanged(QString text)
{
QRegExp::PatternSyntax syntax = QRegExp::PatternSyntax(
syntaxBox->itemData(syntaxBox->currentIndex()).toInt());
QRegExp regExp(text, Qt::CaseInsensitive, syntax);
modelProxy->setFilterRegExp(regExp);
}
syntaxBox->addItem(tr(
"Regular expression"), QRegExp::RegExp);
syntaxBox->addItem(tr(
"Wildcard"), QRegExp::Wildcard);
syntaxBox->addItem(tr(
"Fixed string"), QRegExp::FixedString);
void SortView::filterChanged(QString text)
{
QRegExp::PatternSyntax syntax = QRegExp::PatternSyntax(
syntaxBox->itemData(syntaxBox->currentIndex()).toInt());
QRegExp regExp(text, Qt::CaseInsensitive, syntax);
modelProxy->setFilterRegExp(regExp);
}
本文出自 “豆子空间” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/266500
493



被折叠的 条评论
为什么被折叠?



