QT 界面日志功能实现

1.首先使用tablewidget,初始化

void MainWindow::initLogReList()
{
    ui->tableWidget->setColumnCount(3);   //设置列数
    //ui->tableWidget->setRowCount(10);     //设置行数
    ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);

    //设置表头
    QStringList header1;
    header1<<QStringLiteral("操作时间")<<QStringLiteral("级别")<<QStringLiteral("操作信息");
    ui->tableWidget->setHorizontalHeaderLabels(header1);

    ui->tableWidget->horizontalHeader()->setFixedHeight(23); //设置表头的高度
    QFont font1;
    font1.setBold(true);
    ui->tableWidget->horizontalHeader()->setFont(font1);//设置表头字体加粗
    //设置列宽可拖动
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
    ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Interactive);
    //设置table的水平滚动条
    ui->tableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

    //设置列宽
    ui->tableWidget->horizontalHeader()->resizeSection(0, 100); //设置表头第1列的宽度
    ui->tableWidget->horizontalHeader()->resizeSection(1, 80); //设置表头第2列的宽度
    ui->tableWidget->horizontalHeader()->resizeSection(2, 200); //设置表头第3列的宽度

    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);//最后一格靠边
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(0,QHeaderView::ResizeToContents);//列宽自适应内容
    //ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);

    //ui->tableWidget->verticalHeader()->hide();
    ui->tableWidget->verticalHeader()->setDefaultSectionSize(20); //设置每行高度
    //ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//使表头列完全填充并平分
    //ui->tableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);//使表头行完全填充并平分
    //ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);          //不能对表格内容进行修改
    ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);         //整行选择,设置选择行为时每次选择一行
    ui->tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);      //按下ctrl和shift后可以选择多行
    //ui->tableWidget->setSelectionMode(QAbstractItemView::ContiguousSelection);     //按下shift后可以选择多行
    //ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);         //只能选择一行
    //ui->tableWidget->setSelectionMode(QAbstractItemView::MultiSelection);           //可以选择多行
    //ui->tableWidget->resizeColumnsToContents(); //根据内容调整列宽
    //for (int i=0; i<23; i++)
    //{
    //	ui->tableWidget->horizontalHeader()->setSectionResizeMode(i, QHeaderView::ResizeToContents); //第i列的长度与内容匹配
    //}
    //点击表时不对表头行光亮(获取焦点)解决表头出现塌陷的问题,如颜色变化,字体变粗等
    ui->tableWidget->horizontalHeader()->setHighlightSections(false);
    ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

}

2.然后写接口插数据

void MainWindow::slot_insertLogReList(QString op_info, QString op_time, QString op_level)
{
    //QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")
    int curRow = 0;
    ui->tableWidget->insertRow(curRow);
    ui->tableWidget->setItem(curRow,0,new QTableWidgetItem(op_time));
    ui->tableWidget->setItem(curRow,1,new QTableWidgetItem(op_level));
    ui->tableWidget->setItem(curRow,2,new QTableWidgetItem(op_info));

    ui->tableWidget->item(curRow,0)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);//内容居中
    ui->tableWidget->item(curRow,1)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    ui->tableWidget->item(curRow,2)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);

}

虽然简单,但是只有自己动手下次使用才会有思路。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老赵的博客

叮咚,你的赏钱已到账,嘿嘿嘿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值