<FilesMatch ".+\.*$">
SetHandler !
</FilesMatch>
上面的代码只显示了两个小部件(from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys
data = {'dia': 23, 'mes': 8, 'ano': 2017}
class FormConfigBkpBD(QWidget):
senha = None
pathLine = None
def __init__(self, parent=None,instancia=None):
super(FormConfigBkpBD, self).__init__(parent)
mainLayout = QVBoxLayout()
mainLayout.setSpacing(0)
mainLayout.setContentsMargins(0, 0, 0, 0)
self.senha = QLineEdit()
self.senha.setEchoMode(QLineEdit.Password)
self.senha.setFixedSize(385, 25)
self.pathLine = QLineEdit()
self.pathLine.setFixedSize(355,25)
self.senha.setContentsMargins(0,0,0,0)
self.pathLine.setContentsMargins(0,0,0,0)
mainLayout.addWidget(self.pathLine,0,Qt.AlignTop)
mainLayout.addWidget(self.senha,0,Qt.AlignTop)
self.setWindowTitle("Configuração de Backup - Banco de Dados")
self.setFixedSize(460,640)
self.setLayout(mainLayout)
def main():
app = QApplication(sys.argv)
bd = FormConfigBkpBD()
bd.show()
app.exec()
if __name__ == "__main__" :
main()
),原始窗口有更多的小部件,这仅适用于此处发布。
为什么,即使QLineEdit
和setSpacing(0)
小部件之间有空格?
答案 0 :(得分:2)
这是因为窗口的固定大小与您使用的布局之间的组合。垂直布局尝试垂直分布(除非另有说明)其所有子项,并填充整个窗口。
这里有两个小部件,所以第一个进入第一个单元格,第二个进入第二个单元格。由于您尚未设置任何对齐,因此存在默认行为,即每个单元格的左上角是窗口小部件所在的位置。其余的只是填充布局所属的父窗口的可用空间。
如果您不想在小部件之间留出空间
第一个选项可能不是您想要做的(否则您可能不会首先将其设置为固定大小)。第二个可以通过简单地使用QSpacerItem
(垂直一个)来实现,它将为您处理空白空间并将小部件推送到您想要的位置:
mainLayout.addStretch(1)
如果您需要更好地控制其行为,也可以手动添加间隔:
self.spacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) # or Fixed
mainLayout.addItem(self.spacer)