QGroupBox: вырезать метку и позиционировать внутри QGridLayout

Чтобы было яснее, объясняя мою проблему, я сделал скриншот с некоторыми заметками, надеюсь, это поможет:

QGroupBox Неполадка формата формата

Как вы можете видеть из этого, у меня есть один большой QVBoxLayout для основного макета приложения, внутри него я положил Qwidget, затем QGridLayout а затем QGridLayout снова.
Внутри этого последнего QGridLayoutЯ поставил два QGroupBoxesодин в положении 0,0 и один в положении 0,1. каждый QGroupBox имеет свой внутренний макет, оба QGridLayout введите снова.

Скриншот показывает, что ели QGroupBox работает хорошо, в то время как второй, который меньше, чем первый, имеет две проблемы:
1) Метка должна быть «Специфические операции», но она транкирована, и единственный способ показать ее полностью — это поместить кнопки одну рядом с другой по горизонтали … но я не хочу этого!
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);

//...
}

В другой функции я загружаю кнопки внутри Layout QGroupBox, но я не думаю, что проблема здесь …

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]