QT中 使用QTableView显示数据库中的内容,双击单元格时编辑。但是要输入一定的格式:日期,IP格式怎么办?
比如说我要在QTableView中输入的是IP形式的内容格式:192.168.1.1。或者是MAC格式的XX-XX-XX-XX-XX或者是在单击出现选择输入的内容像QCo...
比如说我要在QTableView中输入的是IP形式的内容格式:192.168.1.1。或者是MAC格式的XX-XX-XX-XX-XX 或者是在单击出现选择输入的内容像QComboBox样式。
展开
展开全部
回复:
Qt::BackgroundRole改成Qt::ForegroundRole,就是文字颜色.(0,5)单元格就是index.column()==5&&index.row()==0
subclass你的Model,重载data、setData函数,以data()为例:
QVariant MyTestModel::data(const QModelIndex &index, int role) const
{
switch(role)
{
case Qt::DisplayRole:
return QVariant(QString(tr("%1")).arg((index.column() + 1) * 1000 + index.row() + 1));
case Qt::BackgroundRole:
switch(index.column() % 3)
{
case 0:
return QVariant(QColor(Qt::red));
case 1:
return QVariant(QColor(Qt::green));
case 2:
return QVariant(QColor(Qt::blue));
default://only to disable warning
return QVariant(QColor(Qt::white));
}
break;
default:
return QVariant();
}
}
Qt::BackgroundRole改成Qt::ForegroundRole,就是文字颜色.(0,5)单元格就是index.column()==5&&index.row()==0
subclass你的Model,重载data、setData函数,以data()为例:
QVariant MyTestModel::data(const QModelIndex &index, int role) const
{
switch(role)
{
case Qt::DisplayRole:
return QVariant(QString(tr("%1")).arg((index.column() + 1) * 1000 + index.row() + 1));
case Qt::BackgroundRole:
switch(index.column() % 3)
{
case 0:
return QVariant(QColor(Qt::red));
case 1:
return QVariant(QColor(Qt::green));
case 2:
return QVariant(QColor(Qt::blue));
default://only to disable warning
return QVariant(QColor(Qt::white));
}
break;
default:
return QVariant();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询