Название: несколько виджетов в ячейке Отправлено: QCasper от Июль 26, 2006, 17:04 Все наверное видели в дизайнере в Property Editor в колонке Value в каждой ячейке помимо основного виджета, например комбобокса, есть еще маленькая кнопочка с загнутой нелево стрелкой, а иногда еще и кнопка вызывающая какой-нить диалог. Вот вопрос как зафигачить несколько виджетов в ячейку. И еще правильно ли я понял, это QTableWidget?
Название: несколько виджетов в ячейке Отправлено: Asaphus_Expansus от Июль 26, 2006, 17:26 Если QTableWidget, то наверное нужно взять cellWidget, положить в него QHBoxLayout и натолкать все что нужно. На практике не пробовал, но начал бы именно с этого.
Название: несколько виджетов в ячейке Отправлено: BaltikS от Июль 27, 2006, 08:37 Можно также положить виджет внутри которого имеются другие виджеты. Проверял и работает ;)
Название: несколько виджетов в ячейке Отправлено: QCasper от Июль 27, 2006, 11:58 Цитата: "BaltikS" Можно также положить виджет внутри которого имеются другие виджеты. Проверял и работает ;) я тоже проверял. действительно работает. только там возникают проблемы с QWidgetTableItem, текст куда-то пропадает, в аутпут лезут какие-то варнинги. Вообще сами тролли делают это QItemDelegate'ом, но я там как-то плохо разобрался, и вообще нах тогда setCellWidget спрашивается. Даже в новой книжке не нашел ни одного примера с использованием метода setCellWidget. Мож кто знает где посмотреть когда и как тролли рекомендуют юзать setCellWidget? Название: несколько виджетов в ячейке Отправлено: dont от Июль 28, 2006, 13:51 setCellWidget лепиццо в ячейку и жрет кучу памяти(которая не освобождаеться при скролле), попробуй например создать таблицу и в какой-то столбец запихнуть штук 30 чекбоксов - будет плужить нереально.
Тролли правильно делают, что через делегаты отрисовывают, они при скролле освобождаються а потом наново создаються, и все гламурненько без плугов работает)))) Название: несколько виджетов в ячейке Отправлено: QCasper от Июль 28, 2006, 21:13 Цитата: "dont" setCellWidget лепиццо в ячейку и жрет кучу памяти(которая не освобождаеться при скролле), попробуй например создать таблицу и в какой-то столбец запихнуть штук 30 чекбоксов - будет плужить нереально. Тролли правильно делают, что через делегаты отрисовывают, они при скролле освобождаються а потом наново создаються, и все гламурненько без плугов работает)))) блин, а я че-то плохо разобрался как их юзать... вообще не понял логики методов, которые перегружать надо... Название: несколько виджетов в ячейке Отправлено: Admin от Июль 29, 2006, 09:18 вообщето исходники дезайнера лежат в папке QT
можно глянуть их и станет понятно Название: несколько виджетов в ячейке Отправлено: QCasper от Июль 29, 2006, 10:23 Цитата: "Admin" вообщето исходники дезайнера лежат в папке QT можно глянуть их и станет понятно да я их глянул. и ужаснулся :shock: :( Название: несколько виджетов в ячейке Отправлено: Sergey B. от Июль 29, 2006, 11:31 Цитата: "QCasper" Цитата: "Admin" вообщето исходники дезайнера лежат в папке QT можно глянуть их и станет понятно да я их глянул. и ужаснулся :shock: :( Тролли мастера... :D Код пишут ох.. можно... им самим бы Бланше почитать надо бы... :) Название: несколько виджетов в ячейке Отправлено: Admin от Июль 29, 2006, 13:08 код у них нормальный
иначе бы QT была бы сродни MFC :) Название: несколько виджетов в ячейке Отправлено: Sergey B. от Июль 29, 2006, 13:18 Цитата: "Admin" код у них нормальный иначе бы QT была бы сродни MFC :) Никто не спорит, однако стиль его написания не соответствует их же рекомендациям... :)... Название: несколько виджетов в ячейке Отправлено: Admin от Июль 29, 2006, 23:28 ну это сплошь и рядом :)
Название: несколько виджетов в ячейке Отправлено: Alexandr Az от Август 04, 2006, 09:57 Нигде я там кода нормального не встречал. Абслютно все классы защищены от наследования. Очень прикольно. А ещё опенсоюрце
Название: несколько виджетов в ячейке Отправлено: dont от Август 04, 2006, 12:15 Цитата: "Alexandr Az" Нигде я там кода нормального не встречал. Абслютно все классы защищены от наследования. Очень прикольно. А ещё опенсоюрце Эт что вы имеете ввиду? Я что-то не понял... Где они там защищены от наследования? Сколько пишу на кутэ, столько и наследую их классы))) Название: несколько виджетов в ячейке Отправлено: Asaphus_Expansus от Август 04, 2006, 12:22 Я так понимаю, что имеются ввиду приватные под-объекты классов, наследники QObjectPrivate, к ктороым доступ перекрыт. Иногда (крайне редко) это действительно ставить некие проблемы.
Название: несколько виджетов в ячейке Отправлено: Alexandr Az от Август 04, 2006, 12:49 Да, именно приватные. Но не редко ставит это проблемы. Все данные хранятся в этих (как вы сказали) подобъектах. Поэтому везде юзаются объекты, а не ссылки на них. Возьмём любую коллекцию. Из за того, что они возвращают объекты (а не ссылки) нет возможности переписать класс этой коллекции. Например коллекция QSqlRecord содержит QSqlField. Вот и попробуй переписать класс QSqlField. С начало я думал что они сума сошли, постоянно копируя объекты. Одако на самом деле нифига там не копируется, потому как тот приватный класс и есть сслылка. Так что закрыли они свои классы ой как хорошо. Косметические изменения сделать -поменять кой чего в потомках - нет проблем. Глубже капнуть в класс - траблы.
|