可扩展窗口

来源:互联网 发布:淘宝刷客违法吗 编辑:程序博客网 时间:2024/06/05 13:35
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QVBoxLayout>
#include <QGridLayout>
//布局管理器:QBoxLayout-基本布局管理器;QGridLayout-栅格布局管理器;
//QFormLayout-表单布局管理器;QStackedLayout-栈布局管理器
//单击UI主界面并按下Ctrl + L 快捷键;或者或单击设计器上边栏中的垂直布局按钮;
//或者在UI主界面右击,在弹出的菜单栏中选择“布局-> 垂直布局”,此时部件填满整个界面,并随窗口的变化而变化。
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    ui->setupUi(this);
    ui->textEdit->hide();   //  让文本编辑器隐藏,也可以使用setVisible(false)函数
#if 0
    //QBoxLayout 有两个子类 QHBoxLayout水平布局管理器和 QVBoxLayout垂直布局管理器。
    QVBoxLayout *layoutBox = new QVBoxLayout; //新建垂直布局管理器
    layoutBox->addWidget(ui->fontComboBox); //向布局管理器中添加部件
    //addWidget向布局管理器的末尾添加部件,insertWidget可以实现向指定位置添加部件。
    layoutBox->addWidget(ui->textEdit);
    layoutBox->setSpacing(50); //设置部件间的间隔
    layoutBox->setContentsMargins(0,0,50,100);
    //设置部件管理器到边界的距离,4个参数顺序为左,上,右,下。
    setLayout(layoutBox); //将这个部件设置为MyWidget类的布局
#endif
#if 0
    //QGridLayout-栅格布局管理器
    QGridLayout *layoutGrid = new QGridLayout;
    //添加部件,从第0行0列开始(起始位置),占据1行2列(占据的空间大小)
    layoutGrid->addWidget(ui->fontComboBox,0,0,1,2);
    //添加部件,从第0行2列开始,占据1行1列
    layoutGrid->addWidget(ui->pushButton,0,2,1,1);
    //fontComboBox部件和pushbutton部件的长度是2:1
    //添加部件,从第1行0列开始,占据1行3列
    layoutGrid->addWidget(ui->textEdit,1,0,1,3);
    setLayout(layoutGrid);
#endif
#if 1
    //QFormLayout-表单布局管理器,用来管理表格的输入部件及其相关的标签,左边是一些标签,右边是一些输入部件。
    QFormLayout *layoutForm = new QFormLayout;
    QLineEdit *name = new QLineEdit;
    QLineEdit *sex = new QLineEdit;
    QLineEdit *age = new QLineEdit;
    QLineEdit *mail = new QLineEdit;
    layoutForm->addRow("Name",name);
    layoutForm->addRow("Sex",sex);
    layoutForm->addRow("Age",age);
    layoutForm->addRow("Mail",mail);
    setLayout(layoutForm);
#endif
}
MyWidget::~MyWidget()
{
    delete ui;
}
void MyWidget::on_pushButton_toggled(bool checked)  //显示或隐藏窗口按钮
{
    ui->textEdit->setVisible(checked);  //  设置文本编辑器的显示或隐藏
    if (checked)
        ui->pushButton->setText(tr("隐藏可扩展窗口"));
    else
        ui->pushButton->setText(tr("显示可扩展窗口"));

}

//对于性别后面的输入框,其layoutFieldGrowthPolicy属性,选择ExpandingFieldGrow选项,输入框变窄更美观。


    

     

                                             
0 0
原创粉丝点击