Добрый день!
Мне нужно сделать так, чтобы в качестве элементов ComboBox были нарисованы линии в различных стилях (целая, пунктир и т.д.). Пишу свой делегат, пробую что-нибудь нарисовать, но получается только заполнить первый элемент.
Кто нибудь сталкивался с такой задачей?
Да, ещё нужно, чтобы при сворачивании комбобокса в эдиторе отображалась выбранная линия
Как раз делал такое в прошлом году. На pixmap рисуется линия и ставится иконкой в item комбобокса.
//QComboBox *linestyleBox;
linestyleBox->setIconSize(QSize(40, 10));
QPen pen;
QPainter paint;
pen.setWidth(3);
pen.setColor(QColor(Qt::black));
paint.begin(&pixmap);
//Solid
pixmap.fill(QColor(Qt::white));
pen.setStyle(Qt::SolidLine);
paint.setPen(pen);
paint.drawLine(0, 5, 40, 5);
linestyleBox->insertItem(0, QIcon(pixmap), "Solid line", Qt::SolidLine);
//DashLine
pixmap.fill(QColor(Qt::white));
pen.setStyle(Qt::DashLine);
paint.setPen(pen);
paint.drawLine(0, 5, 40, 5);
linestyleBox->insertItem(0, QIcon(pixmap), "Dash line", Qt::DashLine);
//... другие типы линий
Спасибо! То, что доктор прописал!
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)