第41讲 UI美化遗留问题解决
如上图所示目前记事本的雏形已现,但是还是有待优化,比如右下角的拖动问题。
解决方法:
①首先修改了Widget类的构造函数。
Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget)
{ui->setupUi(this);this->setLayout(ui->verticalLayout);ui->widgetBottom->setLayout(ui->horizontalLayout);
}
下面开始逐步讲解,在Widget构造函数当中,我们首先初始化了成员变量:
ui(new Ui::Widget)
这里为类的成员变量 ui
分配内存并进行初始化。ui
通常是一个指向特定用户界面类的指针,这个类是由 Qt 的 UI 设计工具生成的。通过初始化 ui
,可以在后续的代码中访问和操作由设计师创建的用户界面元素。
然后设置父窗口和布局:
QWidget(parent)
调用父类 QWidget
的构造函数并传入 parent
参数。这使得当前创建的 Widget
实例能够与指定的父窗口建立关系。如果有父窗口,当父窗口被销毁时,子窗口也会被自动销毁,有助于管理窗口资源和层次结构。
ui->setupUi(this)
这个函数通常由 Qt 的 UI 设计工具生成的代码调用。它负责设置用户界面,将各种界面元素(如按钮、文本框等)与对应的成员变量关联起来,并根据设计设置初始状态和属性。
this->setLayout(ui->verticalLayout)
这一行是我们自己写的,将当前窗口的布局设置为 ui->verticalLayout
。布局管理器用于自动管理窗口内的子部件的大小和位置。通过设置布局,可以确保界面元素在窗口大小变化时能够正确地调整位置和大小,提高用户界面的适应性。
ui->widgetBottom->setLayout(ui->horizontalLayout)
这一行也是我们自己写的,这里为特定的子部件 ui->widgetBottom
设置布局为 ui->horizontalLayout
。这使得该子部件内的元素能够按照水平布局进行排列和调整。
②在UI底部添加两个弹簧控件;
左侧可拉伸,右侧选择fixed锁死长度。