Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: goer от Май 24, 2007, 18:54



Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: goer от Май 24, 2007, 18:54
Многоуважаемый зогазчег [это место вырезано цензурой] пожелал чтоб ширина verticalHeader() в QTableWidget была фиксированной и не изменялась при изменении контента verticalHedar()-a. Кроме того оно захотело чтоб текст в verticalHeader()-е был выровнен по центру.

Собственно у меня реализация такой просьбы вызвала проблемы. Обращаюсь ко всем, кто может помочь - помогите (и можете считать себя гуру QTableWidget-a) сделать такое.

З.Ы. Как вариант конечно можно убрать хедеры вовсе и заюзать только ячейки QTableWidget-a (там есть способ установить фиксированную ширину колонки), но для этого прийдется приложить усилия и время.

З.Ы.Ы. Перед отправкой вот еще наткнулся на функции
int QHeaderView::verticalOffset () const и
int QHeaderView::horizontalOffset () const
может они помогут? Не знаю на что они влияют.

Спасибо всем кто примет участие.


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: pastor от Май 24, 2007, 20:20
table->verticalHeader()->setResizeMode(QHeaderView::Fixed);
table->verticalHeader()->setDefaultAlignment(Qt::AlignCenter);

оно?


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: Racheengel от Май 25, 2007, 18:01
а по дефолту по моему текст и так по центру равняется...


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: goer от Май 26, 2007, 09:40
Цитировать
table->verticalHeader()->setDefaultAlignment(Qt::AlignCenter);


Это то, что нужно, спасибо еще раз!

Цитировать
able->verticalHeader()->setResizeMode(QHeaderView::Fixed);


Это влияет на политику ресайза именно секций, а мне нужно изменять ширину(для вертикального хедера) самого хедера!

Видимо прийдется отказаться от хееров и сделать все в самом TableView-е. Что ж, будет мне урок, как надо делать - не быстро, а чтоб оставлять побольше свободы действий на будущее...


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: goer от Июнь 02, 2007, 10:05
Еще вопрос (до сих пор не отказался от хедеров).

Можно ли каким то образом получить доступ к левой верхней ячейке НЕ таблицы, а той что находится на пересечении хедеров? (На нее если нажимаешь, то выделяются ячейки таблицы) ?


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: zlatko от Июнь 02, 2007, 11:42
cornerWidget() (http://doc.trolltech.com/4.2/qabstractscrollarea.html#cornerWidget)


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: goer от Июнь 02, 2007, 12:30
Returns the widget in the corner between the two scroll bars.

Это не одно и тоже что between the two header views. :(

Попробовал - никакого эффекта.


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: mindz_eye от Июнь 02, 2007, 17:59
Цитата: "goer"

Видимо прийдется отказаться от хееров и сделать все в самом TableView-е. Что ж, будет мне урок, как надо делать - не быстро, а чтоб оставлять побольше свободы действий на будущее...


Расслабься, все просто. Переопределяешь QHeaderView, в нем определяешь sizeHint() такой, какой тебе нужен. Ну и setVerticalHeader() в свою таблицу делаешь.


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: goer от Июнь 02, 2007, 22:22
sizeHint() это кажется виджета метод? Пробовал работать с QHeaderView как с виджетом - устанавливать ему геометрию (через setGeometry()) никакого эффекта не получил. Сомневаюсь, что и с хинтом что то путное выйдет.

У меня тут уже отпала необходимость в фиксированной ширине, остальные проблемы похачил... спасибо всем за участие :-)


Название: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: mindz_eye от Июнь 03, 2007, 14:45
Цитата: "goer"
sizeHint() это кажется виджета метод? Пробовал работать с QHeaderView как с виджетом - устанавливать ему геометрию (через setGeometry()) никакого эффекта не получил. Сомневаюсь, что и с хинтом что то путное выйдет.

Нет, я имел ввиду отнаследовать QHeaderView. Работать это будет, иначе бы не писал.


Название: Re: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: Примерный ученик от Май 14, 2008, 18:31
В QT 3.3 как отменить изменение размера с помощью мышки?


Название: Re: [Qt 4.2.x] Для Гуру по QTableWidget
Отправлено: em от Май 20, 2008, 19:30
Подскажите как сделать высоту строк поменьше QTableWidget? А то по умолчанию они непривычно высокие...
И как можно отключить появление жирности у Хеадеров таблица при выделении элемента?