找回密码
 立即注册
收起左侧

水平布局管理器

4
回复
8314
查看
[复制链接]
累计签到:108 天
连续签到:1 天
来源: 2015-1-31 23:25:07 显示全部楼层 |阅读模式
1Qter豆
在水平布局管理器中,可以按照一定的比例添加部件吗?
QBoxLayout中有这么一个函数void QBoxLayout::insertWidget ( int index, QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 ),这个函数的第三个参数是不是伸缩因子的意思?怎么使用这个函数?
如何实现途中红圈部分??
求教求教


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

例如: QHBoxLayout *layout = new QHBoxLayout(); layout->addWidget(ui->label, 1); layout->addWidget(ui->comboBox, 5); layout->addWidget(ui->pushButton, 1); ui->centralWidget->setLayout(layout); 不过部件的最终大小,还有部件的最小大小有关
回复

使用道具 举报

累计签到:108 天
连续签到:1 天
2015-2-1 15:52:49 显示全部楼层
添加布局到widgets时,布局过程执行如下:

1. 所有widgets将根据它们的 QWidget::sizePolicy() and QWidget::sizeHint()首先分配一些空间。

2. 如果有widgets设置了大于0的拉伸系数,接下来它们将按照拉伸系数的比例来分配空间。

3. 如果有widgets设置的拉伸系数是0,它将在没有其他widgets需要空间时获取更多空间。其中,带Expanding大小策略的widget将首先获得空间。

4. 所有分配了小于最小空间(或者设置了最小的size hint)的widget将按要求分配最小空间。(在拉伸系数成为决定因子时,widgets没必要再用最小值或者最小hint)。

5. 任何分配了大于最大空间的widget将按要求分配最大空间。(拉伸系数起着决定作用)


怎么修改它们的 QWidget::sizePolicy() and QWidget::sizeHint()??因为部件会首先根据这个来分配空间然后才会根据伸缩因子来分配
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2015-1-31 23:25:08 显示全部楼层
例如:
    QHBoxLayout *layout = new QHBoxLayout();
    layout->addWidget(ui->label, 1);
    layout->addWidget(ui->comboBox, 5);
    layout->addWidget(ui->pushButton, 1);
    ui->centralWidget->setLayout(layout);

不过部件的最终大小,还有部件的最小大小有关
回复

使用道具 举报

累计签到:108 天
连续签到:1 天
2015-2-1 14:49:05 显示全部楼层
yafeilinux 发表于 2015-2-1 14:13
例如:
    QHBoxLayout *layout = new QHBoxLayout();
    layout->addWidget(ui->label, 1);

这个意思是在水平布局管理器中七分之一的label,七分之五的combobox,七分之一的button吗??
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2015-2-2 23:27:51 显示全部楼层
xiongxiong 发表于 2015-2-1 15:52
添加布局到widgets时,布局过程执行如下:

1. 所有widgets将根据它们的 QWidget::sizePolicy() and QWidge ...

setSizePolicy ( QSizePolicy );
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了