Комментарии 22
А не проще сделать ещё один контейнер с, например, абсолютным расположением и положить туда QGraphicsScene и обычную кнопку?
Действительно непонятно зачем делать свой отдельный класс для контрола, который выглядит как обычная кнопка, если есть метод, который позволяет добавить виджет на сцену:
qt-project.org/doc/qt-4.8/qgraphicsscene.html#addWidget
И тогда получается одна строчка: scene.addItem(QtGui.QPushButton(«hi»))
Ну, или как-то так, в Python не силён.
Или я совсем не понял целей автора.
qt-project.org/doc/qt-4.8/qgraphicsscene.html#addWidget
И тогда получается одна строчка: scene.addItem(QtGui.QPushButton(«hi»))
Ну, или как-то так, в Python не силён.
Или я совсем не понял целей автора.
* scene.addWidget(QtGui.QPushButton(«hi»))
Например, кнопку можно «нарисовать» в виде сложной геометрической фигуры:
Например, такой формы:
1) Для большинства нормальных кнопок хватает QPushButton::setStyleSheet()
2) Для совсем странной формы — может быть проще сделать наследование (хотя я всё равно бы наследовал от QPushButton, дабы можно было добавить не обязательно на сцену). Но тогда вопрос, почему это не раскрыто? Самое интересное было бы как раз разобрать «когда» и «что» рисовать.
2) Для совсем странной формы — может быть проще сделать наследование (хотя я всё равно бы наследовал от QPushButton, дабы можно было добавить не обязательно на сцену). Но тогда вопрос, почему это не раскрыто? Самое интересное было бы как раз разобрать «когда» и «что» рисовать.
Здесь цель, скорее, показать, как рисуется кнопка, не более того.
Следуя этой логике, можно нарисовать какой угодно контрол, который отсутствует в коробке.
Ах, да, вот какой формы я имел в виду: www.wikinoticia.com/images/monkeyzen/monkeyzen.com.wp-content.uploads.2009.02.sandwich-sponge.jpg
Следуя этой логике, можно нарисовать какой угодно контрол, который отсутствует в коробке.
Ах, да, вот какой формы я имел в виду: www.wikinoticia.com/images/monkeyzen/monkeyzen.com.wp-content.uploads.2009.02.sandwich-sponge.jpg
proxyWidget'ы вообще чаще всего как костыль выглядят.
Так Вы только за стандартные контролы и виджеты или спользование qml?
А как же творчество и гибкость реализации?
А как же творчество и гибкость реализации?
Не проще все на qml сделать?
Разумеется, проще — для тех, кто с ним знаком. Причём, учитывая гибкость при использовании qml — можно сделать лучше.
Какова цель всего этого? Чем не подходит такой вариант?
Вопрос номер два, не проще ли с ним познакомится, чем заниматься странной хренью?
Не будьте так категоричны, ведь не все свежие и недавние «технологии» нужно срочно начинать использовать. QML ещё и трёх лет нет, да сорс я привёл на Python — о нём и речь. Кто-то может найти для себя в этом пользу, особенно, когда срочно необходимо найти пример реализации и воспользоваться им.
Считаю это логичным.
Считаю это логичным.
Добавить обычную кнопку в QGGraphicsScene — это одна строчка.
А PyQt шевелится что ли еще? Я уж думал все на PySide перебрались, особенно учитывая недавнюю новость о его включении в Qt Project.
Ничего не мешает в этом коде изменить одну строчку. Хотя, не исключены некоторые коллизии из-за различий между PySide и PyQt.
Ну и в PySide можно точно так:
PS PyQt ещё нормально шевелится)
import sys
from PySide.QtGui import QApplication, QGraphicsScene, QGraphicsView, QPushButton
app = QApplication( sys.argv )
scene = QGraphicsScene()
view = QGraphicsView( scene )
someButton = QPushButton( "button" )
scene.addWidget( someButton )
someButton.clicked.connect( view.close )
view.show()
sys.exit( app.exec_() )
PS PyQt ещё нормально шевелится)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Рисуем свою кнопку в QGraphicsScene в PyQt4