私の問題をより明確に説明するために、いくつかのメモを含むスクリーンショットを作成しました。
QGroupBox レイアウト形式の問題
ご覧のとおりQVBoxLayout
、アプリのメイン レイアウト用に 1 つの大きなレイアウトがあり、その中にQwidget
、次に 、QGridLayout
そしてQGridLayout
再び を配置しました。この最後の oneQGridLayout
の中に 2 つQGroupBoxes
、1 つは位置 0,0 に、もう 1 つは位置 0,1 に配置しました。それぞれQGroupBox
に独自の内部レイアウトがあり、両方ともQGridLayout
タイプがあります。
QGroupBox
スクリーンショットは、最初のものはうまく機能することを示していますが、最初のものよりもかなり小さい 2 番目のものには 2 つの問題があります。ボタンを横に並べて配置する必要があります...しかし、私はそれを望んでいません! 2)QGroupbox
「グリッド」の左側に配置することができましたが、今のところ中央に配置されている間、左上隅に配置する必要があります...どうすればこれを達成できますか?
これは、理解に役立つコードの一部です。kalk.h ファイルは次のとおりです。
class Kalk : public QWidget
{
Q_OBJECT
public:
Kalk(QWidget *parent = 0);
private slots:
void kalkChange(QString);
//....
private:
QComboBox *chooser;
QVBoxLayout *mainLayout;
QGridLayout *subLayout;
QGridLayout *operationsLayout;
QGroupBox *baseOperators;
QGridLayout *baseOperatorsLayout;
QGroupBox *specificOperators;
QGridLayout *specificOperatorsLayout;
};
次に、対応する kalk.cpp ファイル:
Kalk::Kalk(QWidget *parent) : QWidget(parent){
chooser = new QComboBox();
//...
connect(chooser,SIGNAL(currentIndexChanged(QString)),this,SLOT(kalkChange(QString)));
mainLayout = new QVBoxLayout;
mainLayout->setSizeConstraint(QLayout::SetFixedSize);
subLayout = new QGridLayout;
subLayout->setEnabled(false);
subLayout->setSizeConstraint(QLayout::SetFixedSize);
mainLayout->addWidget(chooser);
mainLayout->addLayout(subLayout);
//operationsLayout = new QHBoxLayout;
operationsLayout = new QGridLayout;
operationsLayout->setSizeConstraint(QLayout::SetFixedSize);
baseOperators = new QGroupBox(tr("Base Operations"));
baseOperatorsLayout = new QGridLayout(baseOperators);
baseOperatorsLayout->setSizeConstraint(QLayout::SetFixedSize);
specificOperators = new QGroupBox(tr("Specific Operations"));
specificOperatorsLayout = new QGridLayout(specificOperators);
specificOperatorsLayout->setSizeConstraint(QLayout::SetFixedSize);
operationsLayout->addWidget(baseOperators,0,0);
operationsLayout->setAlignment(baseOperators,Qt::AlignLeft);
operationsLayout->addWidget(specificOperators,0,1);
operationsLayout->setAlignment(specificOperators,Qt::AlignLeft);
mainLayout->addLayout(operationsLayout);
setLayout(mainLayout);
//...
}
別の関数では、QGroupBox のレイアウト内にボタンをロードしますが、問題はここにあるとは思いません...