Qt——窗口布局


Layouts


窗口布局类

  • QBoxLayout
    分为VerticalHorizontal,其属性如下:
    Qt——窗口布局_第1张图片
  • QGridLayout
    将空间划分为行和列,进行布局
    Qt——窗口布局_第2张图片Qt——窗口布局_第3张图片

上面图片的属性含义如下

属性 含义 备注
layoutLeftMargin 整体格子左边裕量
layoutHorizontalSpacing 部件到格子边缘的间距 默认为6
layoutRowStretch 水平比例 试了好像效果,还没弄明白
layoutRowMinimumHeight 行最小高度 效果如图所示
layoutSizeConstraint 大小约束条件 有几个枚举参数

而代码模式可以设计更加复杂的UI,以后深入学习

//创建栅格,不用加入父窗口,会自动加到当前窗口上
QGridLayout *layout = new QGridLayout;
//添加部件fontComboBox,从0行2列开始,占据1行2列
layout->addWidget(ui->fontComboBox,0,2,1,2);
//最后设置下界面
setLayout(layout);
  • QFormLayout
    – 形成格式为:左边标签,右边部件
    – 将Form Layout拖入到界面中,双击可以加入新的布局
    – 而如果自己加了标签和控件的话,需要先点击上方的Edit Buddies进行标签和空间的关联,否则对标签用(&N)这样是无效的

在标签中可以设置伙伴关系
(&N) ——> Alt+N


设置部件大小


继承QWidget类都有两个属性:大小提示sizeHint和最小大小提示minimumSizeHint
Qt——窗口布局_第4张图片


可拓展窗口


  • 拖入一个按钮,在属性栏中选中checkable。对于checked,如果不选,第一次按在槽函数中就会返回true,反之为false
    Qt——窗口布局_第5张图片
  • 设置槽的信号为toggled(bool),进入槽函数进行设置
void TextFinder::on_pushButton_2_toggled(bool checked)
{
    ui->textEdit->setVisible(!checked);
    qDebug() << "checked: " << checked;
    if(checked) ui->pushButton_2->setText(tr("显示文本"));
    else ui->pushButton_2->setText(tr("隐藏文本"));
    
}
  • 设置主窗体布局中的大小格式为SetFixedSize,否则收缩窗口的时候窗口大小不变会让布局乱了

你可能感兴趣的:(Qt学习入门)