gpt4 book ai didi

python - QTreeWidget 关闭选择

转载 作者:行者123 更新时间:2023-11-28 22:07:26 25 4
gpt4 key购买 nike

默认情况下,QTreeWidget 管理行的选择(当您单击一行时它会突出显示它,当您单击另一行时它会突出显示并取消选择前一行) ,我不想要这个,也不知道如何关闭它。

最佳答案

你可以使用setSelectionMode QAbstractItemView 类(QTreeWidget 继承自该类)为组件设置无选择模式。像这样的东西(抱歉,C++ 代码):

yourtreeView->setSelectionMode(QAbstractItemView::NoSelection);

在这种情况下,项目不会被选中,但您仍然会在它们周围看到焦点矩形。要解决此问题,您可以通过调用将小部件设置为不接受焦点:

yourtreeView->setFocusPolicy(Qt::NoFocus);

如果您的树形小部件必须接受焦点但不应该绘制焦点矩形,您可以使用自定义项委托(delegate)并在绘制之前从项的状态中删除 State_HasFocus 状态。像这样:

class NoFocusDelegate : public QStyledItemDelegate
{
protected:
void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
};

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);
}

....

NoFocusDelegate* delegate = new NoFocusDelegate();
yourtreeView->setItemDelegate(delegate);

关于python - QTreeWidget 关闭选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com