PyQtGraph的GraphicsLayou中的边距

2024-05-17 04:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

使用PyQtGraph实现简单的图形布局:

from pyqtgraph.Qt import QtGui, QtCore                                              
import pyqtgraph as pg                                                              

app = QtGui.QApplication([])                                                        
view = pg.GraphicsView()                                                            
l = pg.GraphicsLayout(border='g')                                                   
view.setCentralItem(l)                                                              
view.show()                                                                         
view.resize(800,600)                                                                

l.addPlot(0, 0)                                                                     
l.addPlot(1, 0)                                                                     

l.layout.setSpacing(0.)                                                             
l.setContentsMargins(0., 0., 0., 0.)                                                

if __name__ == '__main__':                                                          
    import sys                                                                      
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):         
        QtGui.QApplication.instance().exec_() 

输出:

enter image description here

我怎样才能去掉绿色外线和窗口边框之间的小边距?在

我可以用l.setContentsMargins(-10., -10., -10., -10.)来完成这个任务,这样可以:

enter image description here

但在我看来,这是一个肮脏的把戏,应该有另一个参数来设置这个裕度。这有可能吗?是否还有另一个margin参数可以设置为0以获得相同的结果?在


Tags: importview图形参数ifsys布局pyqtgraph
1条回答
网友
1楼 · 发布于 2024-05-17 04:35:41

我想这可能是Qt缺陷。有一个简单的解决方法:

l = pg.GraphicsLayout()
l.layout.setContentsMargins(0, 0, 0, 0)

为了理解这一点,让我们看一个修改过的示例:

^{pr2}$

在本例中,调用l.setContentsMargins(...)具有预期效果,但调用r1.setContentsMargins(...)则没有。Qt文档建议效果应该是相同的,不过:http://qt-project.org/doc/qt-4.8/qgraphicswidget.html#setContentsMargins

相关问题 更多 >