QT下QTableView显示乱码

在主函数初始化是做如下处理即可或者选用制定的编码库

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

制定的编码库

QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

要在QT QTableView显示多列,你需要继承QAbstractTableModel类,实现rowCount()、columnCount()、data()和headerData()等方法。在这些方法中,你要指定数据的行数、列数、每个单元格的数据和表头的数据。 下面是一个简单的示例代码,它显示了一个3列的表格: ``` class MyTableModel : public QAbstractTableModel { public: MyTableModel(QObject *parent = nullptr) : QAbstractTableModel(parent) {} int rowCount(const QModelIndex &parent = QModelIndex()) const override { return 5; // 指定行数为5 } int columnCount(const QModelIndex &parent = QModelIndex()) const override { return 3; // 指定列数为3 } QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override { if (role == Qt::DisplayRole) { // 返回数据 return QString("row%1, col%2").arg(index.row() + 1).arg(index.column() + 1); } return QVariant(); } QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override { if (role == Qt::DisplayRole && orientation == Qt::Horizontal) { // 返回表头 return QString("Column %1").arg(section + 1); } return QVariant(); } }; ``` 在你的窗口中创建QTableView控件,并将其设置为MyTableModel的视图: ``` QTableView *tableView = new QTableView(this); MyTableModel *model = new MyTableModel(this); tableView->setModel(model); ``` 这样就可以显示多列数据了。你可以根据需要修改MyTableModel类的实现来适应你的数据源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值