本文整理汇总了C++中QComboBox::setModelColumn方法的典型用法代码示例。如果您正苦于以下问题:C++ QComboBox::setModelColumn方法的具体用法?C++ QComboBox::setModelColumn怎么用?C++ QComboBox::setModelColumn使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QComboBox
的用法示例。
在下文中一共展示了QComboBox::setModelColumn方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
QWidget *MySqlRelationDelegate::createEditor(QWidget *aParent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model());
QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0;
if (!childModel)
{
if (HandbookDialog::m_record.fieldName(index.column()).contains("IS_", Qt::CaseSensitive))
{
QCheckBox * checkBox = new QCheckBox(aParent);
checkBox->setChecked(index.data().toInt() > 0);
return checkBox;
}
else if (HandbookDialog::m_record.fieldName(index.column()).contains("DATE_", Qt::CaseSensitive))
{
QDateEdit * dateEdit = new QDateEdit(aParent);
dateEdit->setDate(QDate::fromString(index.data().toString(), "yyyy-MM-dd"));
return dateEdit;
}
else
{
return QItemDelegate::createEditor(aParent, option, index);
}
}
QComboBox *combo = new QComboBox(aParent);
combo->setModel(childModel);
combo->setModelColumn(childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn()));
combo->installEventFilter(const_cast<MySqlRelationDelegate *>(this));
return combo;
}
示例2: createEditor
QWidget *mySqlRelationalDelegate::createEditor(QWidget *aParent, const QStyleOptionViewItem &option, const QModelIndex &index) const {
const QSqlRelationalTableModel *sqlModel = qobject_cast<const QSqlRelationalTableModel *>(index.model());
QSqlTableModel *childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0;
if (!childModel )
{
const QSortFilterProxyModel* proxyModel = qobject_cast<const QSortFilterProxyModel *>(index.model());
if (proxyModel)
{
sqlModel = qobject_cast<const QSqlRelationalTableModel *>(proxyModel->sourceModel());
childModel = sqlModel ? sqlModel->relationModel(index.column()) : 0;
}
}
if (!childModel)
{
return QItemDelegate::createEditor(aParent, option, index);
}
QComboBox *combo = new QComboBox(aParent);
combo->setModel(childModel);
combo->setModelColumn(childModel->fieldIndex(sqlModel->relation(index.column()).displayColumn()));
combo->installEventFilter(const_cast<mySqlRelationalDelegate *>(this));
return combo;
}
示例3: QSqlQueryModel
void PretrazivanjeSredstavaD1::setModelGodina()
{
QComboBox *view = ui->cbGodina;
modelGodina = new QSqlQueryModel();
modelGodina->setQuery("select 'Sve' union select distinct(substr(datum, -4)) as godina from spisak order by godina;");
view->setModel(modelGodina);
view->setModelColumn(0);
view->setCurrentIndex(view->findText("Sve"));
}
示例4: QComboBox
QWidget *wComboBoxDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &/* option */,
const QModelIndex &/* index */) const
{
QComboBox *editor = new QComboBox(parent);
editor->setModel(modelData);
editor->setModelColumn(modelIndexValue);
return editor;
}
示例5: m_addTrans
int TransactionActionDialog::m_addTrans()
{
// Get last row index
int currRow = ui->tableWidget->rowCount();
// Insert row after current row
ui->tableWidget->insertRow(currRow);
//ui->tableWidget->item(currRow, ID)->setData(Qt::DisplayRole, QVariant(-1));
auto* plusMinusWidget = new PlusMinusPushWidget(ui->tableWidget);
// Set to minus by default
plusMinusWidget->click();
// set widget in to Positive/Negative row
ui->tableWidget->setCellWidget(currRow, POS_NEG, plusMinusWidget);
// Create combo box that links to stock table model
// and add to row and column
QComboBox* comboBox = new QComboBox(ui->tableWidget);
comboBox->setModel(m_stockTable);
comboBox->setModelColumn(StockTable::REF);
// add combo box in to stock item column
ui->tableWidget->setCellWidget(currRow, STOCK_ITEM, comboBox);
// create line edit, default to 0 value
QLineEdit* lineEdit = new QLineEdit(QString::number(0), ui->tableWidget);
// set numeric regex as validator
lineEdit->setValidator(DB::GetNumericValidator(lineEdit));
// set line edit in to amount column
ui->tableWidget->setCellWidget(currRow, AMOUNT,
lineEdit);
// create new line edit containing number of stock data
lineEdit = new QLineEdit(QString::number(0), ui->tableWidget);
// set validator as non negative regex
lineEdit->setValidator(DB::GetNonNegativeNumericValidator(lineEdit));
// set the line edit widget in to the no sold column
ui->tableWidget->setCellWidget(currRow, NO_SOLD,
lineEdit);
// create line edit, add id number and insert in to id column
ui->tableWidget->setCellWidget(currRow, ID,
new QLineEdit(QString::number(-1), ui->tableWidget));
// create line edit, add deleted mark and insert in to deleted column
ui->tableWidget->setCellWidget(currRow, DELETED,
new QLineEdit(QString::number(0), ui->tableWidget));
// return new row index to caller
return currRow;
}
示例6: createEditor
// Предоставление редактора
QWidget* ComboBoxFileldDelegate::createEditor ( QWidget * parent, const QStyleOptionViewItem & option,
const QModelIndex & index ) const
{
if (index.column()>2){
// QMessageBox::critical(0,"",index.model()->data(index.sibling(index.row(),0)).toString());
QString pole = index.model()->data(index.sibling(index.row(),0)).toString();
int j;
for(int i=0;i<fieldName.count();i++){
QString s = model->headerData( fieldName.at(i) , Qt::Horizontal).toString();
s.replace("\n"," ");
if (s==pole){
j=fieldName.at(i);
break;
}
}
//QMessageBox::critical(0,"",QString("%1").arg(j));
QSqlRelation rel = model->relation(j);
if (rel.indexColumn()!=QString("")){
//QMessageBox::critical(0,"",rel.indexColumn()+" "+rel.displayColumn()+" "+rel.tableName());
QComboBox * pRes = new QComboBox(parent);
QSqlTableModel* relModel = new QSqlTableModel;
relModel->setTable(rel.tableName());
relModel->select();
pRes->setModel(relModel);
pRes->setModelColumn(relModel->fieldIndex(rel.displayColumn()));
return pRes;
}
if (model->data(model->index(0,j), Qt::EditRole).type() == QVariant::Date){
QDateEdit* pRes = new QDateEdit(parent);
pRes->setCalendarPopup(true);
pRes->setDisplayFormat("dd.MM.yyyy");
return pRes;
}
if (model->data(model->index(0,j), Qt::EditRole).type() == QVariant::Bool){
QComboBox * pRes = new QComboBox(parent);
pRes->addItem(tr("Нет"));
pRes->addItem(tr("Да"));
return pRes;
}
return QItemDelegate::createEditor(parent,option,index);
}
QComboBox * pRes = new QComboBox(parent);
switch (index.column()) {
case 0: {
QStringList field;
for(int i=0;i<fieldName.count();i++){
QString s = model->headerData( fieldName.at(i) , Qt::Horizontal).toString();
s.replace("\n"," ");
field<<s;
}
pRes->addItems(field);
break;
}
case 1: {
pRes->addItem(tr(" "));
pRes->addItem(tr("не"));
break;
}
case 2: {
pRes->addItem(tr("равно"));
pRes->addItem(tr("похоже на"));
pRes->addItem(tr("больше"));
pRes->addItem(tr("меньше"));
break;
}
}
// это строка нужна для того чтобы по enter и esc завершалось редактирование итд
pRes->installEventFilter(const_cast<ComboBoxFileldDelegate*>(this));
return pRes;
};
示例7: afterCreateGroup
void importDialog::afterCreateGroup()
{
ui->stackedWidget->setCurrentIndex(ui->stackedWidget->currentIndex()+1);
ui->btnImportar->setEnabled(true);
MainWindow w(_empDir + "/Divisas.dbf");
QSqlQuery q(QSqlDatabase::database("dbfEditor"));
if(!q.exec("Select * from d_Divisas"))
{
QMessageBox::critical(this,"Error",q.lastError().text());
return;
}
q.first();
QSqlQueryModel * modelMoneda = new QSqlQueryModel(this);
modelMoneda->setQuery("SELECT * FROM monedas;",QSqlDatabase::database("grupo"));
QSqlQueryModel * modelPais = new QSqlQueryModel(this);
modelPais->setQuery("SELECT * FROM paises;",QSqlDatabase::database("grupo"));
QWidget* container = new QWidget(this);
QVBoxLayout * _layout = new QVBoxLayout(container);
do
{
QSqlRecord r = q.record();
QString codigo = r.value("CCODDIV").toString().trimmed();
QString desc = r.value("CDETDIV").toString().trimmed();
QComboBox * combo = new QComboBox(this);
combo->setModel(modelMoneda);
combo->setModelColumn(1);
QComboBox * combo2 = new QComboBox(this);
combo2->setModel(modelPais);
combo2->setModelColumn(1);
QLabel * label = new QLabel(desc,this);
QHBoxLayout * lay = new QHBoxLayout(this);
QCheckBox * check = new QCheckBox(this);
check->setChecked(true);
lay->addWidget(check);
lay->addWidget(label);
lay->addWidget(combo);
lay->addWidget(combo2);
_layout->addLayout(lay);
_combos.insert(combo,codigo);
_combosMonedaPais.insert(combo2,codigo);
_validDivisas.insert(combo,check);
combo->setCurrentIndex(0);
}while(q.next());
_layout->addSpacerItem(new QSpacerItem(1,1,QSizePolicy::Preferred,QSizePolicy::Expanding));
container->setLayout(_layout);
ui->scrollArea->setWidget(container);
w.openDb(_empDir + "/Ivas.dbf");
if(!q.exec("Select * from d_Ivas"))
{
QMessageBox::critical(this,"Error",q.lastError().text());
return;
}
q.first();
QSqlQueryModel * q2 = new QSqlQueryModel(this);
q2->setQuery("SELECT * FROM tiposiva;",QSqlDatabase::database("grupo"));
QWidget* container2 = new QWidget(this);
QVBoxLayout * _layout2 = new QVBoxLayout(container);
do
{
QSqlRecord r = q.record();
QString codigo = r.value("CTIPOIVA").toString().trimmed();
QString desc = r.value("CDETIVA").toString().trimmed();
QComboBox * combo = new QComboBox(this);
combo->setModel(q2);
combo->setModelColumn(2);
QLabel * label = new QLabel(desc,this);
QHBoxLayout * lay = new QHBoxLayout(this);
lay->addWidget(label);
lay->addWidget(combo);
_layout2->addLayout(lay);
_combos2.insert(combo,codigo);
combo->setCurrentIndex(0);
}while(q.next());
_layout2->addSpacerItem(new QSpacerItem(1,1,QSizePolicy::Preferred,QSizePolicy::Expanding));
container2->setLayout(_layout2);
ui->scrollIva->setWidget(container2);
w.openDb(ui->txtRutaBD->text() + "/dbf/Naciones.dbf");
if(!q.exec("Select * from d_Naciones"))
//.........这里部分代码省略.........
示例8: createEditor
// Предоставление редактора
QWidget* ComboBoxMailDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option,
const QModelIndex& index) const
{
if (index.column() == 1) {
// QMessageBox::critical(0,"",index.model()->data(index.sibling(index.row(),0)).toString());
QString pole = index.model()->data(index.sibling(index.row(), 0)).toString();
int j;
for (int i = 0; i < fieldName.count(); i++) {
QString s = model->headerData(fieldName.at(i) , Qt::Horizontal).toString();
s.replace("\n", " ");
if (s == pole) {
j = fieldName.at(i);
break;
}
}
//QMessageBox::critical(0,"",QString("%1").arg(j));
QSqlRelation rel = model->relation(j);
if (rel.indexColumn() != QString("")) {
//QMessageBox::critical(0,"",rel.indexColumn()+" "+rel.displayColumn()+" "+rel.tableName());
QComboBox* pRes = new QComboBox(parent);
QSqlTableModel* relModel = new QSqlTableModel;
relModel->setTable(rel.tableName());
/* Удаление выбранных значений в кому */
if (pole == tr("Кому")) {
QString relFilter = QString("user_id != '00000000-0000-0000-0000-000000000000'");
for (int i = 0; i < index.model()->rowCount(); i++) {
QString pole = index.model()->data(index.sibling(i, 0)).toString();
if (pole == tr("Кому") && index.row() != i) {
QString val = index.model()->data(index.sibling(i, 1)).toString();
if ( val != QString(""))
relFilter = QString("%1 and not user_id = '%2'").arg(relFilter).arg(val);
}
//QMessageBox::critical(0,"",index.model()->data(index.sibling(i,1)).toString());
}
//QMessageBox::critical(0,"","-"+relFilter+"-");
relModel->setFilter(relFilter);
}
relModel->select();
pRes->setModel(relModel);
pRes->setModelColumn(relModel->fieldIndex(rel.displayColumn()));
return pRes;
}
if (model->data(model->index(0, j)).type() == QVariant::Date) {
QDateEdit* pRes = new QDateEdit(parent);
pRes->setCalendarPopup(true);
pRes->setDisplayFormat("dd.MM.yyyy");
return pRes;
}
if (model->data(model->index(0, j)).type() == QVariant::Bool) {
QComboBox* pRes = new QComboBox(parent);
pRes->addItem(tr("Нет"));
pRes->addItem(tr("Да"));
return pRes;
}
return QItemDelegate::createEditor(parent, option, index);
}
if (index.column() == 0) {
QComboBox* pRes = new QComboBox(parent);
bool typeflag = true;
bool priorflag = true;
bool recipientflag = true;
bool beginflag = true;
bool endflag = true;
for (int i = 0; i < index.model()->rowCount(); i++) {
QString pole = index.model()->data(index.sibling(i, 0)).toString();
if (pole == tr("Тип") && index.row() != i)
typeflag = false;
if (pole == tr("Приоритет") && index.row() != i)
priorflag = false;
if (pole == tr("Начало") && index.row() != i)
beginflag = false;
if (pole == tr("Конец") && index.row() != i)
endflag = false;
}
//if (recipientflag)
pRes->addItem(tr("Кому"));
//.........这里部分代码省略.........
示例9: setData
void TransactionActionDialog::setData(const QVector<TransactionTable::Data> &data)
{
for(const TransactionTable::Data& item: data)
{
// Add new transaction
int currRow = ui->tableWidget->rowCount();
// Insert row after current row
ui->tableWidget->insertRow(currRow);
// Create new plus minus widget
PlusMinusPushWidget* plusMinusWidget = new PlusMinusPushWidget(
ui->tableWidget);
// Create temporary variable to hold the item amount.
// This is due to the const restrictions, we can not modify the value
// directly
int tempNoStock = item.noSold;
// Check if value is negative
if(tempNoStock < 0)
{
// Click the button so that its set to -
plusMinusWidget->click();
// Make value positive
tempNoStock *= -1;
}
// Set the plus minus widget to the table
ui->tableWidget->setCellWidget(currRow, POS_NEG, plusMinusWidget);
// Create combo box that links to stock table model
// and add to row and column
QComboBox* comboBox = new QComboBox(ui->tableWidget);
comboBox->setModel(m_stockTable);
// show the reference column
comboBox->setModelColumn(StockTable::REF);
// get view index from model
int stock_index = DB::GetViewIndex(item.stock_id,
static_cast<QSqlQueryModel*>(m_stockTable));
// Set index of row to view index we found earlier
comboBox->setCurrentIndex(stock_index);
// Set widget to table
ui->tableWidget->setCellWidget(currRow, STOCK_ITEM, comboBox);
// create new line edit containing amount data
QLineEdit* lineEdit = new QLineEdit(QString::number(item.amount, 'd', 2), ui->tableWidget);
// set numeric values only regex
lineEdit->setValidator(DB::GetNumericValidator(lineEdit));
// set line edit in to amount column
ui->tableWidget->setCellWidget(currRow, AMOUNT,
lineEdit);
// create new line edit containing number of stock data
lineEdit = new QLineEdit(QString::number(tempNoStock), ui->tableWidget);
// set validator as non negative regex
lineEdit->setValidator(DB::GetNonNegativeNumericValidator(lineEdit));
// set the line edit widget in to the no sold column
ui->tableWidget->setCellWidget(currRow, NO_SOLD, lineEdit);
// create line edit, add id number and insert in to id column
ui->tableWidget->setCellWidget(currRow, ID,
new QLineEdit(QString::number(item.id), ui->tableWidget));
// create line edit, add deleted mark and insert in to deleted column
ui->tableWidget->setCellWidget(currRow, DELETED,
new QLineEdit(QString::number(item.deleted, 'd', 2), ui->tableWidget));
}
}