Ребята, срочно нужна помощь. Сам уже весь мозг сломал. Суть вопроса. Есть простая форма, на ней QSlider и кнопка QPushButton. Необходимо по нажатию кнопки в месте, где находится ползунок слайдера, ставить вертикальную черту.
Как я понял, рисовать на виджете можно только в событии paintEvent. Ок, наследуюсь от QSlider:
QtGui.QSlider.paintEvent(self, event)
paint = QtGui.QPainter(self)
paint.setPen(QtGui.QPen(QtCore.Qt.darkGray, 2, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap))
paint.setBrush(QtGui.QBrush(QtCore.Qt.gray, QtCore.Qt.SolidPattern))
paint.drawLine(10, 0, 10, 100)
Сделать флаг - рисовать или нет. По нажатью на кнопку менять флаг/вызывать update слайдера.
В самом слайдере сделать условное рисование:
if self.drawLine:
paint = QtGui.QPainter(self)
paint.setPen(QtGui.QPen(QtCore.Qt.darkGray, 2, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap))
paint.setBrush(QtGui.QBrush(QtCore.Qt.gray, QtCore.Qt.SolidPattern))
paint.drawLine(10, 0, 10, 100)
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)