• 浅谈 Qt 布局那些事


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

    先说下GridLayout

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

    1. void QGridLayout::addWidget ( QWidget * widget, int row, int column, Qt::Alignment alignment = 0 )  
    2. void QGridLayout::addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 ) 

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

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

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

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

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

    关于addStretch()

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

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

    浅谈 Qt 布局那些事

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

  • 相关阅读:
    Javascript异步编程的4种方法
    同步编程和异步编程
    关于js 异步回调的一些方法
    array的方法 没记住的
    阮一峰关于reduce 和transduce的博客
    CSS开发小技巧
    提升自己的一个网址
    asm.js 和 Emscripten 入门教程
    Koa -- 基于 Node.js 平台的下一代 web 开发框架
    C#中使用handsonetable的一个例子
  • 原文地址:https://www.cnblogs.com/cainiaoaixuexi/p/3243300.html
Copyright © 2020-2023  润新知