题主是用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())
修改一下textedit的大小呢,写死像素长宽