如何去除PyQt5中textEdit与窗体之间的空隙?

img


在PYQT5中创建了一个textEdit,但发现textEdit与窗体始终保持一定距离(如上图箭头处),用了contentsMargins属性等等都不行。请问如何去除红色箭头处的空隙?

题主是用QBoxLayout布局吧?Qt这一点很不人性,QVBoxLayout里面上下左右各有11像素的留白,要想去掉,试试我这个方法。参考代码如下。

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QTextEdit, QHBoxLayout, QVBoxLayout
from PyQt6.QtGui import QIcon

class MyWindow(QWidget):
    """从QWidget类派生的桌面应用程序窗口类"""
    
    def __init__(self):
        """构造函数"""
        
        super().__init__()
        
        self.setWindowTitle('Hello World')
        self.setWindowIcon(QIcon('res/qt.png'))
        self.resize(320,160)
        
        te = QTextEdit()
        vbox = QVBoxLayout()
        vbox.insertSpacing(0, -10) # 顶部空间减10
        vbox.addWidget(te)
        vbox.insertSpacing(2, -10) # 底部空间减10
        
        hbox = QHBoxLayout()
        hbox.insertSpacing(0, -10) # 左侧空间减10
        hbox.addLayout(vbox)
        hbox.insertSpacing(2, -10) # 右侧空间减10
        
        self.setLayout(hbox)
        self.show() # 显示窗口

if __name__ == '__main__':
    app = QApplication(sys.argv)
    win = MyWindow()
    sys.exit(app.exec())

img

修改一下textedit的大小呢,写死像素长宽