调整Qt中的QProgressBar维持纵横比

时间:2016-09-22 09:14:25

标签: qt qt-creator aspect-ratio autoscaling

Qt 5.7.0中(使用Qt Creator 4.1.0)我希望我的`QProgressBar *调整大小(当外部小部件的大小增加或减少时),而保持其宽高比

例如,假设QProgressBar最初具有width=60height=30的矩形形状。请注意,QProgressBar位于QFrame QGridLayout内。

我找到了使用QPixmap的图像的类似方法。调查了我如何使用Qt::KeepAspectRatio但无法找到任何示例。

更新

理想情况下,我希望进度条内的字体大小相应地使用进度条本身调整大小。

2 个答案:

答案 0 :(得分:0)

您应该将QProgressBar放入one of the Qt's Layouts之一,例如QVBoxLayout。检查Qt Layouts Example(s)

答案 1 :(得分:0)

尝试以下内容。

过滤进度条的调整大小事件,并根据需要设置一侧的另一侧。

void MyClass::init() {
   ui->myProgressBar->installEventFilter(this);
}

bool MyClass::eventFilter(QObject * obj, QEvent * e) {
   if(e->type() == QEvent::Resize) {
      ui->myProgressBar->setFixedWidth(ui->myProgressbar->height() * 88);
      return true;
   }
   return QObject::eventFilter(obj, e);
}