假设我有一个带有多行文字的#include <stdio.h>
int main() {
int x;
int valI, i;
short valS;
long valL;
signed valSi;
unsigned valUn;
// printf("enter a num");
// scanf("%d",&x);
x = -10;
valI = x;
valS = x;
valL = x;
valSi = x;
valUn = x;
printf("\n\t%i\t%li\n",valI,sizeof(valI));
for(i = 8*sizeof(valI); i >= 0 ; i--)
{
printf("%i",(valI & (1<<i))? 1 : 0);
}
printf("\n\t%i\t%li\n",valS,sizeof(valS));
for(i = 8*sizeof(valS); i >= 0 ; i--)
{
printf("%i",(valS & (1<<i))? 1 : 0);
}
printf("\n\t%li\t%li\n",valL,sizeof(valL));
for(i = 8*sizeof(valL); i >= 0 ; i--)
{
printf("%i",(valL & (1<<i))? 1 : 0);
}
printf("\n\t%i\t%li\n",valSi,sizeof(valSi));
for(i = 8*sizeof(valSi); i >= 0 ; i--)
{
printf("%i",(valSi & (1<<i))? 1 : 0);
}
printf("\n\t%i\t%li\n",valUn,sizeof(valUn));
for(i = 8*sizeof(valUn); i >= 0 ; i--)
{
printf("%i",(valUn & (1<<i))? 1 : 0);
}
printf("\n\n");
}
;这个多行文本来自一个文本文件:我打开文本文件,一次读一行,然后将读取行放入QLabel
后跟一个&#34; \ n&#34; (CR)。
当我到达文件末尾时,我的QLabel
会显示每行的所有阅读文字行。
在读取阶段,我能够检测读取行是否包含搜索词:在这种情况下,我将整行放在粗体字符中,而所有其他行仍然没有粗体字。
我该怎么做?
答案 0 :(得分:1)
如果你的基本文字不包含html代码,你可以使用你的QLabel格式设置为RichText
label.setTextFormat(Qt::RichText);
。
这样,它会将您的文本解释为html。
使用<b></b>
围绕要突出显示的行 - 这应该可以解决问题。
除setTextFormat()
之外,您可以使用<html></html>
包围整个文字。另请参阅mightBeRichText()
文档。
尝试通过调用设置文本格式
ui->InfoTextLabel->setTextFormat(Qt::RichText);
您想要加粗的行应该被<b></b>
包围,因此您可以将其附加到文本中,如下所示:
append("<b>" + line + "</b>\n")
答案 1 :(得分:0)
详细说明,我的操作:
1)以qtextstream
打开txt文件Info.open(QIODevice::ReadOnly);
QTextStream in(&Info);
2)在每个读取行中查找搜索到的文本,并附加每行以完成QLabel的文本:
while (!line.isNull())
{
if (line.contains(mytext)
{
// do something to bold the entire line
ui->InfoTextLabel->setText(totline.append(line + "\n"));
}
}
3)最终结果:
line1
**mytext**
line3
因此,最后,三条或更多条线中只有一条必须是粗体。 我需要进一步说明。