有没有办法可以在qtablewidget中隐藏所选单元格的边框(或使边框颜色为白色).默认情况下会显示带虚线的边框..你可以帮我...
小智 13
我更喜欢这样做:
ui->tableWidget->setFocusPolicy(Qt::NoFocus);
Run Code Online (Sandbox Code Playgroud)
您还可以使用设计选项卡更改焦点策略.
ser*_*nko 12
看起来这个你想要隐藏的选定单元格周围的虚线边框是一个焦点矩形.任何给定的单元格都可以具有焦点而不能同时选择,反之亦然.如果您希望此边框不被绘制,请使用项目委托.在那里,您可以在绘制之前从项目的状态中删除State_HasFocus样式.请参阅下面的示例,如何执行此操作,它是c ++,让我知道如果你有麻烦将它转换为python
// custom item delegate class
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);
}
...
// set the item delegate to your table widget
ui->tableView->setItemDelegate(new NoFocusDelegate());
Run Code Online (Sandbox Code Playgroud)
希望这有帮助,问候