QTableview 只显示横向线

#include <QApplication>

#include <QTableWidget>
#include <QPainter>
#include <QStyledItemDelegate>
#include <QHeaderView>
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<QRgb>(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();
}

转载于:https://www.cnblogs.com/wangjian8888/p/7594618.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt是Python编程语言的一个GUI库,用于创建桌面应用程序。QTableView是PyQt中用于显示和编辑表格数据的控件。在QTableView中实现分页显示可以通过以下几个步骤来完成: 1. 创建一个包含数据的QStandardItemModel对象。这个模型对象将用于存储表格数据。 2. 创建一个QTableView对象,并将之前创建的QStandardItemModel对象设置为其模型。 3. 设置QTableView的分页策略为QAbstractItemView.PaginateByRowCount,这样可以实现按行数分页显示。 4. 使用QAbstractItemModel的方法setData()来设置每个单元格的值。 5. 通过调用QTableView的setShowGrid()方法来显示网格线。 6. 创建一个QAbstractItemDelegate类的子类,并重写它的paint()和sizeHint()方法,以便在单元格中显示文本和调整单元格尺寸。 7. 设置QTableView的分页模式为QAbstractItemView.SinglePage。这样可以将表格数据分页显示在同一个页面上。 8. 使用QAbstractItemView的setPaginationRowCount()方法来设置每页显示的行数。 9. 使用QAbstractItemView的setPaginationMode()方法来设置分页模式,以在表格的底部显示分页导航栏。 10. 使用QAbstractItemView的setCurrentPage()方法来切换当前显示的页数。 11. 最后,通过在适当的时候调用QTableView的update()方法来刷新显示的表格数据。 通过以上步骤,我们就可以在PyQt中实现QTableView的分页显示功能。每页显示的行数和页数可以根据需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值