C++ (Qt)#include <QtGui> int main(int argc, char** argv){ QApplication app(argc, argv); QWidget wgt; QStringListModel model; model.setStringList(QStringList() << "Aurora" << "Permanent" << "Shock" << "Behind the wall" << "Material" << "Anesthesia"); QSortFilterProxyModel proxyModel; proxyModel.setSourceModel(&model); QListView* pListView1 = new QListView; pListView1->setModel(&model); QListView* pListView2 = new QListView; pListView2->setModel(&proxyModel); QLabel* lbl = new QLabel("&Text:"); QLineEdit* txt = new QLineEdit; lbl->setBuddy(txt); QObject::connect(txt, SIGNAL(textChanged(QString)), &proxyModel, SLOT(setFilterWildcard(QString))); //Layout Setup QGridLayout* pgrdLayout = new QGridLayout; pgrdLayout->addWidget(pListView1, 0, 0); pgrdLayout->addWidget(pListView2, 0, 1); pgrdLayout->addWidget(lbl, 1, 0); pgrdLayout->addWidget(txt, 2, 0, 1, 2); wgt.setLayout(pgrdLayout); wgt.show(); return app.exec();}
C++ (Qt)#ifndef MAINWINDOW_H#define MAINWINDOW_H #include <QtGui> class MainWindow : pulic QWidget{ Q_OBJECTpublic: // конструктор класса MainWindow(QWidget *parent = 0); // деструктор класса ~MainWindow(); public slots: // слот void mySlot(/*тут аргументы, как у сигнала, с которым будешь соединять*/);};#endif //MAINWINDOW_H
C++ (Qt)#include "myclass.h"// конструктор классаMainWindow::MainWindow(QWidget *parent = 0):QWidget(parent){//Сюда перетаскиваешь большую часть кода из функции main // соединяешь сигнал (для примера - someSignal(int value)) нужного объекта (для примера - object) со своим слотом: connect(object, SIGNAL(someSignal(int)), this, SLOT(mySlot())); // обрати внимание в функции connect для сигналов и слотов не пишут имена аргументов, а только их тип}// деструктор классаMainWindow::~MainWindow(){//тут может быть пусто}// слотvoid MainWindow::mySlot(){//тут код того, что должен делать этот слот}
BashSOURSES += myclass.cppHEADERS += myclass.h
C++ (Qt)#ifndef MYREGEXP_H#define MYREGEXP_H#include <QtGui> class MyRegExp : public QWidget{public: MyRegExp(QWidget *parent = 0); ~MyRegExp(); public slots: void chkRegExp(QString);}; #endif // MYREGEXP_H
C++ (Qt)#include <QtGui>#include "myregexp.h" MyRegExp::MyRegExp(QWidget *parent){ QStringListModel model; model.setStringList(QStringList() << "Aurora" << "Permanent" << "Shock" << "Behind the wall" << "Material" << "Anesthesia"); QSortFilterProxyModel proxyModel; proxyModel.setSourceModel(&model); QListView* pListView1 = new QListView; pListView1->setModel(&model); QListView* pListView2 = new QListView; pListView2->setModel(&proxyModel); QLabel* lbl = new QLabel("&Text:"); QLineEdit* txt = new QLineEdit; lbl->setBuddy(txt); connect(txt, SIGNAL(textChanged(QString)), this, SLOT(chkRegExp(QString)));} MyRegExp::~MyRegExp(){ } void MyRegExp::chkRegExp(QString){}
connect(txt, SIGNAL(textChanged(QString)), this, SLOT(chkRegExp(QString)))
chkRegExp(const QString &text/* <- это и будет текст который ты ввел */)
C++ (Qt)void MyRegExp::chkRegExp(QString value){ QString var = value;}
C++ (Qt)void MyRegExp::chkRegExp(QString value){ QObject *o = sender(); QLineEdit *le = qobject_cast<QLineEdit *>(o); // Если указатель не нулевой, то приведение типа удалось // это означает, что отправитель - объект типа QLineEdit if(le){ // обработка для поля ввода QString var = value; }else{ // обработка для остальных отправителей }}
C++ (Qt)void MyRegExp::chkRegExp(QString text){ QRegExp rx("^" + text + "*");}
C++ (Qt)MyRegExp reg;reg.show();
C++ (Qt)MyRegExp::MyRegExp(QWidget *parent):QWidget(parent){ QWidget wgt; QStringListModel model; model.setStringList(QStringList() << "Aurora" << "Permanent" << "Shock" << "Behind the wall" << "Material" << "Anesthesia"); QSortFilterProxyModel proxyModel; proxyModel.setSourceModel(&model); QListView* pListView1 = new QListView; pListView1->setModel(&model); QListView* pListView2 = new QListView; pListView2->setModel(&proxyModel); QLabel* lbl = new QLabel("&Text:"); QLineEdit* txt = new QLineEdit; lbl->setBuddy(txt); //chkRegExp SLOT connect(txt, SIGNAL(textChanged(QString)), this, SLOT(chkRegExp(QString))); //Layout setup QGridLayout* pgrdLayout = new QGridLayout; pgrdLayout->addWidget(pListView1, 0, 0); pgrdLayout->addWidget(pListView2, 0, 1); pgrdLayout->addWidget(lbl, 1, 0); pgrdLayout->addWidget(txt, 2, 0, 1, 2); wgt.setLayout(pgrdLayout);}
C++ (Qt)QStringListModel* model = new QStringListModel;QSortFilterProxyModel* proxyModel = new QSortFilterProxyModel;