Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 3.4.2011, 18:43 |
Изменять ширину колонок нельзя! Надо изменить (подогнать) ширину окна. как-то я в похожем случае применил решение "в лоб" - если было несоответствие линейного размера, но это решалось размером главного окна, но запускал таймер (100мс нормально) где по некоему закону (в простейшем случае - попиксельно) менял размеры окна в нужную сторону, пока не добивался "правильности". Визуально смотрелось симпатично - плавно, но быстро край перемещался в нужное положение Если спроецировать этот способ на САБЖ, то достаточно добавлять по 1 пикселу, пока не станет НЕ ВИДНА полоса прокрутки. Начальное значение - примерно такое, как ширина всех колонок, ограничение (на всякий случай) - скажем, вырастать не более, чем на 10% от ширины всех колонок |
|
flankerr | Дата 1.4.2011, 16:09 |
ну, я всё-таки не соглашусь, Повторюсь! Ты мыслишь в рамках одной конкретной системы с одними конректными настройками визуализации. Предположим WInXP тема "луна" но в линухе или Win7 уже всё по другому будет да в той же WinXP с другой темой может быть всё по другому.Впрочем у меня нет задачи убеждать кого либо Когда столкнёшься тогда сам поймёшь. Но всё равно спасибо за участие. to ALL: Проблема есть, решения пока нет. Надеюсь услышать коснтруктивные мысли для решения задачи. |
|
abc | Дата 1.4.2011, 13:17 |
ну, я всё-таки не соглашусь, потому как сумму всех колонок на любом компе Qt посчитает правильно, а тебе останется только добавить чуть-чуть, я думаю, что это "чуть-чуть", если оно не зависит от кромок колонок, то есть от количества колонок, будет константно.. В дизайнере попробуй QTableWidget - если сжать его до уровня конца последней колонки, при предпросмотре увидишь горизонтальную прокрутку, а если добавить чуть-чуть, всё будет хорошо... добавь чуть-чуть, не ерепенься!! | |
flankerr | Дата 1.4.2011, 13:08 |
Вопорос задан правильно, но пришлось поставить акцент на очевидный факт если внимательно прочитать вопрос Ещё заз скажу что "чуть-чуть" худо бедно годиться только если ты пишешь приложения для одного единственного комппьютера в котором все настройки визуализации коснтанты. Онако стоит изменить настройки визуализации интерфейса (шрифт, тему и т.п. и тд.) и все эти "чуть-чуть" полетят к едрене фене. Поэтому все эти эмпирические вычсиления и подгонки на глазок полная фигня и этого надо всячески избегать. Если ширина всего окна получиться больше ширины разрешения рабочего экоана значит так тому и быть Это уже совсем другая история. |
|
vankleef | Дата 1.4.2011, 11:36 |
ну вот ты по-человечески вопрос свой написал. а если ширина всего окна получится больше разрешения экрана? считаешь ширину виджета, ширину окна, "чуть чуть"="ширина окна" - "ширина виджета". ставишь размер окна на ширину виджета + чутьчуть, как и было написано и никакого гемороя. |
|
flankerr | Дата 1.4.2011, 10:30 |
resizeColumnsToContents(); или в ручную for (int i=0;i<columnCount();i++) { setColumnWidth(i,frameWidth()/columncount()); } примерно так (лень правильно писать) Мне надо установить ширину окна, а ты предлогаешь изменить ширину колонок. Причём два твоих варианта решают разные задачи! Первый случай подгняет ширину колонок под содержимое и игнорирует ширину окна, т.е. все колонки могут и не поместиться в окне или наоборот стать значительно меньше ширины окна. Второй способ - это эдакий ручной стреч. В общем ты совсем не понял моего вопроса |
|
madnessw | Дата 1.4.2011, 10:18 |
resizeColumnsToContents(); или в ручную for (int i=0;i<columnCount();i++) { setColumnWidth(i,frameWidth()/columncount()); } примерно так (лень правильно писать) |
|
flankerr | Дата 1.4.2011, 9:54 |
может немного не в тему, но view->horizontalHeader()->setResizeMode(int columnNo,QHeaderView::Stretch); Это совсем мимо. сумма всех ширин колонок + чутьчуть Нет уж нет уж! Эти "чутьчуть" потом там гемором выходят - туши свет ! |
|
abc | Дата 31.3.2011, 20:00 |
сумма всех ширин колонок + чутьчуть | |
vankleef | Дата 31.3.2011, 19:58 |
может немного не в тему, но view->horizontalHeader()->setResizeMode(int columnNo,QHeaderView::Stretch); или view->horizontalHeader()->setResizeMode(QHeaderView::Stretch); растягивает столбец(столбцы) по ширине QtableView. и, по идее, при изменении размера всего окна пропорционально будет изменяться ширина виджета => колонок |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 9:30 |