我有一个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)
谢谢!
我想有一个视图,我向用户显示各种QLabel,.jpg图像和项目列表(例如QListView).我希望所有这些都可以垂直滚动在一起.用于填充各种小部件的数据将由显示该视图的功能设置.我更喜欢在代码中实现它,而不使用GUI Designer.
我考虑过创建继承自QWidget的自定义小部件,但我发现很难实现它.这是最好的方法吗?
你能告诉我一个如何进行的例子吗?
提前致谢