我有一个QListView,它将QSqlQueryModel设置为其模型.如何使用QStyledItemDelegate来自定义QListView的行的外观(例如显示2个文本行)?
QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE" );
db.setDatabaseName( "test.db" );
if( !db.open() )
{
qDebug() << db.lastError();
qFatal( "Failed to connect." );
}
qDebug( "Connected!" );
QSqlQueryModel *sqlModel = new QSqlQueryModel;
sqlModel->setQuery("SELECT * FROM entries");
mListWidget->setModel(sqlModel);
Run Code Online (Sandbox Code Playgroud)
基本上,我认为我需要做的是以某种方式"匹配"角色到db表的字段,以便能够从QStyledItemDelegate获取数据,使用类似这样的东西:
void ListViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
[...]
QString headerText = qvariant_cast<QString>(index.data(headerRole));
QString subText = qvariant_cast<QString>(index.data(subHeaderRole));
[...]
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试QTextEdit使用一些文本创建,在此文本中我有行尾字符 ( \n),但它在QTextEdit对象中不被接受(整个文本显示时没有任何中断)。有什么理由吗?