QProgressBar for Macintosh StyleSheet format özelliğini desteklemediğinden, çapraz platform desteğini yapmak için QLabel ile ikinci bir katman ekleyebilirsiniz.
// init progress text label
if (progressBar->isTextVisible())
{
progressBar->setTextVisible(false); // prevent dublicate
QHBoxLayout *layout = new QHBoxLayout(progressBar);
QLabel *overlay = new QLabel();
overlay->setAlignment(Qt::AlignCenter);
overlay->setText("");
layout->addWidget(overlay);
layout->setContentsMargins(0,0,0,0);
connect(progressBar, SIGNAL(valueChanged(int)), this, SLOT(progressLabelUpdate()));
}
void MainWindow::progressLabelUpdate()
{
if (QProgressBar* progressBar = qobject_cast<QProgressBar*>(sender()))
{
QString text = progressBar->format();
int precent = 0;
if (progressBar->maximum()>0)
precent = 100 * progressBar->value()/progressBar->maximum();
text.replace("%p", QString::number(precent));
text.replace("%v", QString::number(progressBar->value()));
QLabel *label = progressBar->findChild<QLabel *>();
if (label)
label->setText(text);
}
}
Sanırım kendimi yanlış anlattım (eğer öyleyse, üzgünüm.) Çubuğa daha fazla metin eklemek istiyorum. Sadece yüzdesini gösterdiğinden. – Kazuma
edited ......... –
QProgressbar'da Mac-OSX metni üzerinde imkansız görünüyor. – TimZaman