RF>Как программно рисовать в клетке таблицы QTableWidget?
Пара советов:
1. описывайте тут, что именно вы хотите получить. Потому что порой средства достижения этого могут быть совсем не теми, какими вы себе представляете. А тут вам подскажут.
2. кастомизируйте элемент Qt в самую последнюю очередь и только лишь в крайних случаях. По умолчанию Qt очень красиво и консистентно сделан, в результате чего интерфейс смотрится последовательно и аккуратно на всех системах. Внося кастомизацию, вы можете ухудшить внешний вид приложения, поиметь много геморроя, и столкнуться с проблемами в разных ОСях.
Ответ на ваш вопрос зависит от того, что вы хотите:
1. может помочь применение методов
Здравствуйте, DiPaolo, Вы писали:
RF>>Как программно рисовать в клетке таблицы QTableWidget?
DP>Пара советов: DP>1. описывайте тут, что именно вы хотите получить. Потому что порой средства достижения этого могут быть совсем не теми, какими вы себе представляете. А тут вам подскажут.
Есть некоторая таблица, у которой есть строки. И в каждой строке этой таблицы нужно закрасить часть (правую) какой-то клетки, потом закрасить полностью одну или несколько клеток (в зависимости от условия в программе), затем закрасить часть (левую) клетки, расположенной справа от этих клеток. То есть нужно раскрасить каким-то цветом (например, серым) часть клеток в строке таблицы. Как это сделать?
1613 г. = 2024 г.
Re[3]: Как рисовать в клетке таблицы QTableWidget?
RF>Есть некоторая таблица, у которой есть строки. И в каждой строке этой таблицы нужно закрасить часть (правую) какой-то клетки, потом закрасить полностью одну или несколько клеток (в зависимости от условия в программе), затем закрасить часть (левую) клетки, расположенной справа от этих клеток. То есть нужно раскрасить каким-то цветом (например, серым) часть клеток в строке таблицы. Как это сделать?
Если вы закрашиваете полностью ячейку, то используйте
(я на память не помню; если эта не подойдет, что тогда setForeground())
Можете разбить вашу строку на ячейки, если это подходит для вашей задачи.
Если же надо внутри ячейки закрашивать разными цветами (типа прогресс бара делать), то я бы посмотреть на пункт 2 из моего ответа выше, то есть перейти к Model-View с отрисовкой в делегате. Ссылка на пример есть выше в сообщении.
Патриот здравого смысла
Re[3]: Как рисовать в клетке таблицы QTableWidget?
Здравствуйте, RussianFellow, Вы писали: DP>>Пара советов: DP>>1. описывайте тут, что именно вы хотите получить. Потому что порой средства достижения этого могут быть совсем не теми, какими вы себе представляете. А тут вам подскажут. RF>Есть некоторая таблица, у которой есть строки. И в каждой строке этой таблицы нужно закрасить часть (правую) какой-то клетки, потом закрасить полностью одну или несколько клеток (в зависимости от условия в программе), затем закрасить часть (левую) клетки, расположенной справа от этих клеток. То есть нужно раскрасить каким-то цветом (например, серым) часть клеток в строке таблицы. Как это сделать?
Есть таблица, в ней есть строки, строки делятся на ячейки, в ячейках нужно рисовать разными цветами, причем не полностью ячейку но и например половину.
Так как ты выбрал QTableWidget то самый простой вариант видится использовать setCellWidget, делаешь для столбца где нужно красить часть ячейки свой виджет, который будет сделан приблизительно так:
------- ------
| wgt1 | wgt2 |
------- ------
wgt1 и wgt2 в RowLayout , цвет QPalette::Window + setAutoFillBackground(true), отображать или нет wiget->setVisible, ну и цвет можно динамически менять если нужно, делать прозрачным чтобы только часть была закрашена и т.д., тут всё на логику приложения нужно завязывать и думать как удобней легче, 1 элемент тебе понадобится или под каждый столбец свой, если полностью красится то setBackground без отдельных элементов.
Здравствуйте, Igore, Вы писали:
I>Есть таблица, в ней есть строки, строки делятся на ячейки, в ячейках нужно рисовать разными цветами, причем не полностью ячейку но и например половину. I>Так как ты выбрал QTableWidget то самый простой вариант видится использовать setCellWidget, делаешь для столбца где нужно красить часть ячейки свой виджет, который будет сделан приблизительно так: I>------- ------ I>| wgt1 | wgt2 | I>------- ------ I>wgt1 и wgt2 в RowLayout , цвет QPalette::Window + setAutoFillBackground(true), отображать или нет wiget->setVisible, ну и цвет можно динамически менять если нужно, делать прозрачным чтобы только часть была закрашена и т.д., тут всё на логику приложения нужно завязывать и думать как удобней легче, 1 элемент тебе понадобится или под каждый столбец свой, если полностью красится то setBackground без отдельных элементов.