如何去除QTableWidget表格选中Item时的虚线框?
发布日期:2021-05-14 01:21:50 浏览次数:24 分类:精选文章

本文共 705 字,大约阅读时间需要 2 分钟。

为了去除QTableWidget单元格选中时的虚线框,以下方法可以有效地实现:

方法1:设置不获取焦点

调用QTableWidget的setFocusPolicy方法,设置为Qt::NoFocus:

table->setFocusPolicy(Qt::NoFocus);

这种方法简单,但可能会限制使用Tab键切换选中单元格的功能。只有当不需要焦点相关功能时,才建议使用。

方法2:使用样式和QSS

通过样式表设置表格和单元格的样式:

  • 在表格中设置样式:

    ui->tableView->setStyleSheet("QTable * {outline: none;}");
  • 为每个单元格添加样式,以处理焦点状态:

    ui->tableView->setStyleSheet("QTable * {outline: none; tap-color: #4CAF50;}");
  • 确保样式调整在焦点状态下生效,适用于自定义表格外观的情况。

    方法3:使用Qt代理

    创建一个继承自QStyledItemDelegate的代理类,重写绘制方法以去除虚线框:

    class TableCellDelegate : public QStyledItemDelegate {
    public:
    TableCellDelegate(QObject* parent) : QStyledItemDelegate(parent) {}
    void paint(QStyle* style, Q надо绘制前去掉焦点状态。
    ----
    根据具体项目需求选择合适的方法,方法2平衡了简单性和功能性,而方法3提供了更高级的定制能力。
    上一篇:使用flask提示The CSRF token is missing
    下一篇:如何设置QListWidgetItem勾选框的样式?

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月29日 19时29分58秒