2013-08-19 1 views
0

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

ответ

1

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