QTextCharFormat
을 사용하여 링크 스타일을 지정하고 QTextBrowser
에 삽입하면이 링크를 클릭하면 점선으로 된 윤곽선이 표시됩니다 (이것이 초점 스타일이라고 생각합니다). 클릭하면이 점들을 어떻게 제거 할 수 있습니까?QTextBrowser에서 점선으로 표시된 윤곽선을 제거하는 방법은 무엇입니까?
0
A
답변
0
옵션 당신이 QTextBrowser
전혀 초점을 얻을하지 않으려면
은, 가장 단순한 한 줄 솔루션이 focusPolicy
설정하는 것입니다 A :이 것을
textBrowser->setFocusPolicy(Qt::NoFocus);
공지 사항 다소 잔인한 접근 방식이지만 키보드 탐색을 모두 막을 수 있습니다. 이 점에서 포커스 정책을 Qt::TabFocus
으로 설정하는 것이 훨씬 더 좋지만 QTextBrowser
에 포커스가있을 때 포커스 사각형이 나타나지 않도록하지는 않습니다.
옵션 B
다른 방법은 포커스 표시기의 모양을 변경할 사용자 정의, 또는 오히려 프록시 스타일을 사용하는 것입니다.
#include <QProxyStyle>
class MyProxyStyle : public QProxyStyle
{
public:
int styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
{
if (hint == SH_TextControl_FocusIndicatorTextCharFormat)
return false;
return QProxyStyle::styleHint(hint, option, widget, returnData);
}
};
다음 : 당신이 후드 아래에 어떻게 작동하는지 볼 구현 세부 사항에 관심이 있다면
textBrowser->setStyle(new MyProxyStyle);
이 QWidgetTextControl::getPaintContext() 및 QCommonStyle::styleHint()를 참조하십시오. 요컨대, 반환 데이터에서 원하는 텍스트 형식을 설정할 수있는 스타일에서 원하는 모양을 쿼리합니다.