QT:QProgressBar 显示文字

Posted

技术标签:

【中文标题】QT:QProgressBar 显示文字【英文标题】:QT: QProgressBar display text 【发布时间】:2015-07-29 14:51:55 【问题描述】:

我有一个处于选取框模式的 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);

【问题讨论】:

【参考方案1】:

当您想在进度条上添加文本时,您需要将文本默认对齐在右侧。考虑到progressBar 你的instance,下面的代码模板对你有用。

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

【讨论】:

请查看我对我正在使用的代码的编辑。到目前为止,文本不可见。 @StephenH.Anderson:基本上该属性是为了显示进度,但是当输入progressBar.setMaximum(0); 时,QT 将禁用它。如果您对此行发表评论,那么它将起作用 @StephenH.Anderson:如果要显示加载动画表单,请在qrc中添加相应文件并自定义ProgressBar @StephenH.Anderson:一种最简单的方法是使用QLable,它将在进度条上显示文本,但您需要设置相应的几何图形【参考方案2】:

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

【讨论】:

【参考方案3】:

首先您必须将其设置为可见: progBar->setTextVisible(true);

然后用progBar->setFormat("Loading...");写文字

关于样式类型,您必须查看您想要或需要哪一种并选择它。看看QStyleOptionProgressbar

【讨论】:

请查看我对我正在使用的代码的编辑。到目前为止,文本不可见。

以上是关于QT:QProgressBar 显示文字的主要内容,如果未能解决你的问题,请参考以下文章

Qt QProgressBar 不确定

Qt中如何改变QProgressBar中进度条的颜色?

无法显示 QDialog/QProgressbar

Qt入门系列开发教程基础控件篇QProgressBar进度条

QT:将 QMediaPlayer 连接到 QProgressBar?

QprogressBar怎么显示读取文件进度