我正在尝试在Linux上的QT中编写电路设计软件。我正在使用KDE 5 Plasma桌面和QTCreator作为IDE。
我尝试使用QFrame paintEvent在其上绘画,并且它有效,但是当我抓住QFrame内的窗口时它就移动了。
我知道QGraphicsView,但是我不能创建一个自定义类并基于它来推广它(它没有列出)。
如何从容器(QFrame,QGraphicsView或任何东西)创建自定义类,我可以覆盖绘制事件,如果我抓住它也不会移动窗口?
抱歉我的英语很差。
答案 0 :(得分:0)
QGraphicsView
继承自QAbstractScrollArea
本身的QFrame
。
因此,您可以将QFrame
保留在表单中,并将其提升为canvas类,但只需让canvas类继承QGraphicsView
。
虽然,我的Qt与OP的行为有两个不同(但我不使用KDE):
QFrame
并移动鼠标不会移动整个窗口。我想可以通过在canvas类中重新实现void mousePressEvent ( QMouseEvent * event )
并给它一个空代码来改变OP的这种行为。 (doc)QGraphicsView
放入我的ui文件中,我可以右键单击它们将它们推广到另一个自定义类。编辑:找到reason窗口在KDE上移动的原因!