我正在状态栏中显示进度条,但它并没有真正对齐。如果可能的话,我希望它显示中心对齐,或者至少在左边有一些边距,我附上快照。
我遇到的第二个问题是我希望它显示文字,但文字没有显示。
_progressBar = new QProgressBar(this);
_progressBar->setRange(0, 0);
_progressBar->setTextVisible(true);
_progressBar->setFormat("Connecting");
ui->statusBar->addPermanentWidget( _progressBar, 2 );
因为我们在它,所以stretch参数(在ctor中)的默认值为0,但它并没有真正说出它可能具有的其他值。 0
产生最短的大小和任何其他大于0的值我尝试给出了最大值。中间没有任何东西。我尝试修复stretch
值的问题,但没有成功。
答案 0 :(得分:3)
第一期:
如果要在进度条左侧添加一些空格,可以使用QSpacerItem
。将此QSpacerItem
和QProgressBar
换成QWidget
,然后在状态栏中添加此QWidget
:
QProgressBar * _progressBar = new QProgressBar();
_progressBar->setRange(1, 10);
_progressBar->setValue(2);
_progressBar->setTextVisible(true);
_progressBar->setFormat("Connecting");
QWidget * w = new QWidget;
QHBoxLayout * _hlayout = new QHBoxLayout();
_hlayout->addSpacerItem(new QSpacerItem(40,1));
_hlayout->addWidget(_progressBar);
w->setLayout(_hlayout);
ui->statusBar->addPermanentWidget(w, 2);
。
第二期:
一旦您使用指定范围内的值调用QProgressBar::setValue
,您的文本就会显示:
QProgressBar * _progressBar = new QProgressBar();
_progressBar->setRange(0, 100);
_progressBar->setValue(10);
_progressBar->setTextVisible(true);
_progressBar->setFormat("Connecting");
ui->statusBar->addPermanentWidget( _progressBar, 2 );
顺便说一下,栏右边的空边是文字显示的位置
如果您想要删除该空格,可以添加_progressBar->setAlignment(Qt::AlignCenter);
以使文字位于QProgressBar
上方: