zoukankan      html  css  js  c++  java
  • Qt (QGis) 中动态布局例子

    QHBoxLayout* classLayout = new QHBoxLayout;
    QLabel *label1 = new QLabel(tr("选择分类栅格图层:"));
    mInputClassCombo = new QComboBox(this);
    classLayout->addWidget(label1);
    classLayout->addWidget(mInputClassCombo);

    QHBoxLayout* outputLayout = new QHBoxLayout;
    QLabel *label2 = new QLabel(tr("输出文件:"));
    mOutputBuildingLineEdit = new QLineEdit(this);
    mOutputBrowseButton = new QPushButton(tr("..."), this);
    mOutputBrowseButton->setFixedWidth(15);
    outputLayout->addWidget(label2);
    outputLayout->addWidget(mOutputBuildingLineEdit);
    outputLayout->addWidget(mOutputBrowseButton);

    QGridLayout *pixelLayout = new QGridLayout;
    pixelLayout->setAlignment(Qt::AlignHCenter);
    QLabel *labelR = new QLabel(tr("R"));
    QLabel *labelG = new QLabel(tr("G"));
    QLabel *labelB = new QLabel(tr("B"));
    mPixel_R_LineEdit = new QLineEdit(this);
    mPixel_G_LineEdit = new QLineEdit(this);
    mPixel_B_LineEdit = new QLineEdit(this);
    pixelLayout->addWidget(labelR, 0, 0);
    pixelLayout->addWidget(mPixel_R_LineEdit, 1, 0);
    pixelLayout->addWidget(labelG, 0, 1);
    pixelLayout->addWidget(mPixel_G_LineEdit, 1, 1);
    pixelLayout->addWidget(labelB, 0, 2);
    pixelLayout->addWidget(mPixel_B_LineEdit, 1, 2);

    QHBoxLayout* operationLayout = new QHBoxLayout;
    mAddButton = new QPushButton(tr("添加"), this);
    mRemoveButton = new QPushButton(tr("删除"), this);
    operationLayout->addWidget(mAddButton);
    operationLayout->addWidget(mRemoveButton);

    setupTable();

    QHBoxLayout* executeLayout = new QHBoxLayout;
    mOkButton = new QPushButton(tr("确定"), this);
    mCancelButton = new QPushButton(tr("取消"), this);
    executeLayout->addWidget(mOkButton);
    executeLayout->addWidget(mCancelButton);

    QVBoxLayout *mainLayout = new QVBoxLayout(this);
    mainLayout->addLayout(classLayout);
    mainLayout->addLayout(outputLayout);
    mainLayout->addLayout(pixelLayout);
    mainLayout->addLayout(operationLayout);
    mainLayout->addWidget(mTableWidget);
    mainLayout->addLayout(executeLayout);


    this->setLayout(mainLayout);

    QObject::connect(mInputClassCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(on_mInputClassCombo_currentIndexChanged()));
    connect(mOutputBrowseButton, SIGNAL(clicked()), this, SLOT(on_mOutputBrowseButton_clicked()), Qt::UniqueConnection);
    connect(mAddButton, SIGNAL(clicked()), this, SLOT(on_mAddButton_clicked()), Qt::UniqueConnection);
    connect(mRemoveButton, SIGNAL(clicked()), this, SLOT(on_mRemoveButton_clicked()), Qt::UniqueConnection);
    connect(mCancelButton, SIGNAL(clicked()), this, SLOT(on_mCancelButton_clicked()), Qt::UniqueConnection);
    connect(mOkButton, SIGNAL(clicked()), this, SLOT(on_mOkButton_clicked()), Qt::UniqueConnection);

    值得注意的是“QVBoxLayout *mainLayout = new QVBoxLayout(this);” 为主布局控件,其它的布局控件和Widget控件放置在该控件中,初始化的时候不能用"this",如

    QHBoxLayout* classLayout = new QHBoxLayout;

  • 相关阅读:
    【高精度】NCPC 2014 C catalansqure
    【动态规划】【缩点】NCPC 2014 G Outing
    【KMP】【最小表示法】NCPC 2014 H clock pictures
    【图论】【宽搜】【染色】NCPC 2014 A Ades
    【模拟】NCPC 2014 E ceremony
    【模拟】NCPC 2014 D Dice Game
    【模拟】NCPC 2014 K Train passengers
    【二分】NEERC15 L Landscape Improved(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
    【模拟】NEERC15 G Generators(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
    【模拟】NEERC15 J Jump(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
  • 原文地址:https://www.cnblogs.com/loongfee/p/3103491.html
Copyright © 2011-2022 走看看