Qt5 C++11 расположение элементов, QGridLayout

259
22 декабря 2017, 02:17

Располагаю элементы в своём приложении с QGridLayout.

Столкнулся с проблемой: не понимаю, почему происходит наложение виджетов.

Код:

add_file = new QPushButton("Открыть файл");
start = new QPushButton("->");
stop = new QPushButton("||");
test = new QTextEdit();
layout = new QGridLayout();
layout->addWidget(add_file, 1, 1, 1, 10, Qt::AlignTop);
layout->addWidget(test, 2, 1, 9, 10);
layout->addWidget(start, 10, 1, Qt::AlignBottom);
layout->addWidget(stop, 10, 2, Qt::AlignBottom);

Получается вот такое:

Вроде ведь виджет test должен быть от (2,1) до (9,10), а виджеты start и stop в 10 строке, то есть ниже него. Или я что-то путаю?

Answer 1

Попробуйте виджеты add_file и test разместить на два столбца:

layout = new QGridLayout()
layout->addWidget(add_file, 1, 1, 1, 2, Qt::AlignTop);
layout->addWidget(test, 2, 1, 1, 2);
layout->addWidget(start, 3, 1, Qt::AlignBottom);
layout->addWidget(stop, 3, 2, Qt::AlignBottom);
Answer 2

Вроде ведь виджет test должен быть от (2,1) до (9,10), а виджеты start и stop в 10 строке, то есть ниже него. Или я что-то путаю?

Да, путаешь,

layout->addWidget(test, 2, 1, 9, 10);

означает начало в (2,1) и высотой/шириной (9,10), соответственно он продолжается до ячейки 11.

READ ALSO
Разница между delete и operator delete

Разница между delete и operator delete

В чём разница между этими действиями?

323
DCE/RPC - узнать переменные окружения или расположения системных папок

DCE/RPC - узнать переменные окружения или расположения системных папок

Можно ли с помощью DCE/RPC узнать нужные переменные окружения или пути к системных папкам, таким как c:program file или home user directory?

227
Количество аргументов функции

Количество аргументов функции

Недавно был вопрос о том, как объявить функцию с n аргументами заданного типаУ меня возник противоположный вопрос

246