QTableWidget去除表格虚线框,设置表格样式等操作

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); //设置表头不可选

猜你喜欢

转载自blog.csdn.net/lxiao428/article/details/83824930