在Qt for IOS中,用QVBoxLayout对QLabel、QPushButton进行布局时,发现这两种控件类型无法对齐并且还有部分重叠的现象,看上去很不协调:
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QWidget widget;
QVBoxLayout *layout = new QVBoxLayout;
layout->setSpacing(0);
QLabel* lbl = new QLabel; QPushButton *btn1 = new QPushButton;
QPushButton *btn2 = new MyButton;
layout->addWidget(btn1);layout->addWidget(lbl);
layout->addWidget(btn2);
widget.setLayout(layout);
widget.show();
return app.exec();
}
这样在MAC上显示的QLabel与两个按钮无法对齐、两个按钮有重叠现象,解决:
这是由于QLayout在计算控件尺寸的时候出现错误,也算是一个小小的bug;你需要将控件的属性设置为用户自定义控件范围,eg:lbl=>setAttribute(Qt::WA_LayoutUsesWidgetRect)即可.