Qt学习笔记5 布局----- 各种布局、部件大小、可扩展窗口、分裂器、伙伴、Tab键顺序、定位器

版权声明:如果喜欢的话,请点击一波关注把,谢谢你,么么哒!转载留名即可 ^_^ https://blog.csdn.net/qq_33375598/article/details/89371126

 

1,常用布局

1)基本布局管理器【QHBoxLayout】

使子部件在水平或者垂直方向排成一列

2)栅格布局管理器【QGridLayout】

将所有的空间分割成一些行和列,行和列的交叉处形成单元格,然后将部件放入一个确定的单元格中。

3)窗体布局管理器【QFormLayout】

管理表单的输入部件以及与它们相关的标签。

4)综合使用布局管理器

 

2,设置部件大小

1)大小提示(setHint),最小大小提示(minimumSizeHint)

setHint:保存部件的建议大小,不同部件,拥有不同的setHint

minimumSizeHint:保存建议的最小大小提示

如果使用setMinimumSize()设置了大小,最小大小提示将会被忽略。

 

大小策略(sizePolicy)【保存了部件的默认布局行为】:在水平和垂直方向起作用,

setHint设置为100后,高度并没有达到100,但是将设置setType的Expanding改为Fixed,马上增高了,现在的实际高度才是setHint的高度。

 

2)伸缩因子 (stretch factor)

horizontalLayout设置为(2,1),那么它们的比列为2:1

layoutSizeContraint:约束窗口大小,只对顶级布局管理器有用,其他子部件没有用。

 

3,可扩展窗口

一个窗口的很多选项是扩充的,只有在必要的时候才显示出来,这时就可以使用一个按钮来显示或者隐藏多余的内容。

先讲文本框隐藏:

    ui->textEdit->hide();

把button的选择taggled(bool)的槽信号,

定义其按钮作用:

void mylayout::on_pushButton_toggled(bool checked)
{
    ui->textEdit->setVisible(checked);
    if(checked) ui->pushButton->setText(tr("隐藏可扩展窗口"));
    else ui->pushButton->setText(tr("显示可扩展窗口"));
}

 

 

4,分裂器(QSplitter)

分类器拥有QWidget的特性,是可见的,而且可以像QFrame一样设置边框。

包含在其中的部件,可以随着分类器的大小变换而变化的。

eg,一个按钮放在布局管理器中,它的垂直方向默认是不会被拉伸的,但是放到分裂器中就可以被拉伸。

应用:

同时选择四个button,然后右键,选择布局-使用分裂器水平布局;

效果图

 

5,伙伴

为了方便定位,QLabel提供了一个有用的机制,就是提供助记符来定位键盘焦点到对应的部件上,而这个部件就叫QLabel的伙伴。

助记符:加速符。

使用:

使用英文标签时,在字符串的一个字母前添加“&”符号,就可以指定这个标签的加速键是Alt+  这个字母;

对于中文,需要在小括号中指定一个加速字母,eg(&N)

 操作:

点击编辑伙伴图标进入伙伴设计模式(有一点像书签🔖一样的图标),

分别将各个标签与它们后面的部件关联起来。

6,设置Tab键顺序

 点击编辑Tal图标进入伙伴设计模式(写着123的),

点击这些数字,就可以更改顺序。

等价于在MyWidget类的构造函数中使用如下代码:

MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);
//关键代码
    setTabOrder(ui->pushButton,ui->checkBox);
}

7,使用定位器

Mac是command+K 

windows是control+K

使用方法:“前缀符号+空格+要定位的内容”

eg.打开定位器后

输入l 8   (第一个是英文字母l和空格和8) ;按下会车就会跳转到编辑模式的第8行

 

没有更多推荐了,返回首页