怎么用Qt的TableView来显示数据,数据有些来自MySQL的表中(多张不同的表),并且有些数据并不是从MySQL取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用Qt的TableView来显示数据,数据有些来自MySQL的表中(多张不同的表),并且有些数据并不是从MySQL取相关的知识,希望对你有一定的参考价值。
我需要做一个程序用Qt的TableView来显示数据,数据有些来自MySQL的表中(多张不同的表),并且有些数据并不是从MySQL取的,而是通过程序计算得到,我在网上可以查到的资料Qt的table都是针对单表操作的,如果有具体的例子的话更加的好
参考技术A 可以采用Stacked Layouts分页布局,具体实现代码如下,望采纳://创建QWidget类的一个对象pWidget
QWidget *pWidget = new QWidget;
//创建一个布局管理器类 layout
QHBoxLayout *manLayout = new QHBoxLayout;
//左边的列表控件
QListWidget *listWidget = new QListWidget(pWidget);
listWidget->addItem(QObject::tr("外观设置"));
listWidget->addItem(QObject::tr("网页浏览"));
...
//右边的分页控件
QWidget *page1 = new QWidget(pWidget);
<…page1上增加控件>
QWidget *page2 = new QWidget(pWidget);
<…page2上增加控件>
<设置布局管理>
QVBoxLayout *leftLayout = new QVBoxLayout;
leftLayout->addWidget(listWidget);
....
//右边分页布局(两页窗口)
QStackedLayout *stackedLayout = new QStackedLayout;
stackedLayout->addWidget(page1);
stackedLayout->addWidget(page2);
//通过调用QWidget::setLayout()函数,将layout布局管理器类添加到窗口部件对象pWidget中
manLayout->addLayout(leftLayout);
manLayout->addLayout(stackedLayout);
pWidget->setLayout(manLayout);
listWidget->setCurrentRow(0);
//关联:列表与分组布局
QObject::connect(listWidget, SIGNAL(currentRowChanged(int)),
stackedLayout, SLOT(setCurrentIndex(int)));
pWidget->show();追问
这个方法不就是把内容一个一个加上去么?除了这个以外还有其他的方法么,Qt没有类似C#的表格操作方法么?
追答据我所知qt对于表格的操作,就只有这几种方法了
一、使用ActiveQt模块读取
二、先用其它工具将.xls文件转换成XML格式的文件,然后读取
三、使用其它第三方开发包读取。
请问在QT4中我用QTableView 和QSqlTableModel操作数据库,我想改变tableview某行的背景色应该怎么做?
能给出代码最好或者给个例子,发到邮箱zlyrtn@126.com。谢谢了!
参考技术A 重载QSqlTableModel::data(const QModelIndex &index, int role) const函数;QSqlTableModel::data(const QModelIndex &index, int role) const
if(role == Qt::BackgroundRole)
return QVariant(QColor(Qt::yellow));
以上是关于怎么用Qt的TableView来显示数据,数据有些来自MySQL的表中(多张不同的表),并且有些数据并不是从MySQL取的主要内容,如果未能解决你的问题,请参考以下文章
QT如何实现QSqltablemodel实时更新数据库,并在tableview中实时显示,
QT中table view怎么显示sqlite数据库的内容?
Qt5 - 在 QML TableView 中显示动态数据模型