crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в [PyQt] Рисование на виджете по кнопке
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
lanz Дата 22.4.2013, 9:51
  Сделать флаг - рисовать или нет. По нажатью на кнопку менять флаг/вызывать 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)
darktroll Дата 20.4.2013, 12:27
  Ребята, срочно нужна помощь. Сам уже весь мозг сломал. Суть вопроса. Есть простая форма, на ней 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)

Так рисует. Но мне надо при нажатии на кнопку. Если этот же код вызывать вне события paintEvent, то консоль ругается и не рисует:
QPainter::begin: Paint device returned engine == 0, type: 1
Подскажите плиз, как решить проблему?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 14:31