Автор Тема: Есть ли тут специалисты по Qt? Подскажите двоечнику.  (Прочитано 8247 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
Изучаю Qt, до этого был опыт на MFC и Borland Builder C++ 6.

Интересует класс QTableWidget как там нарисовать таблицу? Т.е. в нужных ячейках нужно нарисовать линии. Документацию разумеется смотрел. Но никаких функций для эти целей там не обнаружил. Есть похожая функция: void QTableWidget::setCellWidget ( int row, int column, QWidget * widget )   можно в ячейку запихнуть QWidget а на нем уже рисовать линии и текст, но грызут сомнения, насколько это эффективно, особенно если таблица будет большая.....

Кто нибудь сталкивался с такими задачами?
Захожу сюда редко.

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
    • pretorean-soft.blogspot.com
В ячейку таблицы хочешь вставить виджет таблицы ? как интересно )))
чекбокс нормально в ячейке живет, посмотри в сторону QItemDelegate.

Да, и почему QTableWidget а не QTableView ?
« Последнее редактирование: 29 Января 2013, 11:55:50 от Pretorean »
http://fpad.ru - Моя коллекция юмора

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
В ячейку таблицы хочешь вставить виджет таблицы ? как интересно )))
чекбокс нормально в ячейке живет, посмотри в сторону QItemDelegate.

Да, и почему QTableWidget а не QTableView ?

Ну в ячейку я хочу вставить не виджет таблицы, а просто QWidget за неимением лучших вариантов.

Вообще, чем больше я изучаю Qt, тем меньше он мне нравится. Вроде много разных виджетов, вроде как обширный функционал, а когда начинаешь конкретно, что то делать с использованием Qt, то в друг обнаруживается, что 80% функционала Qt подходит только для создания очередного медиаплеера или подобной свистелки. Билдер С++ в этом плане гораздо лучше, там все как-то более продумано. Хотя может быть я просто еще "не вкурил" Qt, не понял еще устройство Qt.

Глянул QItemDelegate это немного не то, что мне нужно. QItemDelegate нужен для реализации концепции Модель-Вид. А у меня чистая графика.

QTableWidget а не QTableView потому, что QTableView так же для реализации концепции Модель-Вид, кроме того, QTableWidget является производным от QTableView и соответственно обладает большим функционалом.

Как я понимаю, для реализации того, что я хочу, мне как минимум нужно унаследоваться от QTableWidget или QTableView и затем уже рисовать в ячейках, но опять же не пойму как мне получить доступ к ячейке для рисования? В самой ячейке как я понимаю нарисовать нельзя, значит опять же рисовать нужно на QWidget а его уже потом засунуть в ячейку... Или же вообще с нуля создавать свой виджет, не уверен, что у меня хватит времени и терпения на создание своего виджета.
Захожу сюда редко.

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
    • pretorean-soft.blogspot.com
А я в восторге от Qt )))
QTableWidget это чтото типа TStringGrid в билдере. он тока строки умеет в ячейках

Нужно брать QTableView, делать свою модель данных, а для хитрой ячейки делать делегата
http://fpad.ru - Моя коллекция юмора

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
А я в восторге от Qt )))
QTableWidget это чтото типа TStringGrid в билдере. он тока строки умеет в ячейках

Нужно брать QTableView, делать свою модель данных, а для хитрой ячейки делать делегата

Посмотрел более внимательно документацию на QItemDelegate, действительно, кажись то, что нужно. И следовательно нужно пробовать использовать QTableView.

Тогда еще такой вопрос. В документации к QTableView я не нашел, как мне получить доступ для рисования на заголовках рядов и колонок. Есть ли такая возможность?

Pretorean как я понимаю, ты в Qt спец. Сколько весит в среднем простейший текстовый редактор созданный в Qt? Для меня это не праздный интерес, просто я сравниваю размер исполняемого файла с размером созданных аналогичных программ в MFC и Builder, дабы примерно оценить относительный размер экзешника. Хочу еще попробовать GTKmm, смотрел документацию, очень понравилась либа.
Захожу сюда редко.

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
    • pretorean-soft.blogspot.com
