Здравствуйте, RussianFellow, Вы писали:
RF>Есть некоторый виджет wgt типа QWidget. Как на нём осуществить рисование? (Рисование точек, линий, прямоугольников, закраска областей).
Вот так:
void myWidget::paintEvent(QPaintEvent *event )
{
QPainter Painter( this );
Painter.fillRect( 0,0,width(),height(),QColor(97,127,127) );
// Ещё чего-нибудь.
}
А потом так рраз!
MainWindow->myWidget->repaint();
И оно нарисовалось.
PS.
Не ругайтесь на новичка. Рисовать через вызов события — это действительно неочевидно.
Здравствуйте, Нomunculus, Вы писали:
A>>PS. A>>Не ругайтесь на новичка. Рисовать через вызов события — это действительно неочевидно.
Н>Действительно. Учитывая что вся работа на MFC на этом основана
Ну... Я MFC в последний раз видел в прошлом веке.
И... Я подозреваю, что там другие события.
Например, в прошлой версии Qt было необязательно делать myWidget->repaint();
Здравствуйте, Нomunculus, Вы писали:
Н>Здравствуйте, RussianFellow, Вы писали:
Н>Специально даже качнул книгу. Н>Глава 18.
Просмотрел, но там мало про это написано. Как я понимаю, надо использовать QLabel, которую потом надо вставлять в QWidget?
Нельзя ли тем не менее привести образец кода?
Нет. QLabel там для примера. Неужели сложно догадаться. Примеры кода приводить не буду. Тебе лень пальцем пощевелить, а других просишь работать за тебя. Привык что тебе все разжёвывают.
Здравствуйте, RussianFellow, Вы писали:
RF>Есть некоторый виджет wgt типа QWidget. Как на нём осуществить рисование? (Рисование точек, линий, прямоугольников, закраска областей).
Мне вот прям интересно стало, что такое ты хочешь сделать что нужно именно ручное рисование? Хотеслоь бы картинку увидеть, всё что мне приходит в голову это в telegram delegat-ы, там ручное рисование чтобы было быстро, для обычных случаем widget на стандартных элементах должен покрывать 95% случаем.
Здравствуйте, Igore, Вы писали:
I>Здравствуйте, RussianFellow, Вы писали:
RF>>Есть некоторый виджет wgt типа QWidget. Как на нём осуществить рисование? (Рисование точек, линий, прямоугольников, закраска областей). I>Мне вот прям интересно стало, что такое ты хочешь сделать что нужно именно ручное рисование? Хотеслоь бы картинку увидеть, всё что мне приходит в голову это в telegram delegat-ы, там ручное рисование чтобы было быстро, для обычных случаем widget на стандартных элементах должен покрывать 95% случаем.
Есть некоторая таблица myTable типа QTableWidget. И в её клетках я хочу программно нарисовать какие-то рисунки. Как мне это сделать?
Здравствуйте, RussianFellow, Вы писали:
RF>Есть некоторая таблица myTable типа QTableWidget. И в её клетках я хочу программно нарисовать какие-то рисунки. Как мне это сделать?
Здравствуйте, RussianFellow, Вы писали:
RF>Есть некоторая таблица myTable типа QTableWidget. И в её клетках я хочу программно нарисовать какие-то рисунки. Как мне это сделать?
Здравствуйте, RussianFellow, Вы писали:
RF>Есть некоторая таблица myTable типа QTableWidget. И в её клетках я хочу программно нарисовать какие-то рисунки. Как мне это сделать?
Берешь картинки и кладешь их в ресурсы, берешь QLabel устанавливаешь ему setPixmap, может еще и scaledContents, и устанавливаешь эту QLabel(или наследника) как виджет для ячейки, если нужна логика выделяешь как отдельный класс отнаследованный от QLabel и там всё прописываешь.
Здравствуйте, Igore, Вы писали:
I>Здравствуйте, RussianFellow, Вы писали:
RF>>Есть некоторая таблица myTable типа QTableWidget. И в её клетках я хочу программно нарисовать какие-то рисунки. Как мне это сделать? I>Берешь картинки и кладешь их в ресурсы, берешь QLabel устанавливаешь ему setPixmap
А если мне не нужно создавать ресурсы с картинками, а рисовать, допустим, прямоугольник с большей или меньшей шириной (в зависимости от условия в программе)? Можно ли программно рисовать геометрические фигуры в QLabel? Если да, то как это сделать?
Здравствуйте, RussianFellow, Вы писали:
RF>Вот я нашёл: RF>https://www.cyberforum.ru/qt/thread1967196.html
Да чтож ты всё ручками рисовать то хочешь
RF>А если мне не нужно создавать ресурсы с картинками, а рисовать, допустим, прямоугольник с большей или меньшей шириной (в зависимости от условия в программе)?
Берешь виджет, внутрь него помещаешь еще один виджет, выставляешь ему ширину, цвет и всё, а этот отдельный виджет помещаешь в ячейку
rootWidget
-rectangleWidget
а уж как внутренний виджет разположен в Layout или еще как чтобы размеры при resize нормально сделать это уже от нужного поведения зависит