Qt动态添加控件并设置大小位置等属性

606 阅读1分钟

我希望动态添加控件,并且可以自由设置位置和大小,就像ui文件中那样: image.png

嵌套结构如下:

image.png

.ui文件最终会生成cpp代码,看了下生成的界面源代码,发现只需要在new的时候指定parent即可

dockWidget = new QDockWidget(MainWindow);
        
dockWidgetContents = new QWidget();

openGLWidget = new QOpenGLWidget(dockWidgetContents);
openGLWidget->setGeometry(QRect(20, 0, 300, 200));

lineEdit = new QLineEdit(dockWidgetContents);
lineEdit->setGeometry(QRect(70, 270, 471, 81));

dockWidget->setWidget(dockWidgetContents);

百度了好多教程,上边写的都是使用layout,但是这样子会导致我无法控制位置

QWidget* widget = new QWidget();

QVBoxLayout* layout = new QVBoxLayout();
QPushButton* btn= new QPushButton();
layout->addWidget(btn);

widget->setLayout(layout);

解决问题最快的方式还是阅读源码!