2016-08-19 2 views
0

Я испытываю странное поведение, вызванное функцией QLineEdit's setFrame.setFrame прерывания выделение строки в QTreeWidget

В createLineEdit я называю конструктор LineEdit в ...

LineEdit* TreeWidget::createLineEdit() 
{ 
    LineEdit* l = new LineEdit; 
    item = new QTreeWidgetItem(this); 
    setItemWidget(item, 1, l); 
    addTopLevelItem(item);  
    return l; 
} 

... и снять каркас QLineEdit «s, который IST установленный по умолчанию

LineEdit::LineEdit() 
{ 
    setReadOnly(true); 
    setFrame(false); 
} 

Фрейм удаляется, как и ожидалось , но подсветка строки прерывается (см. рисунок), где находится LineEdit. Я предполагаю, что это не разыскиваемое поведение. Так это ошибка? Как я могу это исправить? Спасибо enter image description here

ответ

0

Вы видите непрозрачный виджет редактора поверх всего, что там есть. Предполагается, что это будет выглядеть по дизайну.

Если вам нужно другое поведение, вам нужно сделать прозрачный фон вашего виджета, и это будет работать только в том случае, если представление не подавляет картину фона ячейки. Я не знаю, кто это делает или нет.

+0

Эй, Куба. Еще раз оцените свой ответ. Но я не худею, что он должен выглядеть таким образом по дизайну, как вы сказали, поскольку он прозрачен перед вызовом 'setFrame (false)'. Таким образом, установка или снятие кадра, похоже, изменяет свойство фона виджета. Я не вижу никакого смысла в этом поведении. Вы? – tobilocker

+0

Также я бы нашел ваш ответ более подходящим в качестве комментария. – tobilocker

+0

«Я не вижу смысла в этом поведении». Ну, это ведет себя так, независимо от того, видите ли вы в этом смысл или нет. Каков твой вопрос? –

Смежные вопросы