Как установить необходимую и достаточную ширину для талицы ? |
Здравствуйте, гость ( Вход | Регистрация )
Как установить необходимую и достаточную ширину для талицы ? |
flankerr |
31.3.2011, 17:09
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
Есть диалог на нём расположен QTableView.
Как узнать необходимую ширину QTableView чтобы все колонки были видны (без горизонтальной полосы прокрутки) ? Сумма всех ширин колонок меньше искомой велечины. зы Изменять ширину колонок нельзя! Надо изменить (подогнать) ширину окна. Сообщение отредактировал flankerr - 1.4.2011, 10:31 |
|
|
vankleef |
31.3.2011, 19:58
Сообщение
#2
|
Студент Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: 1 |
может немного не в тему, но
view->horizontalHeader()->setResizeMode(int columnNo,QHeaderView::Stretch); или view->horizontalHeader()->setResizeMode(QHeaderView::Stretch); растягивает столбец(столбцы) по ширине QtableView. и, по идее, при изменении размера всего окна пропорционально будет изменяться ширина виджета => колонок Сообщение отредактировал vankleef - 31.3.2011, 20:00 |
|
|
abc |
31.3.2011, 20:00
Сообщение
#3
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
сумма всех ширин колонок + чутьчуть
|
|
|
flankerr |
1.4.2011, 9:54
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
может немного не в тему, но view->horizontalHeader()->setResizeMode(int columnNo,QHeaderView::Stretch); Это совсем мимо. сумма всех ширин колонок + чутьчуть Нет уж нет уж! Эти "чутьчуть" потом там гемором выходят - туши свет ! Сообщение отредактировал flankerr - 1.4.2011, 9:54 |
|
|
madnessw |
1.4.2011, 10:18
Сообщение
#5
|
Студент Группа: Участник Сообщений: 21 Регистрация: 12.3.2010 Пользователь №: 1527 Спасибо сказали: 0 раз(а) Репутация: 0 |
resizeColumnsToContents();
или в ручную for (int i=0;i<columnCount();i++) { setColumnWidth(i,frameWidth()/columncount()); } примерно так (лень правильно писать) |
|
|
flankerr |
1.4.2011, 10:30
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
resizeColumnsToContents(); или в ручную for (int i=0;i<columnCount();i++) { setColumnWidth(i,frameWidth()/columncount()); } примерно так (лень правильно писать) Мне надо установить ширину окна, а ты предлогаешь изменить ширину колонок. Причём два твоих варианта решают разные задачи! Первый случай подгняет ширину колонок под содержимое и игнорирует ширину окна, т.е. все колонки могут и не поместиться в окне или наоборот стать значительно меньше ширины окна. Второй способ - это эдакий ручной стреч. В общем ты совсем не понял моего вопроса Сообщение отредактировал flankerr - 1.4.2011, 10:35 |
|
|
vankleef |
1.4.2011, 11:36
Сообщение
#7
|
Студент Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: 1 |
ну вот ты по-человечески вопрос свой написал.
а если ширина всего окна получится больше разрешения экрана? считаешь ширину виджета, ширину окна, "чуть чуть"="ширина окна" - "ширина виджета". ставишь размер окна на ширину виджета + чутьчуть, как и было написано и никакого гемороя. Сообщение отредактировал vankleef - 1.4.2011, 11:36 |
|
|
flankerr |
1.4.2011, 13:08
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
Вопорос задан правильно, но пришлось поставить акцент на очевидный факт если внимательно прочитать вопрос
Ещё заз скажу что "чуть-чуть" худо бедно годиться только если ты пишешь приложения для одного единственного комппьютера в котором все настройки визуализации коснтанты. Онако стоит изменить настройки визуализации интерфейса (шрифт, тему и т.п. и тд.) и все эти "чуть-чуть" полетят к едрене фене. Поэтому все эти эмпирические вычсиления и подгонки на глазок полная фигня и этого надо всячески избегать. Если ширина всего окна получиться больше ширины разрешения рабочего экоана значит так тому и быть Это уже совсем другая история. Сообщение отредактировал flankerr - 1.4.2011, 13:11 |
|
|
abc |
1.4.2011, 13:17
Сообщение
#9
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
ну, я всё-таки не соглашусь, потому как сумму всех колонок на любом компе Qt посчитает правильно, а тебе останется только добавить чуть-чуть, я думаю, что это "чуть-чуть", если оно не зависит от кромок колонок, то есть от количества колонок, будет константно.. В дизайнере попробуй QTableWidget - если сжать его до уровня конца последней колонки, при предпросмотре увидишь горизонтальную прокрутку, а если добавить чуть-чуть, всё будет хорошо... добавь чуть-чуть, не ерепенься!!
|
|
|
flankerr |
1.4.2011, 16:09
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
ну, я всё-таки не соглашусь, Повторюсь! Ты мыслишь в рамках одной конкретной системы с одними конректными настройками визуализации. Предположим WInXP тема "луна" но в линухе или Win7 уже всё по другому будет да в той же WinXP с другой темой может быть всё по другому.Впрочем у меня нет задачи убеждать кого либо Когда столкнёшься тогда сам поймёшь. Но всё равно спасибо за участие. to ALL: Проблема есть, решения пока нет. Надеюсь услышать коснтруктивные мысли для решения задачи. |
|
|
Текстовая версия | Сейчас: 14.1.2025, 18:50 |