三列布局中有一列高度固定

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>三列布局中有一列内容固定</title>
<style type="text/css">
.main{
 width:450px;
 background:#C3C;
 height:auto;
 text-align:center;
 }
.content{
 float:left;
 width:150px;
 
 background:#CC9;
 }
.center{
 float:right;
 position:relative;
 margin-right:-150px;
 width:150px;
 background:#C90;
 
 } 
.left{
 float:left;
 width:150px;
 
 margin-left:-150px;
 position:relative;
 background:#CC9;
 color:#FFF;
 }
.middle{
 float:right;
 width:150px;
 
 
 }
.right{
 float:right;
 width:150px;} 
.clear{
 clear:both;
 }   
  
</style>
</head>

<body>
<div class="main">
<div class="content">
<div class="center">
<div class="left">
 left 可变内容部分<br/>

</div>
<div class="middle">center 可变部分<br/>可变内容部分<br/>可变内容部分<br/>可变内容部分<br/>可变内容部分<br/>可变内容部分<br/>可变内容部分<br/>可变内容部分<br/>可变内容部分<br/>
</div>
 </div>

</div>

<div class="right">right 固定部分</div>
<div class="clear">
</div>
</div>

</body>
</html>

 

1.左边高度变化

2.中间~~

3.右边内容变化

在Qt的珊格布局(QGridLayout)中,通常情况下各个元素的大小会根据其内容和布局的需要自动调整。如果你想要固定某一行或某一列的大小,可以使用QSpacerItem来创建一个弹簧空间,并将它放置在你希望固定的行或列中。弹簧空间会根据可用空间进行扩展或收缩,从而保持该行或列的大小不变。具体方法如下: 1. 创建一个QSpacerItem实例,并指定其在布局中的大小。这个大小就是你希望固定的行或列的大小。 2. 将这个QSpacerItem实例添加到QGridLayout中的适当位置。 以下是一个简单的示例代码: ```cpp #include <QApplication> #include <QGridLayout> #include <QWidget> #include <QSpacerItem> #include <QSizePolicy> int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget window; QGridLayout *layout = new QGridLayout(&window); // 添加一些控件来构成珊格布局 for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { layout->addWidget(new QLabel(QString("Row %1, Column %2").arg(i+1).arg(j+1)), i, j); } } // 固定第一行的高度 QSpacerItem *rowSpacer = new QSpacerItem(1, 50, QSizePolicy::Minimum, QSizePolicy::Fixed); layout->addItem(rowSpacer, 0, 0, 1, 3); // 在第一行的三个单元格中添加弹簧空间 // 固定一列的宽度 QSpacerItem *columnSpacer = new QSpacerItem(50, 1, QSizePolicy::Fixed, QSizePolicy::Minimum); layout->addItem(columnSpacer, 0, 0); // 在第一列的第一个单元格中添加弹簧空间 window.setLayout(layout); window.show(); return a.exec(); } ``` 在这个例子中,我们创建了一个3x3的珊格布局,并且固定了第一行和第一列的大小。行中的弹簧空间高度固定为50像素,列中的弹簧空间宽度固定为50像素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值