Как запретить QTableWidget занимать все окно в QHBoxLayout?

В моей программе Qt я программно генерирую модальный QDialog. Я хочу показать два виджета в этом диалоговом окне: пользовательский виджет, показывающий вывод камеры, и QTableWidget, показывающий пиксельные координаты углов, найденных на изображении с камеры. Я создаю QHBoxLayout и добавляю в него свой собственный виджет и QTableWidget. Затем я установил этот QHBoxLayout в качестве макета окна QDialog. Чего я хочу добиться, так это разделить доступное пространство в области окна QDialog поровну между моим пользовательским QWidget и QTableWidget по горизонтали с помощью QHBoxLayout. Но я всегда заканчиваю тем, что QTableWidget занимает всю область QDialog, перекрывая мой пользовательский виджет. Как я могу указать этим двум виджетам точно разделять область QDialog?? Обратите внимание, что сначала я добавляю свой собственный виджет, а затем QTableWidget в QHBoxLayout.


person Ufuk Can Bicici    schedule 19.08.2013    source источник


Ответы (1)


Убедитесь, что в своем пользовательском виджете вы указали minimumSizeHint и sizeHint, это указывает менеджеру QLayout, что для виджета требуется определенное пространство. Чтобы разделить их поровну, вам лучше всего определить размер QDialog, а затем указать ширину для обоих, удалив граничные размеры (расстояние между виджетами + пробел до края QDialog) и разделив его.

person Nicholas Smith    schedule 19.08.2013