可擴展窗口

#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選項,輸入框變窄更美觀。


    

     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章