Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QComboBox со стилями линий

Автор: Buzzer 25.10.2010, 16:00

Добрый день!
Мне нужно сделать так, чтобы в качестве элементов ComboBox были нарисованы линии в различных стилях (целая, пунктир и т.д.). Пишу свой делегат, пробую что-нибудь нарисовать, но получается только заполнить первый элемент.
Кто нибудь сталкивался с такой задачей?
Да, ещё нужно, чтобы при сворачивании комбобокса в эдиторе отображалась выбранная линия

Автор: quarz 25.10.2010, 22:51

Как раз делал такое в прошлом году. На 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);
//... другие типы линий


Автор: Buzzer 28.10.2010, 12:06

Спасибо! То, что доктор прописал!

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)