pyqt中如何实现QLineEdit与QLineEdit无间隙
How to achieve no gap between QLineEdit and QLineEdit in pyqt
在这种情况下,我添加了两个具有水平布局的 QLineEdits。 QLineEdit 的样式设置为仅顶部和底部边框。但是两个qlabels的上下边框之间有一个空隙。如何让两个QLineEdits的上下边框没有缝隙?
import sys
from PyQt4 import QtGui
class Edit(QtGui.QLineEdit):
def __init__(self, text):
super(Edit, self).__init__()
self.setText(text)
self.setFixedSize(200, 40)
self.setStyleSheet("""*{border-width: 1px;
border-style: solid;
border-color: red;
border-left:none;
border-right:none;
margin:0px;
padding:0px;
}""")
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
h = QtGui.QHBoxLayout()
a = Edit("Hello World")
b = Edit("Hello World")
h.addWidget(a)
h.addWidget(b)
h.setContentsMargins(0, 0, 0, 0)
h.addStretch(1)
self.setLayout(h)
self.setGeometry(100, 100, 500, 500)
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
如果我明白了,您想有效地使您的编辑小部件看起来像一个没有间隙的小部件吗?
您的 QHBoxLayout
具有默认间距值,用于在小部件之间添加间隙。您正在清除 contentsMargins
(布局边缘周围使用的边距 space),但小部件之间的间距仍将按照您当前的样式保留。
添加一个setSpacing(0)
清除它:
def initUI(self):
h = QtGui.QHBoxLayout()
a = Edit("Hello World")
b = Edit("Hello World")
h.addWidget(a)
h.addWidget(b)
h.setContentsMargins(0, 0, 0, 0)
h.setSpacing(0)
h.addStretch(1)
self.setLayout(h)
self.setGeometry(100, 100, 500, 500)
self.show()
在这种情况下,我添加了两个具有水平布局的 QLineEdits。 QLineEdit 的样式设置为仅顶部和底部边框。但是两个qlabels的上下边框之间有一个空隙。如何让两个QLineEdits的上下边框没有缝隙?
import sys
from PyQt4 import QtGui
class Edit(QtGui.QLineEdit):
def __init__(self, text):
super(Edit, self).__init__()
self.setText(text)
self.setFixedSize(200, 40)
self.setStyleSheet("""*{border-width: 1px;
border-style: solid;
border-color: red;
border-left:none;
border-right:none;
margin:0px;
padding:0px;
}""")
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
h = QtGui.QHBoxLayout()
a = Edit("Hello World")
b = Edit("Hello World")
h.addWidget(a)
h.addWidget(b)
h.setContentsMargins(0, 0, 0, 0)
h.addStretch(1)
self.setLayout(h)
self.setGeometry(100, 100, 500, 500)
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
如果我明白了,您想有效地使您的编辑小部件看起来像一个没有间隙的小部件吗?
您的 QHBoxLayout
具有默认间距值,用于在小部件之间添加间隙。您正在清除 contentsMargins
(布局边缘周围使用的边距 space),但小部件之间的间距仍将按照您当前的样式保留。
添加一个setSpacing(0)
清除它:
def initUI(self):
h = QtGui.QHBoxLayout()
a = Edit("Hello World")
b = Edit("Hello World")
h.addWidget(a)
h.addWidget(b)
h.setContentsMargins(0, 0, 0, 0)
h.setSpacing(0)
h.addStretch(1)
self.setLayout(h)
self.setGeometry(100, 100, 500, 500)
self.show()