QTableWidget去除表格虚线框:
class NoFocusDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
NoFocusDelegate(){};
~NoFocusDelegate(){};
void NoFocusDelegate::paint(QPainter* painter, const QStyleOptionViewItem & option, const QModelIndex &index) const
{
QStyleOptionViewItem itemOption(option);
if (itemOption.state & QStyle::State_HasFocus)
{
itemOption.state = itemOption.state ^ QStyle::State_HasFocus;
}
QStyledItemDelegate::paint(painter, itemOption, index);
}
};
样式设置:
m_ui->TableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //按行选中
m_ui->TableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //选中单行
m_ui->TableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //不可编辑
m_ui->TableWidget->setItemDelegate(new NoFocusDelegate()); //设置无虚线
m_ui->TableWidget->horizontalHeader()->setHighlightSections(false); //防止表头塌陷
m_ui->TableWidget->horizontalHeader()->setFixedHeight(28); //设置表头高度
m_ui->TableWidget->horizontalHeader()->setFocusPolicy(Qt::NoFocus); //设置表头不可选