如何删除自定义 PyQt 小部件周围的边距?
How to remove the margin around a custom PyQt widget?
我使用 PyQt 创建了一个自定义小部件:
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QVBoxLayout, QTextEdit
class Item(QtWidgets.QWidget):
def __init__(self):
super(Item, self).__init__()
vbox = QVBoxLayout()
vbox.addWidget(QTextEdit())
self.setLayout(vbox)
然后我将这个小部件添加到对话框中:
import sys
from PyQt5.QtWidgets import QVBoxLayout, QLabel, QApplication, QDialog, \
QTextEdit
from Item import Item
class Main(QDialog):
def __init__(self):
super(Main, self).__init__()
self.init_ui()
def init_ui(self):
vbox = QVBoxLayout()
vbox.addWidget(QTextEdit())
vbox.addWidget(Item())
self.setLayout(vbox)
def main():
app = QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
结果如下:
如您所见,自定义小部件(下图)的左右两侧似乎有一些边距,如何去除边距?我希望结果是这样的:
感谢@musicamante的评论,我在Item
中添加了以下代码,问题解决了:
vbox.setContentsMargins(0, 0, 0, 0)
我使用 PyQt 创建了一个自定义小部件:
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QVBoxLayout, QTextEdit
class Item(QtWidgets.QWidget):
def __init__(self):
super(Item, self).__init__()
vbox = QVBoxLayout()
vbox.addWidget(QTextEdit())
self.setLayout(vbox)
然后我将这个小部件添加到对话框中:
import sys
from PyQt5.QtWidgets import QVBoxLayout, QLabel, QApplication, QDialog, \
QTextEdit
from Item import Item
class Main(QDialog):
def __init__(self):
super(Main, self).__init__()
self.init_ui()
def init_ui(self):
vbox = QVBoxLayout()
vbox.addWidget(QTextEdit())
vbox.addWidget(Item())
self.setLayout(vbox)
def main():
app = QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
结果如下:
如您所见,自定义小部件(下图)的左右两侧似乎有一些边距,如何去除边距?我希望结果是这样的:
感谢@musicamante的评论,我在Item
中添加了以下代码,问题解决了:
vbox.setContentsMargins(0, 0, 0, 0)