Чтобы было яснее, объясняя мою проблему, я сделал скриншот с некоторыми заметками, надеюсь, это поможет:
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, но я не думаю, что проблема здесь …
Задача ещё не решена.
Других решений пока нет …