QTableview 只显示横向线

您所在的位置:网站首页 qtableview网格线颜色 QTableview 只显示横向线

QTableview 只显示横向线

2023-12-02 07:52| 来源: 网络整理| 查看: 265

#include 

#include #include #include #include class QLineDelegate : public QStyledItemDelegate { public: QLineDelegate(QTableView* tableView); protected: void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const; private: QPen pen; QTableView* view; }; QLineDelegate::QLineDelegate(QTableView* tableView) { int gridHint = tableView->style()->styleHint(QStyle::SH_Table_GridLineColor, new QStyleOptionViewItemV4()); QColor gridColor = static_cast(gridHint); pen = QPen(gridColor, 0, tableView->gridStyle()); view = tableView; } void QLineDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option,const QModelIndex& index)const { QStyledItemDelegate::paint(painter, option, index); QPen oldPen = painter->pen(); painter->setPen(pen); //painter->drawLine(option.rect.topRight(), option.rect.bottomRight()); painter->drawLine(option.rect.bottomLeft(), option.rect.bottomRight()); painter->setPen(oldPen); } class QLineTableWidget:public QTableWidget { public: QLineTableWidget(); }; QLineTableWidget::QLineTableWidget() { setStyleSheet("QTableView::Item{selection-">); setStyleSheet("QTableView::Item{">); verticalHeader()->setVisible(false); horizontalHeader()->setVisible(true); setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::SingleSelection); setEditTriggers(QTableView::NoEditTriggers); setColumnCount(3); setRowCount(4); setShowGrid(false); setItemDelegate(new QLineDelegate(this)); setCurrentCell(-1,-1); } int main(int argc,char **argv) { QApplication a(argc,argv); QLineTableWidget widget; widget.show(); return a.exec(); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3