QT:QProgressBar 显示文本

11

我有一个QProgressBar实例,它处于跑马灯模式(最大值=最小值=0)。

现在我想在进度条上添加一些文本,比如“加载中...”

文档中说:

  

请注意,文本是否绘制取决于样式。当前,CDE、CleanLooks、Motif和Plastique会绘制文本,而Mac、Windows和WindowsXP样式不会。

我该怎么办?

这是我正在使用的代码(因为文本根本看不到而无法工作):

progressBar.setVisible(true);
progressBar.setMaximum(0);
progressBar.setMinimum(0);
progressBar.setTextVisible(true);
progressBar.setFormat("Loading...");
progressBar.setAlignment(Qt::AlignCenter);
3个回答

10

如果您想在进度条上添加文本,您需要将文本与默认右侧的对齐方式对齐。以下代码模板将适用于您,假设progressBar是您的实例

  progressBar->setTextVisible(true);
  progressBar->setFormat("Loading...");
  progressBar->setAlignment(Qt::AlignCenter);  // This will add text over Progress Bar 

请查看我所使用的代码编辑。到目前为止,文本还不可见。 - Stephen H. Anderson
2
@StephenH.Anderson:基本上,该属性用于显示进度,但是当设置progressBar.setMaximum(0);时,QT会将其禁用。如果您注释掉此行,则它将正常工作。 - Amol Saindane
@StephenH.Anderson:如果你想展示加载动画窗体,那么需要在qrc中添加相应的文件并自定义ProgressBar - Amol Saindane
@StephenH.Anderson:最简单的方法之一是使用“QLable”,它将在进度条上显示文本,但您需要设置相应的几何结构。 - Amol Saindane

6

enter image description here

对我来说它很有效。小部件的左下角是一个进度条。我认为你不应该将其设置为 (maximum = minimum = 0)


1

首先,您需要设置它可见:progBar->setTextVisible(true);

然后使用progBar->setFormat("Loading...");编写文本。

关于样式类型,您需要确定所需的类型并进行选择。QStyleOptionProgressbar提供了相关信息。


请查看我所使用的代码编辑。到目前为止,文本还不可见。 - Stephen H. Anderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接