Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: bigory от Октябрь 23, 2010, 11:36



Название: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 11:36
Всем доброе время суток!
У меня есть основное окно, созданное в режиме дизайнера, к нему добавлена таблица tableWidget. Хотелось бы чтобы табица изменяла свои размеры в зависимости размеров основного окна. Как мне получить данные о размере главного окна и передать его размеры таблице?


Название: Re: Размер окна
Отправлено: zenden от Октябрь 23, 2010, 12:48
Уж сколько раз твердили миру...  читать документацию http://doc.crossplatform.ru/qt/4.6.x/layout.html


Название: Re: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 13:44
Извините, но причем тут компоновка???
Мне нужно узнать размер окна и передать эти размеры таблице, но это не относиться к размещению компонентов на форме


Название: Re: Размер окна
Отправлено: DOOMer от Октябрь 23, 2010, 14:01
bigory, у вас эта таблица в другом окне находится?


Название: Re: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 14:08
Она находится на главном окне MainWindow.
Вот мне нужно вытащить значение ширину и длину  MainWindow и присвоить его к таблице tableWidget.
Короче говоря, таблица должна быть на все рабочее окно, и при ручном изменении размера окна, таблица должна изменяться вместе с ней.


Название: Re: Размер окна
Отправлено: DOOMer от Октябрь 23, 2010, 14:20
Ну так про компоновку вам правильно сказали, лайоуты на то и придуманы чтобы не приходилось вручную  высчитывать размеры виджетов в пределах окна.  Правой кнопкой мыши по вашему окну в дизайнере - и выбираете "Компоновка" - "Скомпоновать по горизонтали/вертикали" (в завивисмости от того что там у в ас ещё за элементы.



Название: Re: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 14:31
Попробовал, сразу получилось,но вот не совсем то чот мне надо. Мне нужно чтобы от правого края был отступ где-то на 5 см.
Идея такая: большую часть пространства занимает таблица, а оставшееся 5 см кнопки. Если использовать компоновщик, то кнопка прыгает в правой части в середину, а мне нужно чтобы она была сверху, при этом тоже должен быть отступ.
Глупо использовать "умные" механизмы, так как не всегда они делают то, что именно нужно


Название: Re: Размер окна
Отправлено: DOOMer от Октябрь 23, 2010, 14:37
Выставите у формы свойство layoutRightMargin в какое-нить значение "побольше" (там оно в пикселах) И у всех элементов интерфейса (если у вас там ещё кроме таблицы что-то есть) будет отсуп от правого края. А если вам надо в этот отсуп помещать другие виджеты -- то тут уже придётся делать несколько компоновщиков, вложенных в главную.


Название: Re: Размер окна
Отправлено: merke от Октябрь 23, 2010, 14:46
bigory, срочно читать книги по Кутям


Название: Re: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 14:49
А если вам надо в этот отсуп помещать другие виджеты -- то тут уже придётся делать несколько компоновщиков, вложенных в главную.

Как раз это делать и приходится. Да ну его, с математикой у меня не проблематично. Как вытаскивать значения и присваивать ее в таблицу? И как изменять размеры в таблицы тогда, когда пользователь вручную двигает границы окна?


Название: Re: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 15:20
Книжку я почитаю, и с компоновкой косвенным путем разобрался. Вот теперь другое мне не нравиться: таблица начинается с 9х9. Вот как ее поместить на 0х0? И снизу тоже исправить надо


Название: Re: Размер окна
Отправлено: DOOMer от Октябрь 23, 2010, 15:27
Цитировать
таблица начинается с 9х9. Вот как ее поместить на 0х0? И снизу тоже исправить надо

void QTableWidget::setCurrentCell ( int row, int column ) -- если я вас правильно понял.


Название: Re: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 15:34
Вот мой исходник http://file.qip.ru/file/d77nvSAd/Admin.html ( 4.58 Kb )
Вот как в моем случае ее поместить в 0х0?
Там у меня еще проблема с реализации потока, но это я решаю в другом топике


Название: Re: Размер окна
Отправлено: Alex Custov от Октябрь 23, 2010, 15:48
пиши понятнее, а то не сразу ясно. Я так понял, ты говоришь о координатах таблицы относительно окна? Смотри margins в основном layout-e.


Название: Re: Размер окна
Отправлено: DOOMer от Октябрь 23, 2010, 15:51
Свойства layoutLeftMargin, layoutRightMargin, layoutTopMargin, LayoutBottonMargin у эелемента  centralWidget выставите в 0. Тогда уберутся оступы вокруг таблицы.


Название: Re: Размер окна
Отправлено: bigory от Октябрь 23, 2010, 16:08
Спасибо всем! В этом топике вопрос снят