本文整理汇总了C++中QSqlTableModel::sort方法的典型用法代码示例。如果您正苦于以下问题:C++ QSqlTableModel::sort方法的具体用法?C++ QSqlTableModel::sort怎么用?C++ QSqlTableModel::sort使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QSqlTableModel
的用法示例。
在下文中一共展示了QSqlTableModel::sort方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: on_cbMatricola_currentIndexChanged
void FormGestioneFerie::on_cbMatricola_currentIndexChanged(const QString &arg1)
{
ui->cbCognome->setCurrentIndex(ui->cbMatricola->currentIndex());
QSqlQuery query1(QString("SELECT nome FROM anagrafica where Matricola=\"%1\"").arg(ui->cbMatricola->currentText()));
query1.next();
ui->lNome->setText( query1.value(0).toString() );
QSqlTableModel *model = new QSqlTableModel(this, this->db);
model->setTable("assenze");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setFilter(QString("Matricola=\"%1\"").arg(ui->cbMatricola->currentText()));
model->sort(2,Qt::AscendingOrder);
model->setHeaderData(1, Qt::Horizontal, tr("MATRICOLA"));
model->setHeaderData(2, Qt::Horizontal, tr("DATA"));
model->setHeaderData(3, Qt::Horizontal, tr("CAUSA"));
ui->tvPermessi->setModel(model);
ui->tvPermessi->hideColumn(0);
ui->tvPermessi->resizeColumnsToContents();
ui->tvPermessi->resizeRowsToContents();
ui->tvPermessi->selectRow(0);
}
示例2: on_pbAggiungiPermesso_clicked
void FormGestioneFerie::on_pbAggiungiPermesso_clicked()
{
for(QDate a=ui->dePermessiDal->date(); a.operator <=( ui->dePermessiAl->date());a= a.addDays(1) )
{
qDebug() << "Permesso per "+ui->cbMatricola->currentText()+" per il giorno "+a.toString("dd/MM/yyyy");
QSqlQuery query;
query.prepare("INSERT INTO assenze (ID, matricola, causa, data)" "VALUES (?, ?, ?, ?)");
// query.addBindValue( ui->cbMatricola->currentText()+"_"+ui->dePermessiDal->date().toString("dd/MM/yyyy"));
query.addBindValue( ui->cbMatricola->currentText()+"_"+a.toString("dd/MM/yyyy"));
query.addBindValue( ui->cbMatricola->currentText());
query.addBindValue( ui->cbTipoPermesso->currentText());
// query.addBindValue( ui->dePermessiDal->date().toString("dd/MM/yyyy"));
query.addBindValue( a.toString("dd/MM/yyyy"));
if(query.exec())
{
QMessageBox msgBox;
msgBox.setText("Inserzione nel database.");
msgBox.setInformativeText(QString("Permesso per il giorno %1 inserito correttamente.").arg(a.toString("dd/MM/yyyy")));
msgBox.setStandardButtons(QMessageBox::Ok );
msgBox.setIcon(QMessageBox::Information);
msgBox.exec();
}
else
{
QMessageBox msgBox;
msgBox.setText("Inserzione nel database.");
msgBox.setInformativeText(QString("Permesso per il giorno %1 NON inserito nel database. Probabilmente è gia stato inserito un permesso per lo stesso giorno.").arg(a.toString("dd/MM/yyyy")));
msgBox.setStandardButtons(QMessageBox::Ok );
msgBox.setIcon(QMessageBox::Critical);
msgBox.exec();
}
QSqlTableModel *model = new QSqlTableModel(this, this->db);
model->setTable("assenze");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setFilter(QString("Matricola=\"%1\"").arg(ui->cbMatricola->currentText()));
model->sort(2,Qt::AscendingOrder);
model->setHeaderData(1, Qt::Horizontal, tr("MATRICOLA"));
model->setHeaderData(2, Qt::Horizontal, tr("DATA"));
model->setHeaderData(3, Qt::Horizontal, tr("CAUSA"));
ui->tvPermessi->setModel(model);
ui->tvPermessi->hideColumn(0);
ui->tvPermessi->resizeColumnsToContents();
ui->tvPermessi->resizeRowsToContents();
ui->tvPermessi->selectRow(0);
}
}
示例3: query
FormGestioneFerie::FormGestioneFerie(QSqlDatabase db, QWidget *parent) :
QWidget(parent),
ui(new Ui::FormGestioneFerie)
{
ui->setupUi(this);
QDate oggi;
ui->dePermessiDal->setDate(oggi.currentDate());
ui->dePermessiAl->setDate(oggi.currentDate());
this->db= db;
QSqlQuery query(QString("SELECT Matricola,cognome FROM anagrafica"));
while (query.next())
{
ui->cbMatricola->addItem( query.value(0).toString() );
ui->cbCognome->addItem( query.value(1).toString() );
ui->lNome->setText( query.value(2).toString() );
}
QSqlQuery query1(QString("SELECT nome FROM anagrafica where Matricola=\"%1\"").arg(ui->cbMatricola->currentText()));
query1.next();
ui->lNome->setText( query1.value(0).toString() );
QSqlTableModel *model = new QSqlTableModel(this, this->db);
model->setTable("assenze");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setFilter(QString("Matricola=\"%1\"").arg(ui->cbMatricola->currentText()));
model->sort(2,Qt::AscendingOrder);
model->setHeaderData(1, Qt::Horizontal, tr("MATRICOLA"));
model->setHeaderData(2, Qt::Horizontal, tr("DATA"));
model->setHeaderData(3, Qt::Horizontal, tr("CAUSA"));
ui->tvPermessi->setModel(model);
ui->tvPermessi->hideColumn(0);
ui->tvPermessi->resizeColumnsToContents();
ui->tvPermessi->resizeRowsToContents();
ui->tvPermessi->selectRow(0);
}
示例4: on_tvPermessi_doubleClicked
void FormGestioneFerie::on_tvPermessi_doubleClicked(const QModelIndex &index)
{
if(index.column()==2)
{
QMessageBox msgBox;
msgBox.setText("Cancella assenza programmata.");
msgBox.setInformativeText(QString("Cancellare l'assenza programmata di %2 per il giorno %1 ?").arg(index.data().toString()).arg(ui->cbCognome->currentText()));
msgBox.setStandardButtons(QMessageBox::Apply |QMessageBox::Discard );
msgBox.setIcon(QMessageBox::Question);
int ret = msgBox.exec();
if (ret==QMessageBox::Apply )
{
QSqlQuery query(QString("DELETE FROM assenze where id=\"%1\"").arg(ui->cbMatricola->currentText()+"_"+index.data().toString()));
query.exec();
qDebug() << query.lastError();
QSqlTableModel *model = new QSqlTableModel(this, this->db);
model->setTable("assenze");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setFilter(QString("Matricola=\"%1\"").arg(ui->cbMatricola->currentText()));
model->sort(2,Qt::AscendingOrder);
model->setHeaderData(1, Qt::Horizontal, tr("MATRICOLA"));
model->setHeaderData(2, Qt::Horizontal, tr("DATA"));
model->setHeaderData(3, Qt::Horizontal, tr("CAUSA"));
ui->tvPermessi->setModel(model);
ui->tvPermessi->hideColumn(0);
ui->tvPermessi->resizeColumnsToContents();
ui->tvPermessi->resizeRowsToContents();
ui->tvPermessi->selectRow(0);
}
}
}
示例5: QMainWindow
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QString data_path = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
QDir data_dir;
data_dir.mkpath(data_path);
QString db_path = data_path + QDir::separator() + QString("assets.db");
qDebug() << "DB path : " << db_path;
db_helper = new DBHelper(db_path);
QSqlError err = db_helper->initDb();
if (err.type() != QSqlError::NoError) {
showError(err);
throw err;
}
market = new CryptocoinChartsMDP();
updateCurrencies();
model = new QSqlRelationalTableModel(ui->assetsTable);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->setTable("assets");
currency_column_index = model->fieldIndex("currency_id");
quantity_index = model->fieldIndex("quantity");
price_btc_index = model->fieldIndex("price_btc");
mv_btc_index = model->fieldIndex("market_value_btc");
price_usd_index = model->fieldIndex("price_usd");
mv_usd_index = model->fieldIndex("market_value_usd");
model->setRelation(currency_column_index, QSqlRelation("currencies", "id", "code"));
model->setHeaderData(currency_column_index, Qt::Horizontal, tr("Currency"));
model->setHeaderData(model->fieldIndex("quantity"), Qt::Horizontal, tr("Quantity"));
model->setHeaderData(model->fieldIndex("price_btc"), Qt::Horizontal, tr("Price (BTC)"));
model->setHeaderData(model->fieldIndex("market_value_btc"), Qt::Horizontal, tr("Market Value (BTC)"));
model->setHeaderData(model->fieldIndex("price_usd"), Qt::Horizontal, tr("Price (USD)"));
model->setHeaderData(model->fieldIndex("market_value_usd"), Qt::Horizontal, tr("Market Value (USD)"));
if (!model->select()) {
showError(model->lastError());
return;
}
ui->assetsTable->setModel(model);
ui->assetsTable->setItemDelegate(new QSqlRelationalDelegate(ui->assetsTable));
ui->assetsTable->setColumnHidden(model->fieldIndex("id"), true);
ui->assetsTable->setSelectionBehavior(QAbstractItemView::SelectRows);
mapper = new QDataWidgetMapper(this);
mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
AssetEditDelegate *delegate = new AssetEditDelegate(this);
mapper->setItemDelegate(delegate);
mapper->setModel(model);
mapper->addMapping(ui->quantityEdit, model->fieldIndex("quantity"));
QSqlTableModel *relationModel = model->relationModel(currency_column_index);
relationModel->sort(relationModel->fieldIndex("code"), Qt::AscendingOrder);
ui->currencyComboBox->setModel(relationModel);
ui->currencyComboBox->setModelColumn(relationModel->fieldIndex("code"));
ui->currencyComboBox->installEventFilter(delegate);
mapper->addMapping(ui->currencyComboBox, currency_column_index);
connect(ui->assetsTable->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
mapper, SLOT(setCurrentModelIndex(QModelIndex)));
connect(delegate, SIGNAL(dataChanged (const QModelIndex&)), this, SLOT(data_changed(QModelIndex)));
ui->assetsTable->setCurrentIndex(model->index(0, 0));
refreshMarketData(false);
for (int c = 0; c < ui->assetsTable->horizontalHeader()->count(); ++c)
ui->assetsTable->horizontalHeader()->setSectionResizeMode(c, QHeaderView::Stretch);
}