Qt:从QTableView删除大纲时的怪异行为

时间:2019-04-23 01:18:52

标签: c++ qt

当QTableView中的项被聚焦时,我正在尝试删除虚线轮廓。我在其他答案中发现,srand()会删除它,但是对我来说,这仅适用于奇怪的情况:

使用此样式表,轮廓被删除,背景为黄色:

outline: 0

在此样式表中,轮廓仍然显示:

tableView->setStyleSheet("QTableView::item::focus { outline: 0; background-color: yellow; } QTableView { outline: 0; }");

我要删除轮廓,并以默认颜色显示背景。但似乎,它没有选择权。 outline命令仅在特定情况下有效,我觉得这很随机。

在误解Qt或样式表方面,这是我的错误吗?还是这是已知的错误,还是新的错误?

编辑(用于理解我的意思的图像):

  1. 这是默认行为。请参阅元素1-2周围的轮廓!
    Default Behaviour

  2. 这是添加的样式tableView->setStyleSheet("QTableView::item::focus { outline: 0; } QTableView { outline: 0; }"); tableView->setStyleSheet("QTableView { outline: 0; }"); tableView->setStyleSheet("QTableView::item::focus { outline: 0; }"); tableView->setStyleSheet("QTableView::item::focus { outline: 0; background-color: yellow; }"); 。现在未显示ouline,但聚焦对象的背景为黄色:
    Working example

  3. 这是应该起作用的4个变体,但是轮廓仍然显示(轮廓围绕位置1-2的对象):
    Failing example 1
    Failing example 2 Failing example 3 Failing example 4

问题是,我不明白,为什么它以一种特定的方式起作用,而不是以另一种方式起作用? 而我该怎么做才能在不更改背景的情况下删除轮廓?

0 个答案:

没有答案