本文整理汇总了C++中QSqlRelationalTableModel::setEditStrategy方法的典型用法代码示例。如果您正苦于以下问题:C++ QSqlRelationalTableModel::setEditStrategy方法的具体用法?C++ QSqlRelationalTableModel::setEditStrategy怎么用?C++ QSqlRelationalTableModel::setEditStrategy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QSqlRelationalTableModel
的用法示例。
在下文中一共展示了QSqlRelationalTableModel::setEditStrategy方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createTableModels
void UserForm:: createTableModels()
{
QSqlRelationalTableModel* model = new QSqlRelationalTableModel();
model->setTable("good");
model->setRelation(Producer, QSqlRelation("company", "companyid", "name"));
model->setRelation(Catalog, QSqlRelation("catalog", "id", "name"));
model->setHeaderData(Producer, Qt::Horizontal, "Producer");
model->setHeaderData(Name, Qt::Horizontal, "Name");
model->setHeaderData(Price, Qt::Horizontal, "Price, $");
model->setHeaderData(Description, Qt::Horizontal, "Description");
model->setHeaderData(Catalog, Qt::Horizontal, "Catalog");
model->setFilter("catalog_id IS NOT NULL");
// model->removeColumn(5);
model->select();
productsModel = model;
model = new QSqlRelationalTableModel();
model->setTable("`order`");
model->setRelation(goodId, QSqlRelation("good", "goodid", "name"));
model->setFilter("user_login='" + TofPApplication::getUserLogin() + "'");
model->select();
model->setEditStrategy(QSqlTableModel::OnRowChange);
model->removeColumn(3);
model->removeColumn(2);
model->setHeaderData(orderId, Qt::Horizontal, "Order #");
model->setHeaderData(goodId, Qt::Horizontal, "Product");
model->setHeaderData(date, Qt::Horizontal, "Date");
model->setHeaderData(address, Qt::Horizontal, "Address to deliver");
ordersModel = model;
}
示例2: timer
void BadgeWindow::timer()
{
DialogTimer dialogTimer;
bool saveRequest;
QString taskName;
QTime elapsedTime;
saveRequest = dialogTimer.getTaskInfo(taskName, elapsedTime);
if (saveRequest) {
DialogTask dialog;
QSqlRelationalTableModel *taskModel;
taskModel = new QSqlRelationalTableModel();
taskModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
taskModel->setTable("task");
qDebug() << "Day" << QDate::currentDate().toString("yyyy-MM-dd") << endl;
taskModel->setFilter("day='" + QDate::currentDate().toString("yyyy-MM-dd") + "'");
//taskModel.setEditStrategy(QSqlTableModel::OnFieldChange);
taskModel->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
taskModel->setHeaderData(1, Qt::Horizontal, QObject::tr("Date"));
taskModel->setHeaderData(2, Qt::Horizontal, QObject::tr("Elapsed"));
//taskModel->setHeaderData(3, Qt::Horizontal, QObject::tr("Attivita'"));
taskModel->setRelation(3, QSqlRelation("attivita", "id", "attivita"));
taskModel->select();
// TODO: if current date don't exist create it
dialog.openTask("Task", "Elapsed", taskModel, QDate::currentDate(), "task", elapsedTime, taskName);
delete taskModel;
}
}
示例3: QDialog
SQLOpenProjectDialog::SQLOpenProjectDialog(const QString & host, unsigned int port, const QString & dbname, const QString & user, const QString & password,QWidget *parent) :
QDialog(parent),
ui(new Ui::SQLOpenProjectDialog)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
m_Host=host;
m_Port=port;
m_DBName=dbname;
m_User=user;
m_Password=password;
db.setHostName(m_Host);
db.setPort(m_Port);
db.setDatabaseName(m_DBName);
db.setUserName(m_User);
db.setPassword(m_Password);
bool ok=db.open();
std::cout << db.lastError().databaseText().toStdString() << std::endl;
if(ok){
QSqlRelationalTableModel *model = new QSqlRelationalTableModel(this,db);
model->setTable("Project");
model->setEditStrategy(QSqlTableModel::OnRowChange);
model->select();
ui->existingProjectsTableView->setModel(model);
}else{
}
m_Accepted=false;
m_Project=0;
}
示例4: query
HandbookDialog::HandbookDialog(QString tableName, QString tableRusName,
const QSqlDatabase &database,
QWidget *parent,
QStringList hiddenColumns):
m_database(database),
mHiddenColumns(hiddenColumns),
QDialog(parent),
ui(new Ui::HandbookDialog)
{
ui->setupUi(this);
ui->label->setText(tableRusName);
this->setWindowTitle("Редактирование справочника: " + tableRusName);
QMap<QString, QString> rusFieldNames = DataBaseExpert::fieldTranslationMap(m_database);
auto ralTablesForFields = DataBaseExpert::ralationTablesForFields(m_database);
m_record = database.record(tableName);
QSqlRelationalTableModel * model = new QSqlRelationalTableModel(0, database);
model->setTable(tableName);
for (int i = 0; i < m_record.count(); ++i)
{
QString fieldName = m_record.fieldName(i);
if (fieldName.size() > 3 && fieldName.right(3) == "_FK")
{
model->setRelation(i, QSqlRelation(ralTablesForFields[fieldName], "UID", "NAME"));
}
}
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
//model->removeColumn(0);
model->select();
for (int i = 0; i < m_record.count(); ++i)
{
model->setHeaderData(i, Qt::Horizontal, rusFieldNames[m_record.fieldName(i)]);
if (mHiddenColumns.contains(m_record.fieldName(i), Qt::CaseInsensitive))
{
ui->tableView->setColumnHidden(i, true);
}
}
ui->tableView->setModel(model);
ui->tableView->setItemDelegate(new MySqlRelationDelegate(ui->tableView));
for (int i = 0; i < m_record.count(); ++i)
{
if (mHiddenColumns.contains(m_record.fieldName(i), Qt::CaseInsensitive))
{
ui->tableView->setColumnHidden(i, true);
}
}
connect(ui->btnInsert, &QPushButton::clicked, [model]()
{
model->insertRow(model->rowCount());
});
connect(ui->btnSave, &QPushButton::clicked, [model]()
{
if (!model->submitAll())
qDebug() << model->lastError().text();
});
connect(ui->btnRevert, &QPushButton::clicked, [model]()
{
model->revertAll();
});
connect(ui->btnExit, &QPushButton::clicked, [this]()
{
this->accept();
});
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeMode::Stretch);
connect(ui->tableView, &QTableView::customContextMenuRequested, [this, &tableName, model] (const QPoint& pos)
{
QMenu * contextMenu = new QMenu(tr("Выбор действия со строкой"), ui->tableView);
QAction* insertAction = new QAction(tr("Добавить"), contextMenu);
contextMenu->addAction(insertAction);
connect(insertAction, &QAction::triggered, [this, &model] ()
{
model->insertRow(model->rowCount());
});
QAction * delAction = new QAction(tr("Удалить"), contextMenu);
contextMenu->addAction(delAction);
connect(delAction, &QAction::triggered, [this, &pos, &tableName, model] ()
{
QPoint transformPos = pos;
transformPos.setX(20);
QModelIndex index = ui->tableView->indexAt(transformPos);
QString recordId = ui->tableView->model()->data(index).toString();
QSqlQuery query("DELETE FROM " + tableName + " WHERE UID = " + recordId, m_database);
query,exec();
model->submitAll();
});
contextMenu->exec(ui->tableView->viewport()->mapToGlobal(pos));
});
//.........这里部分代码省略.........