qt中QTableWidget

#include "QtGuiApplication1.h"
#include <QComboBox>
#include <QIcon>
#include <QHBoxLayout>
#include <QLabel>
QtGuiApplication1::QtGuiApplication1(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    m_tableWidget = ui.tableWidget;

    m_tableWidget->setColumnCount(4);       //设置列数
    m_tableWidget->setColumnWidth(0, 90);   //设置第0列列宽
    m_tableWidget->setColumnWidth(1, 90);   //设置第1列列宽
    m_tableWidget->setColumnWidth(2, 90);   //设置第2列列宽
    m_tableWidget->setColumnWidth(3, 90);   //设置第3列列宽

    QStringList listHeader;
    listHeader << QStringLiteral("数学") << QStringLiteral("英语") << QStringLiteral("高数") << QStringLiteral("模电");
    m_tableWidget->setHorizontalHeaderLabels(listHeader);

    int iRow = m_tableWidget->rowCount();
    m_tableWidget->setRowCount(iRow + 2);//总行数增加1

    QFont font;
    font.setBold(true);
    m_tableWidget->horizontalHeader()->setFont(font); //设置每一列的标题字体为粗体

    m_tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择模式,选择单行

    m_tableWidget->verticalHeader()->setDefaultSectionSize(10); //设置行高

    m_tableWidget->setSelectionBehavior(QAbstractItemView::SelectColumns); //设置选择模

    m_tableWidget->setFrameShape(QFrame::NoFrame); //设置无边框

    m_tableWidget->setShowGrid(true); //设置显示格子线

    m_tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑

    m_tableWidget->setStyleSheet("selection-background-color:lightblue;"); //设置选中背景色
    m_tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:skyblue;}"); //设置表头背景色

    QTableWidgetItem* item = new QTableWidgetItem(QStringLiteral("张三"));
    m_tableWidget->setItem(1, 0, item); //添加到界面

    QComboBox* comboBox = new QComboBox;
    comboBox->insertItem(0, QStringLiteral("80"));
    comboBox->insertItem(1, QStringLiteral("90"));
    comboBox->insertItem(2, QStringLiteral("100"));
    comboBox->setCurrentIndex(0);
    m_tableWidget->setCellWidget(1, 2, comboBox);
    
    m_tableWidget->setAlternatingRowColors(true); //设置隔一行变一颜色,即:一灰一白

    QWidget* cw = new QWidget;
    QHBoxLayout* vbox = new QHBoxLayout(cw);
    QLabel* qlabel = NULL;
    for (int j = 0; j < 3; j++) { 
        qlabel = new QLabel("abc");
        vbox->addWidget(qlabel); 
    }
    m_tableWidget->setCellWidget(0, 1, cw);

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Qt Charts Overview Qt Charts用来创建各种数据图表/曲线,如下图所示。 Qt Chart...
    Alliawell阅读 12,423评论 0 0
  • “哎,要不要养个宠物啊?”地球嘟囔。 水星在书桌上奋笔疾书,头也不抬。 “养呗。”火星回头看了一眼地球,“年轻人就...
    Marvin1379阅读 3,437评论 0 0
  • 001非暴力沟通 是有思想和沟通技巧构成,让我们能够心怀善意地与他人、与自己沟通。 002用非暴力沟通化解冲突的5...
    丽华_b1e6阅读 1,664评论 0 0
  • 最后一个工作日,是一个周六,早上不知道是关掉了闹钟还是根本没听见声响,直接睡到了9点钟。 连续几天看X战警,还是喜...
    米牙不吃肉阅读 4,363评论 0 1