本文介绍的是浅谈 Qt 布局那些事,关于布局,也为友们分享了许多,想要获得更多内容,请参考本文末尾。

Qt 布局那些事是本文介绍的内容,直接进入主题。GridLayout是一个非常强大的布局管理器,它可以实现很多复杂的布局,名字中暗示它将所有控件放置在类似网格的布局中.^__^GridLayout有两个构造函数.

先说下GridLayout

GridLayout的意思是按照网格布局,我记得这个在java中的GUI布局也有这个。比较容易理解,就好比一个一个的方格,我们先来看看Qt文档中给出的定义:

  1. voidQGridLayout::addWidget(QWidget*widget,introw,intcolumn,Qt::Alignmentalignment=0)
  2. voidQGridLayout::addWidget(QWidget*widget,intfromRow,intfromColumn,introwSpan,intcolumnSpan,Qt::Alignmentalignment=0)

***个的布局的参数的意思依次为:QGridLayoutName,行号,列号。

第二个的布局的参数的意思依次为:QGridLayoutName,行号,列号,行宽,列宽。

***,要将设置好的布局添加进去,setLayout(yourLayout);

下面是写的一个简单的小例子:

  1. QLabel*nameLabel=newQLabel(tr("Name"));
  2. QLineEdit*nameLine=newQLineEdit;
  3. QLabel*addressLabel=newQLabel(tr("Address"));
  4. QTextEdit*addressText=newQTextEdit;
  5. //布局采用gridLayout
  6. QGridLayout*mainlayout=newQGridLayout;
  7. mainlayout->addWidget(nameLabel,0,0,1,1);
  8. mainlayout->addWidget(nameLine,0,1,1,3);
  9. mainlayout->addWidget(addressLabel,1,0,3,1,Qt::AlignTop);
  10. mainlayout->addWidget(addressText,1,1,3,3);
  11. setLayout(mainlayout);

关于addStretch()

  1. QVBoxLayout*buttonLayout=newQVBoxLayout;
  2. buttonLayout->addWidget(addButton);
  3. buttonLayout->addWidget(submitButton);
  4. buttonLayout->addWidget(cancelButton);
  5. buttonLayout->addStretch();

上面这一段加不加***一句的效果如下图:

浅谈 Qt 布局那些事(qt的布局)  布局 GridLayout 第1张

小结:浅谈 Qt 布局那些事的内容介绍完了希望本文对你有所帮助!更多内容请参考编辑推荐。

转载请说明出处
知优网 » 浅谈 Qt 布局那些事(qt的布局)

发表评论

您需要后才能发表评论