Russian Qt Forum
Октябрь 01, 2024, 10:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Размер окна  (Прочитано 9265 раз)
bigory
Гость
« : Октябрь 23, 2010, 11:36 »

Всем доброе время суток!
У меня есть основное окно, созданное в режиме дизайнера, к нему добавлена таблица tableWidget. Хотелось бы чтобы табица изменяла свои размеры в зависимости размеров основного окна. Как мне получить данные о размере главного окна и передать его размеры таблице?
Записан
zenden
Гость
« Ответ #1 : Октябрь 23, 2010, 12:48 »

Уж сколько раз твердили миру...  читать документацию http://doc.crossplatform.ru/qt/4.6.x/layout.html
Записан
bigory
Гость
« Ответ #2 : Октябрь 23, 2010, 13:44 »

Извините, но причем тут компоновка???
Мне нужно узнать размер окна и передать эти размеры таблице, но это не относиться к размещению компонентов на форме
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #3 : Октябрь 23, 2010, 14:01 »

bigory, у вас эта таблица в другом окне находится?
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
bigory
Гость
« Ответ #4 : Октябрь 23, 2010, 14:08 »

Она находится на главном окне MainWindow.
Вот мне нужно вытащить значение ширину и длину  MainWindow и присвоить его к таблице tableWidget.
Короче говоря, таблица должна быть на все рабочее окно, и при ручном изменении размера окна, таблица должна изменяться вместе с ней.
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #5 : Октябрь 23, 2010, 14:20 »

Ну так про компоновку вам правильно сказали, лайоуты на то и придуманы чтобы не приходилось вручную  высчитывать размеры виджетов в пределах окна.  Правой кнопкой мыши по вашему окну в дизайнере - и выбираете "Компоновка" - "Скомпоновать по горизонтали/вертикали" (в завивисмости от того что там у в ас ещё за элементы.

Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
bigory
Гость
« Ответ #6 : Октябрь 23, 2010, 14:31 »

Попробовал, сразу получилось,но вот не совсем то чот мне надо. Мне нужно чтобы от правого края был отступ где-то на 5 см.
Идея такая: большую часть пространства занимает таблица, а оставшееся 5 см кнопки. Если использовать компоновщик, то кнопка прыгает в правой части в середину, а мне нужно чтобы она была сверху, при этом тоже должен быть отступ.
Глупо использовать "умные" механизмы, так как не всегда они делают то, что именно нужно
« Последнее редактирование: Октябрь 23, 2010, 14:39 от bigory » Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #7 : Октябрь 23, 2010, 14:37 »

Выставите у формы свойство layoutRightMargin в какое-нить значение "побольше" (там оно в пикселах) И у всех элементов интерфейса (если у вас там ещё кроме таблицы что-то есть) будет отсуп от правого края. А если вам надо в этот отсуп помещать другие виджеты -- то тут уже придётся делать несколько компоновщиков, вложенных в главную.
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
merke
Гость
« Ответ #8 : Октябрь 23, 2010, 14:46 »

bigory, срочно читать книги по Кутям
Записан
bigory
Гость
« Ответ #9 : Октябрь 23, 2010, 14:49 »

А если вам надо в этот отсуп помещать другие виджеты -- то тут уже придётся делать несколько компоновщиков, вложенных в главную.

Как раз это делать и приходится. Да ну его, с математикой у меня не проблематично. Как вытаскивать значения и присваивать ее в таблицу? И как изменять размеры в таблицы тогда, когда пользователь вручную двигает границы окна?
Записан
bigory
Гость
« Ответ #10 : Октябрь 23, 2010, 15:20 »

Книжку я почитаю, и с компоновкой косвенным путем разобрался. Вот теперь другое мне не нравиться: таблица начинается с 9х9. Вот как ее поместить на 0х0? И снизу тоже исправить надо
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #11 : Октябрь 23, 2010, 15:27 »

Цитировать
таблица начинается с 9х9. Вот как ее поместить на 0х0? И снизу тоже исправить надо

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

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
bigory
Гость
« Ответ #12 : Октябрь 23, 2010, 15:34 »

Вот мой исходник http://file.qip.ru/file/d77nvSAd/Admin.html ( 4.58 Kb )
Вот как в моем случае ее поместить в 0х0?
Там у меня еще проблема с реализации потока, но это я решаю в другом топике
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #13 : Октябрь 23, 2010, 15:48 »

пиши понятнее, а то не сразу ясно. Я так понял, ты говоришь о координатах таблицы относительно окна? Смотри margins в основном layout-e.
Записан
DOOMer
Чайник
*
Offline Offline

Сообщений: 95



Просмотр профиля
« Ответ #14 : Октябрь 23, 2010, 15:51 »

Свойства layoutLeftMargin, layoutRightMargin, layoutTopMargin, LayoutBottonMargin у эелемента  centralWidget выставите в 0. Тогда уберутся оступы вокруг таблицы.
Записан

Linux x86_64 && Qt 5.4.0 && Qt 4.8.6t && GCC 4.9.2
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 23.