【发布时间】:2017-04-20 13:34:56
【问题描述】:
如何在两个QLineEdit之间添加水平线,请忽略中文?
【问题讨论】:
如何在两个QLineEdit之间添加水平线,请忽略中文?
【问题讨论】:
没有功能可以执行您的任务,但您可以创建一个具有该特性的小部件:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class LineEdits(QWidget):
def __init__(self, pen=QPen(), parent=None):
super(LineEdits, self).__init__(parent=None)
layout = QHBoxLayout(self)
self.lineEdit1 = QLineEdit(self)
layout.addWidget(self.lineEdit1)
spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
layout.addItem(spacerItem)
self.lineEdit2 = QLineEdit(self)
layout.addWidget(self.lineEdit2)
self.pen = pen
def paintEvent(self, event):
QWidget.paintEvent(self, event)
painter = QPainter(self)
painter.setPen(self.pen)
start = self.lineEdit1.pos() + QPoint(self.lineEdit1.width(), self.lineEdit1.height()/2)
stop = self.lineEdit2.pos() + QPoint(0, self.lineEdit2.height()/2)
painter.drawLine(start, stop)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
w = LineEdits(pen=QPen(Qt.black, 2))
w.show()
sys.exit(app.exec_())
【讨论】: