В моей программе Qt я программно генерирую модальный QDialog. Я хочу показать два виджета в этом диалоговом окне: пользовательский виджет, показывающий вывод камеры, и QTableWidget, показывающий пиксельные координаты углов, найденных на изображении с камеры. Я создаю QHBoxLayout и добавляю в него свой собственный виджет и QTableWidget. Затем я установил этот QHBoxLayout в качестве макета окна QDialog. Чего я хочу добиться, так это разделить доступное пространство в области окна QDialog поровну между моим пользовательским QWidget и QTableWidget по горизонтали с помощью QHBoxLayout. Но я всегда заканчиваю тем, что QTableWidget занимает всю область QDialog, перекрывая мой пользовательский виджет. Как я могу указать этим двум виджетам точно разделять область QDialog?? Обратите внимание, что сначала я добавляю свой собственный виджет, а затем QTableWidget в QHBoxLayout.
Как запретить QTableWidget занимать все окно в QHBoxLayout?
Ответы (1)
Убедитесь, что в своем пользовательском виджете вы указали minimumSizeHint
и sizeHint
, это указывает менеджеру QLayout
, что для виджета требуется определенное пространство. Чтобы разделить их поровну, вам лучше всего определить размер QDialog
, а затем указать ширину для обоих, удалив граничные размеры (расстояние между виджетами + пробел до края QDialog
) и разделив его.
person
Nicholas Smith
schedule
19.08.2013