Вы должны изменить QSizePolicy кнопки, чтобы она не расширялась по горизонтали.
Не злоупотребляйте self, это используется как «self» для сохранения ссылки, но в случае раскладок в редких случаяхВы получаете к нему доступ.С другой стороны, чтобы поддерживать порядок, я сначала объявил виджеты.
Наконец, я удалил ненужный макет.
def initUI(self):
self.close_pushbtn = QtGui.QPushButton(
text="Close",
sizePolicy=QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Maximum)
)
self.line = QtGui.QFrame(frameShape=QtGui.QFrame.HLine)
self.add_btn = QtGui.QPushButton(
text="Add",
sizePolicy=QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Maximum)
)
label = QtGui.QLabel(text="address ")
le = QtGui.QLabel(text="scroll area")
title_hbox = QtGui.QHBoxLayout()
title_hbox.addWidget(self.close_pushbtn, alignment=QtCore.Qt.AlignRight)
order_hbox = QtGui.QHBoxLayout()
order_hbox.addWidget(label)
order_hbox.addWidget(le)
addhbox = QtGui.QHBoxLayout()
addhbox.addWidget(self.add_btn, alignment=QtCore.Qt.AlignCenter)
grid = QtGui.QVBoxLayout(self)
grid.addLayout(title_hbox)
grid.addWidget(self.line)
grid.addLayout(order_hbox)
grid.addLayout(addhbox)
self.resize(800, 300)
self.show()
Другой вариант - использовать растяжку с каждой стороны:
def initUI(self):
self.close_pushbtn = QtGui.QPushButton(text="Close")
self.line = QtGui.QFrame(frameShape=QtGui.QFrame.HLine)
self.add_btn = QtGui.QPushButton(text="Add")
label = QtGui.QLabel(text="address ")
le = QtGui.QLabel(text="scroll area")
title_hbox = QtGui.QHBoxLayout()
title_hbox.addStretch()
title_hbox.addWidget(self.close_pushbtn)
order_hbox = QtGui.QHBoxLayout()
order_hbox.addWidget(label)
order_hbox.addWidget(le)
addhbox = QtGui.QHBoxLayout()
addhbox.addStretch()
addhbox.addWidget(self.add_btn)
addhbox.addStretch()
grid = QtGui.QVBoxLayout(self)
grid.addLayout(title_hbox)
grid.addWidget(self.line)
grid.addLayout(order_hbox)
grid.addLayout(addhbox)
self.resize(800, 300)
self.show()