From afe8df7ab97968356ac6206883f8725d58ad71ce Mon Sep 17 00:00:00 2001 From: tianduanrui <2407223896@qq.com> Date: Mon, 20 Nov 2017 20:08:21 +0800 Subject: [PATCH] update vegetables price --- QQt.pro | 4 +- examples/VegeTablesPrice/mainwindow.cpp | 130 ++++++++++-- examples/VegeTablesPrice/mainwindow.h | 14 +- examples/VegeTablesPrice/mainwindow.ui | 14 +- src/network/qqtwebworkclient.cpp | 9 +- src/network/qqtwebworkclient.h | 31 +-- src/widgets/qqtmptablewidget.cpp | 254 ++++++++++++------------ src/widgets/qqtmptablewidget.h | 44 ++-- src/widgets/qqtmptablewidget.ui | 4 +- 9 files changed, 311 insertions(+), 193 deletions(-) diff --git a/QQt.pro b/QQt.pro index 22cc77f9..eb8a34f4 100644 --- a/QQt.pro +++ b/QQt.pro @@ -22,9 +22,9 @@ SUBDIRS = src/qqt.pro #SUBDIRS += examples/tabwidgetexamples #SUBDIRS += examples/svgtest #SUBDIRS += examples/treeviewexample +#SUBDIRS += examples/qrcodeexample # -SUBDIRS += examples/qrcodeexample -#SUBDIRS += examples/gumbo_query_test +SUBDIRS += examples/gumbo_query_test #can't support ios #SUBDIRS += examples/qqtprintsupportexample diff --git a/examples/VegeTablesPrice/mainwindow.cpp b/examples/VegeTablesPrice/mainwindow.cpp index f1721154..ca939e9b 100644 --- a/examples/VegeTablesPrice/mainwindow.cpp +++ b/examples/VegeTablesPrice/mainwindow.cpp @@ -1,13 +1,21 @@ #include "mainwindow.h" #include "ui_mainwindow.h" -#include "QDebug" +#include +#include +#include +#include +#include -MainWindow::MainWindow(QWidget* parent) : - QMainWindow(parent), - ui(new Ui::MainWindow) +MainWindow::MainWindow ( QWidget* parent ) : + QMainWindow ( parent ), + ui ( new Ui::MainWindow ) { - ui->setupUi(this); + ui->setupUi ( this ); + + m_client = new QQtWebWorkClient ( this ); + connect ( m_client, SIGNAL ( replyFinished ( QNetworkReply* ) ), + this, SLOT ( replyFinished ( QNetworkReply* ) ) ); QStringList vl; vl << "西葫芦"; @@ -35,13 +43,15 @@ MainWindow::MainWindow(QWidget* parent) : vl << "蒜薹"; vl << "豆角"; vl << "茴香"; - ui->lw->addItems(vl); + m_mapVege["西葫芦"] = "xihulu" ; + m_mapVege["土豆"] = "tudou"; + ui->lw->addItems ( m_mapVege.keys() ); - connect(ui->lw, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), - this, SLOT(currentItemChanged(QListWidgetItem*, QListWidgetItem*))); + connect ( ui->lw, SIGNAL ( currentItemChanged ( QListWidgetItem*, QListWidgetItem* ) ), + this, SLOT ( currentItemChanged ( QListWidgetItem*, QListWidgetItem* ) ) ); - ui->lw->setCurrentRow(0); + ui->lw->setCurrentRow ( 0 ); } MainWindow::~MainWindow() @@ -49,12 +59,106 @@ MainWindow::~MainWindow() delete ui; } -void MainWindow::currentItemChanged(QListWidgetItem* cur, QListWidgetItem* prev) +void MainWindow::currentItemChanged ( QListWidgetItem* cur, QListWidgetItem* prev ) { qDebug() << cur << prev; - if (!cur) + + if ( !cur ) return; - QString url = QString("http://www.baidu.com/s?wd=%1%2").arg(cur->text()).arg("价格"); - + //QString url = QString ( "http://www.baidu.com/s?wd=%1%2" ).arg ( cur->text() ).arg ( "价格" ); + QString url = QString ( "http://nong.gold600.com/cx?pz=%1&c=shandong" ).arg ( m_mapVege[cur->text()] ); + m_client->sendGetRequest ( url ); +} + +void MainWindow::replyFinished ( QNetworkReply* reply ) +{ + //pline() << reply->readAll(); + int nHttpCode = reply->attribute ( QNetworkRequest::HttpStatusCodeAttribute ).toInt(); //http返回码 + + if ( nHttpCode == 200 ) //成功 + { + pline() << "success"; + } + else + { + pline() << "fail"; + return; + } + + QByteArray resultContent = reply->readAll(); + //pline() << QString ( resultContent ); + /*用页面源文件的编码来进行解码 GB2312 or UTF-8*/ + QTextCodec* pCodec = QTextCodec::codecForName ( "GB2312" ); + QString strResult = pCodec->toUnicode ( resultContent ); + //pline() << strResult; + QTextCodec* pCodec2 = QTextCodec::codecForName ( "GB2312" ); + QByteArray strResult2 = pCodec2->fromUnicode ( strResult ); + QString txt0 = strResult2; + //pline() << txt0; + QString cc = resultContent; + //pline() << cc.toLatin1().constData(); + + GumboQueryDocument doc; + doc.parse ( strResult.toLocal8Bit().constData() ); + GumboQuerySelection s = doc.find ( "table" ); + + GumboQueryNode pNode = s.nodeAt ( 0 ); + QString txt = QString::fromStdString ( pNode.text() ); + + //pline() << txt; + QStringList tList = txt.split ( "\n", QString::SkipEmptyParts ); + + + for ( int i = 0; i < tList.count(); i++ ) + { + QString txt = tList.at ( i ); + txt = txt.trimmed(); + + if ( txt.isEmpty() ) + { + tList.removeAt ( i ); + i--; + continue; + } + + tList[i] = txt; + } + + + /* + for ( QStringList::Iterator itor = tList.begin(); + itor != tList.end(); itor++ ) + { + QString txt = ( QString ) * itor; + + if ( "" == txt.trimmed() ) + { + tList.erase ( itor ); + itor--; + continue; + } + + *itor = txt.trimmed(); + } + */ + + ui->tb->clear(); + ui->tb->setColumnCount ( 5 ); + ui->tb->horizontalHeader()->setSectionResizeMode ( QHeaderView::ResizeToContents ); + + + for ( int i = 0; i < tList.count(); ) + { + ui->tb->setRowCount ( i / 5 + 1 ); + + for ( int j = 0; j < 5; j++ ) + { + QString cc = tList.value ( i ); + qDebug() << i / 5 << j << cc; + QTableWidgetItem* item = new QTableWidgetItem ( cc ); + ui->tb->setItem ( i / 5, j, item ); + i++; + } + } } diff --git a/examples/VegeTablesPrice/mainwindow.h b/examples/VegeTablesPrice/mainwindow.h index 179f0959..d57cc7d8 100644 --- a/examples/VegeTablesPrice/mainwindow.h +++ b/examples/VegeTablesPrice/mainwindow.h @@ -4,8 +4,10 @@ #include #include -namespace Ui -{ +#include "qqtcore.h" +#include "qqtwebworkclient.h" + +namespace Ui { class MainWindow; } @@ -14,13 +16,15 @@ class MainWindow : public QMainWindow Q_OBJECT public: - explicit MainWindow(QWidget* parent = 0); + explicit MainWindow ( QWidget* parent = 0 ); ~MainWindow(); private slots: - void currentItemChanged(QListWidgetItem*, QListWidgetItem*); - + void currentItemChanged ( QListWidgetItem*, QListWidgetItem* ); + void replyFinished ( QNetworkReply* reply ); private: Ui::MainWindow* ui; + QQtWebWorkClient* m_client; + QMap m_mapVege; }; #endif // MAINWINDOW_H diff --git a/examples/VegeTablesPrice/mainwindow.ui b/examples/VegeTablesPrice/mainwindow.ui index 31e6c14d..1442b023 100644 --- a/examples/VegeTablesPrice/mainwindow.ui +++ b/examples/VegeTablesPrice/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 889 - 444 + 647 + 330 @@ -32,7 +32,13 @@ - + + + + fff + + + @@ -41,7 +47,7 @@ 0 0 - 889 + 647 22 diff --git a/src/network/qqtwebworkclient.cpp b/src/network/qqtwebworkclient.cpp index e36a300a..1fb428a8 100644 --- a/src/network/qqtwebworkclient.cpp +++ b/src/network/qqtwebworkclient.cpp @@ -28,7 +28,7 @@ QQtWebWorkClient::QQtWebWorkClient ( QObject* parent ) : QNetworkAccessManager ( this, SLOT ( networkSessionConnected() ) ); } -void QQtWebWorkClient::getRequest ( QString& strUrl ) +void QQtWebWorkClient::sendGetRequest ( QString& strUrl ) { QQtWebWorkSession* s0 = new QQtWebWorkSession ( this ); @@ -52,6 +52,7 @@ void QQtWebWorkClient::getRequest ( QString& strUrl ) } s0->m_pNetworkReply = get ( netRequest ); //发起get请求 + m_listWebWorkSession.push_back ( s0 ); /*下面关联信号和槽*/ /*下载完成后开始一阵一阵堆取数据*/ @@ -71,7 +72,7 @@ void QQtWebWorkClient::getRequest ( QString& strUrl ) s0->m_pTimer->start ( ); } -void QQtWebWorkClient::postRequest ( QString& strUrl ) +void QQtWebWorkClient::sendPostRequest ( QString& strUrl ) { //post // QString strBody; //http body部分,可封装参数信息 @@ -101,9 +102,11 @@ void QQtWebWorkClient::finished ( QNetworkReply* reply ) if ( !s0 ) return; + pline() << s0->m_pNetworkReply << s0->m_pTimer; + + s0->m_pTimer->stop(); s0->m_pNetworkReply->deleteLater(); m_listWebWorkSession.removeOne ( s0 ); - } void QQtWebWorkClient::authenticationRequired ( QNetworkReply* r, QAuthenticator* a ) diff --git a/src/network/qqtwebworkclient.h b/src/network/qqtwebworkclient.h index b3d11803..9f836112 100644 --- a/src/network/qqtwebworkclient.h +++ b/src/network/qqtwebworkclient.h @@ -17,27 +17,15 @@ * Multi New Protocol 全双工 QWebSocket * need ssl */ -class QQtWebWorkSession : QObject -{ - Q_OBJECT -public: - explicit QQtWebWorkSession ( QObject* parent ) : - QObject ( parent ) {} - virtual ~QQtWebWorkSession() {} - - QNetworkReply* m_pNetworkReply; //封装请求返回信息 - QTimer* m_pTimer; //请求超时计时器 - QString m_strUrl; //记录当前请求的url -} ; - +class QQtWebWorkSession; class QQTSHARED_EXPORT QQtWebWorkClient : public QNetworkAccessManager { Q_OBJECT public: explicit QQtWebWorkClient ( QObject* parent = 0 ); - void getRequest ( QString& strUrl ); - void postRequest ( QString& strUrl ); + void sendGetRequest ( QString& strUrl ); + void sendPostRequest ( QString& strUrl ); //void installProtocol(); //void uninstallProtocol(); @@ -70,4 +58,17 @@ private: QList m_listWebWorkSession; }; +class QQtWebWorkSession : QObject +{ + Q_OBJECT +public: + explicit QQtWebWorkSession ( QObject* parent ) : + QObject ( parent ) {} + virtual ~QQtWebWorkSession() {} + + QNetworkReply* m_pNetworkReply; //封装请求返回信息 + QTimer* m_pTimer; //请求超时计时器 + QString m_strUrl; //记录当前请求的url +} ; + #endif // QQTWEBWORKCLIENT_H diff --git a/src/widgets/qqtmptablewidget.cpp b/src/widgets/qqtmptablewidget.cpp index a3a0cf47..707af751 100644 --- a/src/widgets/qqtmptablewidget.cpp +++ b/src/widgets/qqtmptablewidget.cpp @@ -4,11 +4,11 @@ #include "qqtsql.h" #include "qqt-qt.h" -QQTMPTableWidget::QQTMPTableWidget(QWidget* parent) : - QWidget(parent), - ui(new Ui::QQTMPTableWidget) +QQtMPTableWidget::QQtMPTableWidget ( QWidget* parent ) : + QWidget ( parent ), + ui ( new Ui::QQtMPTableWidget ) { - ui->setupUi(this); + ui->setupUi ( this ); m_db = newDatabaseConn(); @@ -18,57 +18,57 @@ QQTMPTableWidget::QQTMPTableWidget(QWidget* parent) : altColor = true; resizeMode = QHeaderView::ResizeToContents; - ui->btnJump->setFixedWidth(30); - ui->btnLeft->setFixedWidth(30); - ui->btnRight->setFixedWidth(30); - ui->btnLeftHead->setFixedWidth(30); - ui->btnRightHead->setFixedWidth(30); - ui->leNum->setFixedWidth(40); - ui->btnJump->setHidden(true); - ui->leNum->setHidden(true); - ui->btnRightHead->setHidden(true); - ui->btnRight->setHidden(true); - ui->btnLeftHead->setHidden(true); - ui->btnLeft->setHidden(true); + ui->btnJump->setFixedWidth ( 30 ); + ui->btnLeft->setFixedWidth ( 30 ); + ui->btnRight->setFixedWidth ( 30 ); + ui->btnLeftHead->setFixedWidth ( 30 ); + ui->btnRightHead->setFixedWidth ( 30 ); + ui->leNum->setFixedWidth ( 40 ); + ui->btnJump->setHidden ( true ); + ui->leNum->setHidden ( true ); + ui->btnRightHead->setHidden ( true ); + ui->btnRight->setHidden ( true ); + ui->btnLeftHead->setHidden ( true ); + ui->btnLeft->setHidden ( true ); } -QQTMPTableWidget::~QQTMPTableWidget() +QQtMPTableWidget::~QQtMPTableWidget() { delete ui; } -void QQTMPTableWidget::setDB(QString db) +void QQtMPTableWidget::setDB ( QString db ) { m_name = db; - setDatabaseName(m_db, m_name); + setDatabaseName ( m_db, m_name ); } -void QQTMPTableWidget::setTable(QString table) +void QQtMPTableWidget::setTable ( QString table ) { m_table = table; } -void QQTMPTableWidget::setRelation(int column, const QSqlRelation& relation) +void QQtMPTableWidget::setRelation ( int column, const QSqlRelation& relation ) { - m_columnRelation.insert(column, relation); + m_columnRelation.insert ( column, relation ); } -void QQTMPTableWidget::query(QString filter) +void QQtMPTableWidget::query ( QString filter ) { ptime(); //3ms //high? - QQTSleep(478); + QQTSleep ( 478 ); - QSqlQuery query(m_db); - query.exec(QString("select count(*) from %1").arg(m_table)); + QSqlQuery query ( m_db ); + query.exec ( QString ( "select count(*) from %1" ).arg ( m_table ) ); int num = 0; - if (query.next()) + if ( query.next() ) { - num = query.value(0).toInt(); + num = query.value ( 0 ).toInt(); pline() << "record num:" << num; } @@ -76,7 +76,7 @@ void QQTMPTableWidget::query(QString filter) int pageNum = 0; - if (num % m_numPerPage > 0) + if ( num % m_numPerPage > 0 ) pageNum = num / m_numPerPage + 1; else pageNum = num / m_numPerPage; @@ -90,7 +90,7 @@ void QQTMPTableWidget::query(QString filter) /* * 首次做检查,每隔10张*14条 */ - if (m_pageNum > ui->stWidgetPage->count()) + if ( m_pageNum > ui->stWidgetPage->count() ) pix = m_pageNum - ui->stWidgetPage->count() + 10; #else /* @@ -101,250 +101,250 @@ void QQTMPTableWidget::query(QString filter) #endif // pix >= 1 start work - for (int i = 0; i < pix; i++) + for ( int i = 0; i < pix; i++ ) { //ptime();//89ms - QQtTableWidget* page = new QQtTableWidget(this); + QQtTableWidget* page = new QQtTableWidget ( this ); //ptime();//2ms - page->setDB(m_name); + page->setDB ( m_name ); //ptime();//8ms - page->setTable(m_table); + page->setTable ( m_table ); //ptime();//14ms //query //ptime();//3ms QAbstractItemModel* m_model = page->model(); - for (int i = 0; i < m_model->columnCount(); i++) - m_model->setHeaderData( + for ( int i = 0; i < m_model->columnCount(); i++ ) + m_model->setHeaderData ( i, Qt::Horizontal, - m_headerData.value(i, m_model->headerData(i, Qt::Horizontal).toString())); + m_headerData.value ( i, m_model->headerData ( i, Qt::Horizontal ).toString() ) ); //ptime();//1ms - page->setSelectionMode(selectionMode); - page->setAlternatingRowColors(altColor); + page->setSelectionMode ( selectionMode ); + page->setAlternatingRowColors ( altColor ); #if QT_VERSION < QT_VERSION_CHECK(5,0,0) - page->horizontalHeader()->setResizeMode(resizeMode); + page->horizontalHeader()->setResizeMode ( resizeMode ); #else - page->horizontalHeader()->setSectionResizeMode(resizeMode); + page->horizontalHeader()->setSectionResizeMode ( resizeMode ); #endif //ptime();//0ms - for (int i = 0; i < m_model->columnCount(); i++) + for ( int i = 0; i < m_model->columnCount(); i++ ) #if QT_VERSION < QT_VERSION_CHECK(5,0,0) - page->horizontalHeader()->setResizeMode(i, m_resizeMode.value(i, resizeMode)); + page->horizontalHeader()->setResizeMode ( i, m_resizeMode.value ( i, resizeMode ) ); #else - page->horizontalHeader()->setSectionResizeMode(i, m_resizeMode.value(i, resizeMode)); + page->horizontalHeader()->setSectionResizeMode ( i, m_resizeMode.value ( i, resizeMode ) ); #endif //ptime();//QHash(338ms) QMap(372ms) 400ms(QHash等几乎不耗时) - for (int i = 0; i < m_model->columnCount(); i++) - page->setColumnWidth(i, m_columnWidth.value(i)); + for ( int i = 0; i < m_model->columnCount(); i++ ) + page->setColumnWidth ( i, m_columnWidth.value ( i ) ); //ptime(); - for (int i = 0; i < m_model->columnCount(); i++) - page->setColumnHidden(i, m_columnHidden.value(i)); + for ( int i = 0; i < m_model->columnCount(); i++ ) + page->setColumnHidden ( i, m_columnHidden.value ( i ) ); //ptime();//219ms - ui->stWidgetPage->addWidget(page); + ui->stWidgetPage->addWidget ( page ); //ptime(); } - for (int i = 0; i < m_pageNum; i++) + for ( int i = 0; i < m_pageNum; i++ ) { - QQtTableWidget* page = (QQtTableWidget*)(ui->stWidgetPage->widget(i)); - page->query(QString("%1 limit %2 offset %3") - .arg(filter) - .arg(m_numPerPage) - .arg(i * m_numPerPage)); + QQtTableWidget* page = ( QQtTableWidget* ) ( ui->stWidgetPage->widget ( i ) ); + page->query ( QString ( "%1 limit %2 offset %3" ) + .arg ( filter ) + .arg ( m_numPerPage ) + .arg ( i * m_numPerPage ) ); } } -int QQTMPTableWidget::pageNum() +int QQtMPTableWidget::pageNum() { return m_pageNum; } -int QQTMPTableWidget::currentPage() +int QQtMPTableWidget::currentPage() { return ui->stWidgetPage->currentIndex() + 1; } -void QQTMPTableWidget::setCurrentPage(int index) +void QQtMPTableWidget::setCurrentPage ( int index ) { - if (index < 1 || index > m_pageNum) + if ( index < 1 || index > m_pageNum ) return; - ui->stWidgetPage->setCurrentIndex(index - 1); - ui->lbPos->setText(QString("%1/%2").arg(index).arg(m_pageNum)); + ui->stWidgetPage->setCurrentIndex ( index - 1 ); + ui->lbPos->setText ( QString ( "%1/%2" ).arg ( index ).arg ( m_pageNum ) ); } -void QQTMPTableWidget::setRecordNumPerPage(int num) +void QQtMPTableWidget::setRecordNumPerPage ( int num ) { m_numPerPage = num; } -void QQTMPTableWidget::setColumnHidden(int key, bool value) +void QQtMPTableWidget::setColumnHidden ( int key, bool value ) { - m_columnHidden.insert(key, value); + m_columnHidden.insert ( key, value ); } -void QQTMPTableWidget::setSelectionMode(QAbstractItemView::SelectionMode mode) +void QQtMPTableWidget::setSelectionMode ( QAbstractItemView::SelectionMode mode ) { selectionMode = mode; } -void QQTMPTableWidget::setResizeMode(QHeaderView::ResizeMode mode) +void QQtMPTableWidget::setResizeMode ( QHeaderView::ResizeMode mode ) { resizeMode = mode; } -void QQTMPTableWidget::setResizeMode(int column, QHeaderView::ResizeMode mode) +void QQtMPTableWidget::setResizeMode ( int column, QHeaderView::ResizeMode mode ) { - m_resizeMode.insert(column, mode); + m_resizeMode.insert ( column, mode ); } -void QQTMPTableWidget::setAlternatingRowColors(bool alt) +void QQtMPTableWidget::setAlternatingRowColors ( bool alt ) { altColor = alt; } -void QQTMPTableWidget::setHeaderData(int i, Qt::Orientation, QString data) +void QQtMPTableWidget::setHeaderData ( int i, Qt::Orientation, QString data ) { - m_headerData.insert(i, data); + m_headerData.insert ( i, data ); } -void QQTMPTableWidget::setColumnWidth(int column, int width) +void QQtMPTableWidget::setColumnWidth ( int column, int width ) { - m_columnWidth.insert(column, width); + m_columnWidth.insert ( column, width ); } -void QQTMPTableWidget::on_btnLeft_clicked() +void QQtMPTableWidget::on_btnLeft_clicked() { int index = ui->stWidgetPage->currentIndex(); - if (index > 0) + if ( index > 0 ) index--; - ui->stWidgetPage->setCurrentIndex(index); - ui->lbPos->setText(QString("%1/%2").arg(index + 1).arg(m_pageNum)); + ui->stWidgetPage->setCurrentIndex ( index ); + ui->lbPos->setText ( QString ( "%1/%2" ).arg ( index + 1 ).arg ( m_pageNum ) ); } -void QQTMPTableWidget::on_btnRight_clicked() +void QQtMPTableWidget::on_btnRight_clicked() { int index = ui->stWidgetPage->currentIndex(); - if (index < m_pageNum - 1) + if ( index < m_pageNum - 1 ) index++; - ui->stWidgetPage->setCurrentIndex(index); - ui->lbPos->setText(QString("%1/%2").arg(index + 1).arg(m_pageNum)); + ui->stWidgetPage->setCurrentIndex ( index ); + ui->lbPos->setText ( QString ( "%1/%2" ).arg ( index + 1 ).arg ( m_pageNum ) ); } -void QQTMPTableWidget::on_btnJump_clicked() +void QQtMPTableWidget::on_btnJump_clicked() { int num = ui->leNum->text().toInt(); - if (num <= m_pageNum && num > 0) + if ( num <= m_pageNum && num > 0 ) { - ui->stWidgetPage->setCurrentIndex(num - 1); - ui->lbPos->setText(QString("%1/%2").arg(num).arg(m_pageNum)); + ui->stWidgetPage->setCurrentIndex ( num - 1 ); + ui->lbPos->setText ( QString ( "%1/%2" ).arg ( num ).arg ( m_pageNum ) ); } } -void QQTMPTableWidget::on_btnLeftHead_clicked() +void QQtMPTableWidget::on_btnLeftHead_clicked() { - ui->stWidgetPage->setCurrentIndex(0); - ui->lbPos->setText(QString("%1/%2").arg(1).arg(m_pageNum)); + ui->stWidgetPage->setCurrentIndex ( 0 ); + ui->lbPos->setText ( QString ( "%1/%2" ).arg ( 1 ).arg ( m_pageNum ) ); } -void QQTMPTableWidget::on_btnRightHead_clicked() +void QQtMPTableWidget::on_btnRightHead_clicked() { int index = m_pageNum - 1; - ui->stWidgetPage->setCurrentIndex(index); - ui->lbPos->setText(QString("%1/%2").arg(index + 1).arg(m_pageNum)); + ui->stWidgetPage->setCurrentIndex ( index ); + ui->lbPos->setText ( QString ( "%1/%2" ).arg ( index + 1 ).arg ( m_pageNum ) ); } -void QQTMPTableWidget::selectedRows(int column, QVector& strl) +void QQtMPTableWidget::selectedRows ( int column, QVector& strl ) { - for (int i = 0; i < m_pageNum; i++) + for ( int i = 0; i < m_pageNum; i++ ) { - QQtTableWidget* page = (QQtTableWidget*)ui->stWidgetPage->widget(i); + QQtTableWidget* page = ( QQtTableWidget* ) ui->stWidgetPage->widget ( i ); QMap ids; - page->selectedRows(column, ids); - QMapIterator itor(ids); + page->selectedRows ( column, ids ); + QMapIterator itor ( ids ); - while (itor.hasNext()) + while ( itor.hasNext() ) { itor.next(); - strl.append(itor.value()); + strl.append ( itor.value() ); } } return; } -QQtTableWidget* QQTMPTableWidget::selectedRows(int column) +QQtTableWidget* QQtMPTableWidget::selectedRows ( int column ) { QString sectionName; - QSqlQuery query(m_db); - query.exec(QString("select * from %1 limit 0").arg(m_table)); - sectionName = query.record().fieldName(column); + QSqlQuery query ( m_db ); + query.exec ( QString ( "select * from %1 limit 0" ).arg ( m_table ) ); + sectionName = query.record().fieldName ( column ); query.finish(); pline() << sectionName; QVector lid; - selectedRows(column, lid); + selectedRows ( column, lid ); - static QQtTableWidget* page = new QQtTableWidget(this); - page->setDB(m_name); - page->setTable(m_table); + static QQtTableWidget* page = new QQtTableWidget ( this ); + page->setDB ( m_name ); + page->setTable ( m_table ); QString excp; - for (int i = 0; i < lid.count() - 1; i++) - excp += QString("%1 = '%2' or ").arg(sectionName).arg(lid[i].at(column)); + for ( int i = 0; i < lid.count() - 1; i++ ) + excp += QString ( "%1 = '%2' or " ).arg ( sectionName ).arg ( lid[i].at ( column ) ); - excp += QString("%1 = '%2'").arg(sectionName).arg(lid.last().at(column)); - page->query(excp); + excp += QString ( "%1 = '%2'" ).arg ( sectionName ).arg ( lid.last().at ( column ) ); + page->query ( excp ); QAbstractItemModel* m_model = page->model(); - for (int i = 0; i < m_model->columnCount(); i++) - m_model->setHeaderData( + for ( int i = 0; i < m_model->columnCount(); i++ ) + m_model->setHeaderData ( i, Qt::Horizontal, - m_headerData.value(i, m_model->headerData(i, Qt::Horizontal).toString())); + m_headerData.value ( i, m_model->headerData ( i, Qt::Horizontal ).toString() ) ); - page->setSelectionMode(selectionMode); - page->setAlternatingRowColors(altColor); + page->setSelectionMode ( selectionMode ); + page->setAlternatingRowColors ( altColor ); #if QT_VERSION < QT_VERSION_CHECK(5,0,0) - page->horizontalHeader()->setResizeMode(resizeMode); + page->horizontalHeader()->setResizeMode ( resizeMode ); #else - page->horizontalHeader()->setSectionResizeMode(resizeMode); + page->horizontalHeader()->setSectionResizeMode ( resizeMode ); #endif - for (int i = 0; i < m_model->columnCount(); i++) + for ( int i = 0; i < m_model->columnCount(); i++ ) { - page->setColumnHidden(i, m_columnHidden.value(i)); + page->setColumnHidden ( i, m_columnHidden.value ( i ) ); #if QT_VERSION < QT_VERSION_CHECK(5,0,0) - page->horizontalHeader()->setResizeMode(i, m_resizeMode.value(i, resizeMode)); + page->horizontalHeader()->setResizeMode ( i, m_resizeMode.value ( i, resizeMode ) ); #else - page->horizontalHeader()->setSectionResizeMode(i, m_resizeMode.value(i, resizeMode)); + page->horizontalHeader()->setSectionResizeMode ( i, m_resizeMode.value ( i, resizeMode ) ); #endif - page->setColumnWidth(i, m_columnWidth.value(i)); + page->setColumnWidth ( i, m_columnWidth.value ( i ) ); } return page; } -void QQTMPTableWidget::removeSelectedRows(int column) +void QQtMPTableWidget::removeSelectedRows ( int column ) { - for (int i = 0; i < m_pageNum; i++) + for ( int i = 0; i < m_pageNum; i++ ) { - QQtTableWidget* page = (QQtTableWidget*)ui->stWidgetPage->widget(i); + QQtTableWidget* page = ( QQtTableWidget* ) ui->stWidgetPage->widget ( i ); QMap ids; - page->selectedRows(column, ids); - page->removeRows(column, ids.values()); + page->selectedRows ( column, ids ); + page->removeRows ( column, ids.values() ); } } diff --git a/src/widgets/qqtmptablewidget.h b/src/widgets/qqtmptablewidget.h index d6ba6ef3..5e809c3b 100644 --- a/src/widgets/qqtmptablewidget.h +++ b/src/widgets/qqtmptablewidget.h @@ -9,43 +9,43 @@ #include "qqt-local.h" namespace Ui { -class QQTMPTableWidget; +class QQtMPTableWidget; } /** - * @brief The QQTMPTableWidget class + * @brief The QQtMPTableWidget class * 关于视图规格的改变改变到上层 * 这里的控件使用默认视图 * 这里的控件只是Table-DB关系,没有Tree/List模型 */ -class QQTSHARED_EXPORT QQTMPTableWidget : public QWidget +class QQTSHARED_EXPORT QQtMPTableWidget : public QWidget { Q_OBJECT public: - explicit QQTMPTableWidget(QWidget* parent = 0); - ~QQTMPTableWidget(); + explicit QQtMPTableWidget ( QWidget* parent = 0 ); + ~QQtMPTableWidget(); - void setDB(QString db); - void setTable(QString table); - void setRelation(int column, const QSqlRelation& relation); - void setRecordNumPerPage(int num); - void setColumnHidden(int key, bool value = true); - void setSelectionMode(QAbstractItemView::SelectionMode mode = QAbstractItemView::MultiSelection); - void setResizeMode(QHeaderView::ResizeMode mode = QHeaderView::ResizeToContents); - void setResizeMode(int column, QHeaderView::ResizeMode mode = QHeaderView::ResizeToContents); - void setAlternatingRowColors(bool alt = true); - void setHeaderData(int i, Qt::Orientation, QString data); - void setColumnWidth(int column, int width); - void query(QString filter = "1=1"); - void selectedRows(int column, QVector& strl); - QQtTableWidget* selectedRows(int column = 0); + void setDB ( QString db ); + void setTable ( QString table ); + void setRelation ( int column, const QSqlRelation& relation ); + void setRecordNumPerPage ( int num ); + void setColumnHidden ( int key, bool value = true ); + void setSelectionMode ( QAbstractItemView::SelectionMode mode = QAbstractItemView::MultiSelection ); + void setResizeMode ( QHeaderView::ResizeMode mode = QHeaderView::ResizeToContents ); + void setResizeMode ( int column, QHeaderView::ResizeMode mode = QHeaderView::ResizeToContents ); + void setAlternatingRowColors ( bool alt = true ); + void setHeaderData ( int i, Qt::Orientation, QString data ); + void setColumnWidth ( int column, int width ); + void query ( QString filter = "1=1" ); + void selectedRows ( int column, QVector& strl ); + QQtTableWidget* selectedRows ( int column = 0 ); int pageNum(); int currentPage(); - void setCurrentPage(int page); + void setCurrentPage ( int page ); public slots: - void removeSelectedRows(int column = 0); + void removeSelectedRows ( int column = 0 ); private slots: void on_btnLeft_clicked(); @@ -59,7 +59,7 @@ private slots: void on_btnRightHead_clicked(); private: - Ui::QQTMPTableWidget* ui; + Ui::QQtMPTableWidget* ui; QSqlDatabase m_db; QString m_name; QString m_table; diff --git a/src/widgets/qqtmptablewidget.ui b/src/widgets/qqtmptablewidget.ui index 2696b27f..4bba8968 100644 --- a/src/widgets/qqtmptablewidget.ui +++ b/src/widgets/qqtmptablewidget.ui @@ -1,7 +1,7 @@ - QQTMPTableWidget - + QQtMPTableWidget + 0