мне не приходилось рисовать на заголовках, не могу ничего сказать

я не спец, но приходилось решать некоторые вопросы

с динамической линковкой бинарник скромного размера, но требует 15-20 мб библиотек.
статическая линковка под винду имеет смысл тока если юзать компилятор визуалстудии, но нужен бубен.
http://fpad.ru - Моя коллекция юмора

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
Та жена просит слепить её какую-нибудь простенькую программу, что бы под линуксом можно было приходники-расходники печатать, товарные чеки, накладные, счета фактуры. Проводки никакие не нужны, типа как безнес-пак. Раньше я хорошо на С++ программировал, но последнее время обленился и отупел.
Захожу сюда редко.

Оффлайн eXanDr

  • Волшебник
  • Пол: Мужской
    • itvdonsk
с динамической линковкой бинарник скромного размера, но требует 15-20 мб библиотек.
статическая линковка под винду имеет смысл тока если юзать компилятор визуалстудии, но нужен бубен.
статическая линковка требует денег
ну это если в лицензию вчитываться xD
Крутизна программера — не в синтаксисе исходников, а в толщине его кошелька
Telegram Group

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
статическая линковка требует денег
ну это если в лицензию вчитываться xD

И не малые:

Single Operating System - € 2 995
   
Multiple Operating Systems - € 4 195

по состоянию на декабрь 2012 г.

   


   

Захожу сюда редко.

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
Что-то мне Qt совсем перестал нравиться. Не знаю, может я что-то делаю не так...
но главный виджет для бизнес-приложений QTableWidget шрифт в ячейках уродует.

Что бы было понятно о чем я говорю, вот скрин QTableWidget


А вот LibreOffice Calc:


В QTableWidget шрифт явно сдвинут и выглядит коряво.
Особенно это заметно в слогах: "ак" и "ад" а расстояние между "дн" явно больше чем нужно.
Захожу сюда редко.

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
    • pretorean-soft.blogspot.com
ну видно же что шрифты разные, попробуй выбрать другой шрифт
http://fpad.ru - Моя коллекция юмора

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
ну видно же что шрифты разные, попробуй выбрать другой шрифт

Нее, шрифт я разный использовал, все равно буквы криво расположены.
Вот тот же шрифт Ариал, что и в Либре


Захожу сюда редко.

Оффлайн Pretorean

  • Мастер
  • Пол: Мужской
    • pretorean-soft.blogspot.com
забавный артефакт )))

а если запустит/перекомпилить в другом дистрибутиве или другой платформе ? тоесть это специфично только для твоей системы или это баг Qt в целом )))

если это линукс и десктоп на основе gtk то гдето должна быть утилитка которая позволяет тюнинговать то как выглядят Qt приложения, там должны быть настройки шрифтов, мож там собака зарыта.

или поспрашивай на prog.org.ru может ктото лечил такие симптомы
http://fpad.ru - Моя коллекция юмора

Оффлайн Film

  • Постоянный читатель
  • Пол: Мужской
забавный артефакт )))

а если запустит/перекомпилить в другом дистрибутиве или другой платформе ? тоесть это специфично только для твоей системы или это баг Qt в целом )))

если это линукс и десктоп на основе gtk то гдето должна быть утилитка которая позволяет тюнинговать то как выглядят Qt приложения, там должны быть настройки шрифтов, мож там собака зарыта.

или поспрашивай на prog.org.ru может ктото лечил такие симптомы

Попробую на другом дистрибутиве скомпилировать.
У меня gtk-шный дистрибутив, действительно возможно это поэтому.... хотя другие программы использующие Qt (например GoldenDict) выглядят нормально, но может быть это потому, что они не используют QTableWidget...

Лень регистрироваться на prog.org.ru :)))))
Захожу сюда редко.

Оффлайн DoReMi

  • Админы
  • *****
  • Пол: Мужской
    • БЛОГОДОРЕМИЕ
Предлагаю забить на Qt и поюзать PureBasic, кроссплатформенный компилятор, всё что надо есть. :)
Вы держитесь здесь,  вам всего доброго, хорошего настроения, здоровья. ©