广州房地产网站建设,上海多语种建站,网站制作的服务机构,泰州东方医院男科目录
0.背景
1.详细代码 0.背景 项目需要#xff0c;我有一个自定义的类Steer_Electrode_Table#xff0c;是一个QTableView#xff1b; 记录一下QTableView修改前后的样式#xff0c;仅供参考 看一下我修改前后的样式对比 1.详细代码
void Steer_Electrode_Table::init…目录
0.背景
1.详细代码 0.背景 项目需要我有一个自定义的类Steer_Electrode_Table是一个QTableView 记录一下QTableView修改前后的样式仅供参考 看一下我修改前后的样式对比 1.详细代码
void Steer_Electrode_Table::initTable() {// 设置模型setModel(m_model);//.h定义QStandardItemModel* m_model;// 设置表头QStringList headers;headers 序号 电极名称 电极型号 宏触点数量 微触点数量 植入区域 操作;m_model-setHorizontalHeaderLabels(headers);// 隐藏垂直表头verticalHeader()-setVisible(false);// 设置选择行为setSelectionBehavior(QAbstractItemView::SelectRows);setSelectionMode(QAbstractItemView::SingleSelection);// 设置每一列固定宽度setColumnWidth(0, 56);setColumnWidth(1, 80);setColumnWidth(2, 184);setColumnWidth(3, 84);setColumnWidth(4, 84);setColumnWidth(5, 450); setColumnWidth(6, 72);horizontalHeader()-setStretchLastSection(false);//不自动拉伸最后一列//表格样式// 设置表格样式this-setStyleSheet(QTableView { background: transparent; font-size: 14px; font-family: Microsoft YaHei; border: none; outline: none;}QTableView::item { border:0px solid rgb(0,0,0); border-bottom:2px solid #272727;//表格行与行之间的间隔线 padding: 5px; background: #424242;}QTableView::item:selected { background: #7A9165; color: #FFFFFF; border-bottom: 2px solid #272727 !important;//表格行与行之间的间隔线}QHeaderView { background-color: transparent;}QHeaderView::section { background-color: #343434; color: #b8b8b8; font-size: 14px; font-family: Microsoft YaHei; padding: 5px; border: none; border-bottom: 2px solid #272727;//表头与表格之间的横线});// 其他非样式表设置this-setShowGrid(false); // 彻底关闭网格线绘制用于隐藏列间隔线this-setFocusPolicy(Qt::NoFocus);this-horizontalHeader()-setHighlightSections(false); // 选中行时表头不高亮this-setEditTriggers(QAbstractItemView::NoEditTriggers); // 禁止编辑// 设置高度this-verticalHeader()-setDefaultSectionSize(48); // 行高this-horizontalHeader()-setFixedHeight(48); // 表头高度
}
表格文字居中我是在另一个函数中写的
QStandardItem *Steer_Electrode_Table::setNameItem(const QString text)
{QStandardItem* item new QStandardItem(text);item-setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); // 居中return item;
}//点击某按钮触发增加一行的操作
void Steer_Electrode_Table::addRow(const QString name, const QString model, int macroCount, int microCount, const QString region) {int row m_model-rowCount();// 添加行数据m_model-insertRow(row);// 序号列,从1开始QStandardItem* indexItem new QStandardItem(QString::number(row 1));indexItem-setTextAlignment(Qt::AlignCenter);indexItem-setEditable(false);m_model-setItem(row, 0, indexItem);// 其他数据列调用setNameItem使文字居中m_model-setItem(row, 1, setNameItem(name));m_model-setItem(row, 2, setNameItem(model));m_model-setItem(row, 3, setNameItem(QString::number(macroCount)));m_model-setItem(row, 4, setNameItem(QString::number(microCount)));m_model-setItem(row, 5, setNameItem(region));// 操作按钮列setIndexWidget(m_model-index(row, 6), createButtonWidget());
}
参考
qt中tableWidget中只有行线没有列线_qt tablewidget 设置表格线-CSDN博客 因为有一些自定义的操作所以没有附上全部代码主要还是以参考表格样式为主有什么问题可以评论区或私信看到都会回
--END--