Кнопки центральной панели инструментов PyQT - PullRequest
2 голосов
/ 16 декабря 2011

По умолчанию кнопки панели инструментов в PyQT выровнены по левому краю, возможно ли сделать их по центру, чтобы они скользили при изменении размера?

1 Ответ

9 голосов
/ 17 декабря 2011

Я не уверен, что правильно понимаю, но если вы ищете способ центрировать кнопки на панели инструментов относительно QMainWindow, то да (хак). Вам просто нужно поставить виджет, который действует как «спейсер». Это в основном QWidget с expanding политикой размера.

Вот минимальный пример:

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)
main = QtGui.QMainWindow()
toolbar = QtGui.QToolBar()

# spacer widget for left
left_spacer = QtGui.QWidget()
left_spacer.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
# spacer widget for right
# you can't add the same widget to both left and right. you need two different widgets.
right_spacer = QtGui.QWidget()
right_spacer.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)

# here goes the left one
toolbar.addWidget(left_spacer)
# some dummy actions
toolbar.addAction('one')
toolbar.addAction('two')
toolbar.addAction('three')
# and the right one
toolbar.addWidget(right_spacer)

main.addToolBar(toolbar)
main.show()
sys.exit(app.exec_())

Что дает вам это:

enter image description here

...