caiwei_cs |
2016-12-29 11:17 |
向qt的布局中添加 widget,使得布局自动增加.看了一个帖子,无法实现阿。
找到了一个帖子:
和楼主一模一样的需求。 有高手给出解决方案:http://bbs.csdn.net/topics/390291031?page=1 button->updateGeometry (); //resize(sizeHint());//这一句如果要的话程序会消失。
但是我试了一下button->updateGeometry ();并不起作用。
不知道是不是哪里不对。如果尝试可以,不知道能不能请给出完整代码,我看看是不是我哪里设置错了。
我的测试代码为:
- Widget::Widget(QWidget *parent) :
QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this);
w1 = new QWidget(this); w1->setStyleSheet("background-color:red;"); w1->setFixedSize(150,20); w2 = new QWidget(this); w2->setStyleSheet("background-color:green;"); w2->move(20,20); w2->setFixedSize(150,60); w3 = new QWidget(this); w3->setStyleSheet("background-color:yellow;"); w3->move(30,30); w3->setFixedSize(150,100);
w1->show(); w2->show(); w3->show();
wm = new QWidget(this); wm->setStyleSheet("background-color:blue;"); wm->setContentsMargins(0,0,0,0); wm->resize(w1->width()+30,w1->height()+w2->height()+w3->height()); wm->move(10,10); layoutmy = new QVBoxLayout(this); layoutmy->addWidget(w1); layoutmy->addWidget(w2); layoutmy->addWidget(w3); wm->setLayout(layoutmy); wm->show(); }
Widget::~Widget() { delete ui; }
void Widget::on_pushButton_test_clicked() { QPushButton *button = new QPushButton(this); button->setStyleSheet("background-color:white;");
int index = layoutmy->indexOf(w1); layoutmy->insertWidget(index,button); button->updateGeometry(); }
|
|