Как удалить пространство виджета Qt (с макетом)C++

Программы на C++. Форум разработчиков
Anonymous
Как удалить пространство виджета Qt (с макетом)

Сообщение Anonymous »

Я написал программу, которая использует виджеты в качестве контейнера (для других виджетов). Поскольку содержимое контейнера меняется в течение жизни программы, с виджетом-контейнером связан макет, поэтому его размер изменяется правильно.
Проблема в том, что контейнер занимает некоторое пространство.< /p>
В следующей программе я воспроизвел проблему:
У меня есть группа с несколькими метками, одна из которых включена в контейнер. (виджет w и его макет t включают метку «что это за лишнее пространство?»).
Мой Цель состоит в том, чтобы расстояние между всеми метками было одинаковым, независимо от того, находятся они в контейнерах или нет (контейнер не должен занимать пространство).
Я также пытался раскрасить разные части виджеты.
  • Где мой отступ?
  • Какое дополнительное пространство между виджетами (между синим цветом) ?
  • Как его удалить?
#include
#include
#include
#include
#include
#include
#include
#include

#include

QMdiArea* g1;
QGroupBox* g1a;

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow* main_window = new(QMainWindow);
main_window->resize(200, 200);
main_window->setWindowTitle("Hello");

g1a = new QGroupBox("G1A", g1);
QVBoxLayout *g1a_l = new QVBoxLayout(g1a);
g1a_l->setSpacing(0);
main_window->setCentralWidget(g1a);

g1a_l->addWidget((QLabel*)new QLabel(" Nice Label1"));
g1a_l->addWidget((QLabel*)new QLabel(" Nice Label2"));
QWidget* w=new QWidget(0);
w->setStyleSheet( "border: 2 solid blue; padding: 2 solid yellow;" );
QVBoxLayout* t=new QVBoxLayout(w);
t->setSpacing(0);
t->addWidget(new QLabel("What is that extra space??",w));

g1a_l->addWidget(w);
g1a_l->addWidget((QLabel*)new QLabel(" Nice Label3"));
g1a_l->addWidget((QLabel*)new QLabel(" Nice Label4"));

//sub_window->adjustSize();
main_window->show(); //How to I get that to recaclulate the size of its contents?

return app.exec();
}


Подробнее здесь: https://stackoverflow.com/questions/912 ... yout-space

Вернуться в «C++»