在Qt 5.7.0
中(使用Qt Creator 4.1.0
)我希望我的`QProgressBar *调整大小(当外部小部件的大小增加或减少时),而保持其宽高比。
例如,假设QProgressBar
最初具有width=60
和height=30
的矩形形状。请注意,QProgressBar
位于QFrame
QGridLayout
内。
我找到了使用QPixmap
的图像的类似方法。调查了我如何使用Qt::KeepAspectRatio
但无法找到任何示例。
更新
理想情况下,我希望进度条内的字体大小相应地使用进度条本身调整大小。
答案 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);
}