教程中抄下来的代码,出现了多处错误:
类“QTableView”没有成员“setColumnCount”;类“QTableView”没有成员“setRowCount”;类“QTableView”没有成员“setHorizontalHeaderLabels”;
未定义标识符“hearderHQ”等问题。
#include "ctpqt.h"
ctpqt::ctpqt(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
ui.HQTable->setColumnCount(11);
ui.HQTable->setRowCount(10);
QStringList headerHQ;
headerHQ.append(QString::fromLocal8Bit("合约代码"));
headerHQ.append(QString::fromLocal8Bit("更新时间"));
headerHQ.append(QString::fromLocal8Bit("最新价"));
headerHQ.append(QString::fromLocal8Bit("买一价"));
headerHQ.append(QString::fromLocal8Bit("买一量"));
headerHQ.append(QString::fromLocal8Bit("卖一价"));
headerHQ.append(QString::fromLocal8Bit("卖一量"));
headerHQ.append(QString::fromLocal8Bit("涨幅"));
headerHQ.append(QString::fromLocal8Bit("成交量"));
headerHQ.append(QString::fromLocal8Bit("涨停价"));
headerHQ.append(QString::fromLocal8Bit("跌停价"));
ui.HQTable->setHorizontalHeaderLabels(hearderHQ);
}
查阅资料修改后,可运行但无法在运行结果中显示出行列:
#include "ctpqt.h"
#include <QStandardItemModel>
ctpqt::ctpqt(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
QStandardItemModel* model = new QStandardItemModel(this);
model->setColumnCount(11);
model->setRowCount(10);
// ui.HQTable->setColumnCount(11);
// ui.HQTable->setRowCount(10);
QStringList headerHQ;
headerHQ.append(QString::fromLocal8Bit("合约代码"));
headerHQ.append(QString::fromLocal8Bit("更新时间"));
headerHQ.append(QString::fromLocal8Bit("最新价"));
headerHQ.append(QString::fromLocal8Bit("买一价"));
headerHQ.append(QString::fromLocal8Bit("买一量"));
headerHQ.append(QString::fromLocal8Bit("卖一价"));
headerHQ.append(QString::fromLocal8Bit("卖一量"));
headerHQ.append(QString::fromLocal8Bit("涨幅"));
headerHQ.append(QString::fromLocal8Bit("成交量"));
headerHQ.append(QString::fromLocal8Bit("涨停价"));
headerHQ.append(QString::fromLocal8Bit("跌停价"));
// this->setModel(model); #类“ctpqt”没有成员“setModel”
this->show();
// ui.HQTable->setHorizontalHeaderLabels(hearderHQ);
}
运行结果:
在Qt中,QTableView是用于展示表格数据的类,但是它并没有直接提供setColumnCount、setRowCount、setHorizontalHeaderLabels等成员函数。为了解决这个问题,你可以使用QStandardItemModel作为QTableView的模型,并调用相应的成员函数进行设置。下面是一种解决方案:
QStandardItemModel* model = new QStandardItemModel();
model->setColumnCount(3); // 设置表格有3列
model->setRowCount(5); // 设置表格有5行
model->setHorizontalHeaderItem(0, new QStandardItem("Column 1"));
model->setHorizontalHeaderItem(1, new QStandardItem("Column 2"));
model->setHorizontalHeaderItem(2, new QStandardItem("Column 3"));
QTableView* tableView = new QTableView();
tableView->setModel(model);
关于如何正确显示行列,可能还需要根据具体的代码来判断。你可以在代码中找到QTableView的相关部分,检查是否有设置行列大小和表头的代码。如果有,请确保这些代码被正确执行。另外,还要确保表格的数据已经正确地添加到模型中。
希望以上解决方案能帮到你,如果还有其他问题,请随时提问。
头文件都加上