QT 项目改名
1、build -> clean project(构建-清理项目XXX)
2、关闭项目
3、修改工程文件夹的名字(如果想改的话)
4、修改工程文件、工程配置文件的名字,也即.pro和.pro.user这两个文件的名字(如果想改的话)
5、QT打开项目,进入.pro工程文件,修改TARGET = Test_Sldpic
6、在工程左侧工具条点击‘’项目”,修改构建目录,修改到当前工程目录对应的debug、release目录下
Tableview
qt 对话框中插入 tableview
1、将tableview控件拖入对话框中,命名tableView1
2、对话框dailog_alarm.cpp中加入#include QStandardItemModel
注:在进行表格设置时必须是“ui->tableView->setModel(model);”在前,属性具体设置在后,
反之则设置不会生效
#include <QStandardItemModel>
static QString cstr;
static QStandardItemModel* model = new QStandardItemModel();
//static QStandardItemModel* model = new QStandardItemModel;
Dialog_alarm::Dialog_alarm(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog_alarm)
{
ui->setupUi(this);
// QStandardItemModel* model = new QStandardItemModel(this);
/*设置列字段名*/
model->setColumnCount(3);
model->setHeaderData(0,Qt::Horizontal, "alarm_num");
model->setHeaderData(1,Qt::Horizontal, "axis_num");
model->setHeaderData(2,Qt::Horizontal, "sys_tick");
/*设置行字段名*/
model->setRowCount(10);
/*
model->setHeaderData(0,Qt::Vertical, "0");
model->setHeaderData(1,Qt::Vertical, "1");
model->setHeaderData(2,Qt::Vertical, "2");
*/
for(int i=0;i<10;i++)
{
cstr=QString::number(i);
model->setItem(i, 0, new QStandardItem(cstr));
cstr=QString::number(i+20);
model->setItem(i, 1, new QStandardItem(cstr));
cstr=QString::number(i+40);
model->setItem(i, 2, new QStandardItem(cstr));
}
//在进行表格设置时必须是“ui->tableView->setModel(model);”在前,属性具体设置在后
ui->tableView1->setModel(model);
ui->tableView1->setColumnWidth(0, 100); //设置列的宽度
//设置表格的单元为只读属性,即不能编辑
ui->tableView1->setEditTriggers(QAbstractItemView::NoEditTriggers);
}
void Dialog_alarm::on_pushButton_test_clicked()//修改第一行
{
/*
QList<QStandardItem*> list;
list << new QStandardItem("aa") << new QStandardItem("22") << new QStandardItem("cc");
model->insertRow(0, list); //在第0行插入一条记录
*/
int i=100;
cstr=QString::number(i);
model->setItem(0, 0, new QStandardItem(cstr));
cstr=QString::number(i+20);
model->setItem(0, 1, new QStandardItem(cstr));
cstr=QString::number(i+40);
model->setItem(0, 2, new QStandardItem(cstr));
}
通过调用QTtableView的verticalHeader()->setDefaultSectionSize(15)可以设置tableview所有行的默认行高
引用
https://blog.csdn.net/qq769651718/article/details/79357938
https://blog.csdn.net/u011199170/article/details/78028930
QT-tableview写入、获取某格内容
alarm_history=Sldpi.SLDMpi_Get_Alarm_History();
for(int i=0;i<10;i++)
{
cstr=QString::number(alarm_history.Alarm_number[i]);
model->setItem(i, 0, new QStandardItem(cstr));
cstr=QString::number(alarm_history.axis[i]);
model->setItem(i, 1, new QStandardItem(cstr));
cstr=QString::number(alarm_history.sys_tick[i]);
model->setItem(i, 2, new QStandardItem(cstr));
}
int n=tableView->currentIndex().row();//获取当前行
QString str=model.data(model.index(n,1)).toString();//第n行第1列的内容
cstr=model->data(model->index(0,0)).toString();//第0行第0列的内容
QTableView设置列宽不生效问题解析
一、问题及原因
QTableView类有一个成员方法:setColumnWidth(),显然是用来设置表格列宽的。但是,这里有个要求。所有对setColumnWidth()的调用都要放在填充数据之后。如果在设置View类的Model之前就调用该方法来设置列宽,是不会起作用的。
二、解决办法
在所有数据填充完毕之后,再调用 setColumnWidth() 设置列宽
若在 Model 之后,依然不生效,则需要在每次填充 model 时,重新设置列快!
————————————————
版权声明:本文为CSDN博主「咸鱼最牛逼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/panchang199266/article/details/108553760