2009-09-23 2 views
31

Qt를 사용하여 응용 프로그램에 굵은 빨간색 선을 하나 작성하고 싶습니다.Qt에서 굵은 빨간색 텍스트 라벨을 만드는 방법은 무엇입니까?

는 지금까지 내가 이해, 나는 QLabel을 만들 것 , 서식있는 텍스트에의에 textFormat를 설정하고 그것을 표시하는 서식있는 텍스트 문자열을 제공 :

QLabel *warning = new QLabel; 
warning->setTextFormat(Qt::RichText); 
warning->setText("{\\rtf1\\ansi\\ansicpg1252 {\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;} {\\colortbl;\\red255\\green0\\blue0;} \\f0 \\cf0 this is bold red text}"); 

내가 서식있는 텍스트 편집기에서이 서식있는 텍스트 문자열을 테스트를 그리고 그것은 잘 표시됩니다.

그러나 Qt는 "this is bold red text"대신에 모든 중괄호, 키워드 및 백 슬래시를 사용하여 전체 문자열을 표시합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

도움 주셔서 감사합니다.

답변

52

HTML 형식을 사용해보십시오 : <b><font... etc </b>.

Qt는 디자이너가 이런 식으로 작업을 수행합니다 <span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>

+11

QLabel의 textFormat 속성을 Qt :: RichText로 설정해야 할 수도 있습니다. – dwj

3

settext 함수를 사용하여 프로그래밍 방식으로도이를 수행 할 수 있습니다. 다음과 같이 입력하십시오.

QString labelText = "<P><b><i><FONT COLOR='#ff0000' FONT SIZE = 4>"; 
labelText .append(Text what u want to display); 
labelText .append("</i></b></P></br>"); 
QLabel label->setText(labelText); 

한 줄로 입력 할 수도 있습니다.

12

당신은 Qt StyleSheets를 사용하고 Qt는이 QWidget 유도 된 클래스에 대한 대부분의 CSS 스타일을 지원 QLabel

warning->setStyleSheet("font-weight: bold; color: red"); 

styleSheet 속성을 설정할 수 있습니다. 이 기능을 사용하려면 텍스트 형식을 Qt::RichText으로 설정할 필요가 없습니다.

+0

고마워요. 그게 나를 위해 일했다 :) –

관련 문제