学海无涯之QT 项目改名 / Tableview控件

4 篇文章 0 订阅

QT 项目改名

1、build -> clean project(构建-清理项目XXX)
2、关闭项目
3、修改工程文件夹的名字(如果想改的话)
4、修改工程文件、工程配置文件的名字,也即.pro和.pro.user这两个文件的名字(如果想改的话)
5、QT打开项目,进入.pro工程文件,修改TARGET = Test_Sldpic
6、在工程左侧工具条点击‘’项目”,修改构建目录,修改到当前工程目录对应的debug、release目录下
在这里插入图片描述

QT修改工程名的步骤

Qt工程名称和文件名称的修改

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值