我想做什么:
在PySide中,可以覆盖paintEvent()
的{{1}}方法来绘制自定义小部件。可以通过覆盖QWidget
方法来自定义边界矩形。
如何在JavaFX中执行此操作?我的目标是创建一个自定义boundingRect()
对象,它自己比它的边界矩形小。
在上下文中: 我在JavaFX中创建了MS Paint克隆。我正在使用您选择/移动像素的选择框。我希望光标在选择框的外部附近时更改为适当的调整大小光标。
但是,边界矩形与屏幕上绘制的选择框大小相同,因此光标仅在框顶部时更改,但在靠近时不会更改。我的解决方案是将边界矩形设置为大于实际选择框,因此将发生光标更改。然后,覆盖它的Rectangle
等效于绘制一个较小的选择框。
感谢您的帮助。
答案 0 :(得分:0)
我有一个类似的用例,在这里问了一个类似的问题:Drawing transform independent layout bounds in JavaFX。
JavaFX API比Java2D或PySide要高得多(我从你的片段中假设,因为我实际上从未听说过它;)),它不允许你覆盖节点的绘制,也不能阻止节点继承其父变换。
这意味着您需要一个与您的内容并行的单独组,您可以在其中创建选择框并根据您的需要进行更新(内容更改等)。
示例SceneGraph: