2017-12-07 3 views
1

저는 Qt 응용 프로그램을 개발 중입니다. QLabel에 단어가 모두 입력되면 하이라이트 된이 기능을 구현하려고합니다. 어떻게하는지 잘 모르겠습니다. QLabel의 텍스트를 반복하고 특정 단어의 배경색을 변경하는 방법이 있습니까?QLabel higlight가 단어를 찾았습니다

QTextEdit에서 QTextEdit::ExtraSelection을 사용하여 수행 할 수 있습니다. 그러나 QLabel에는이 방법이 없습니다. 검색 한 단어가 "나오지도"경우

그래서 예를 들어 내 QLabel이 뭔가를 얻으려면 :

enter image description here

+0

원하는 것을 얻을 수있는 예를 보여줄 수 있습니다. – eyllanesc

+0

안녕하세요 @ eyllanesc 제가 예제를 추가했습니다. 나는 그것이 무엇을 성취하려고하는지 명확히하기를 바랍니다. – madasionka

+0

@madasionka 우리는 스크린 샷이 아니라 코드 예제를 의미합니다. –

답변

2

당신은 몇 가지 스타일을 추가 할 Qt rich text을 사용할 수 있습니다 부 텍스트. 텍스트 문자열에서 직접 검색하고 일부 HTML을 삽입해야합니다. 두 개 이상의 단어를 강조 할 경우보다 구체적인 정규식을해야합니다,

QString searchedWord = "sed"; 

QString txt = lbl->text(); 
txt.replace(QRegExp("\\b" + searchedWord + "\\b"), 
      "<span style=\"background-color:yellow\">" + searchedWord + "</span>"); 
lbl->setText(txt); 

:

This is my <span style="background-color:yellow">text</span> 

은 (이미 텍스트를 포함하는) 기존의 라벨에 단어를 강조 표시합니다.