我试图在Linux上用QT编写一个电路设计软件。我使用KDE 5等离子桌面和QTCreator作为IDE。
我试着用QFrame paintEvent在上面画画,但当我抓住QFrame里面的窗户时,它就动了。
我知道QGraphicsView,但我不能做一个定制的类,并在此基础上推广它(它没有列出)。
如何从容器(QFrame、QGraphicsView或其他任何东西)创建一个自定义类,其中我可以覆盖画图事件,而且如果我抓住它,它也不会移动窗口。
为我糟糕的英语感到抱歉。
发布于 2016-05-31 12:54:58
QGraphicsView继承了QAbstractScrollArea,后者继承了QFrame本身。
因此,您可以将QFrame保持在表单中,并将其提升到画布类,但只需让您的画布类继承QGraphicsView。
尽管如此,我的Qt在行为上与OP有两个不同之处(但我不使用KDE):
QFrame并移动鼠标对我来说并不能移动整个窗口。我想通过在画布类中重新实现void mousePressEvent ( QMouseEvent * event )并给它一个空代码来改变OP的这种行为。(文档)QGraphicsView放在ui文件中,然后右击它们,将它们提升到另一个自定义类。编辑:找到为什么窗口在KDE上移动的原因!
https://stackoverflow.com/questions/37544744
复制相似问题