如何控制 QToolBar 中的 QAction 按钮间距?
How to control QAction buttons spacing in QToolBar?
将四个 QAction
按钮添加到 QToolBar
需要设置哪些小部件属性以及设置什么值才能使按钮之间没有间距。所以每个按钮并排放置?
从下面发布的示例可以看出,我试图通过以下方式实现零间距:
toolbar.setContentsMargins(0, 0, 0, 0)
toolbar.layout().setSpacing(0)
toolbar.layout().setContentsMargins(0, 0, 0, 0)
但这没有什么区别,按钮之间仍然间隔开....
import sys
from PyQt4.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.initUI()
def initUI(self):
textEdit = QTextEdit()
self.setCentralWidget(textEdit)
btn1 = QAction(QIcon('icons/btn1.png'), 'Button 01', self)
btn2 = QAction(QIcon('icons/btn2.png'), 'Button 02', self)
btn3 = QAction(QIcon('icons/btn3.png'), 'Button 03', self)
btn3.setEnabled(False)
btn1.setShortcut('Ctrl+Q')
btn1.triggered.connect(self.close)
toolbar = self.addToolBar('Exit')
toolbar.addAction(btn1)
toolbar.addAction(btn2)
toolbar.addAction(btn3)
toolbar.addSeparator()
toolbar.setContentsMargins(0, 0, 0, 0)
toolbar.layout().setSpacing(0)
toolbar.layout().setContentsMargins(0, 0, 0, 0)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('Main window')
self.show()
def main():
app = QApplication(sys.argv)
ex = Window()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
来自 QToolBar 的样式表示例:
spacing: 3px; /* spacing between items in the tool bar */
所以这应该可以解决问题:
toolbar.setStyleSheet("QToolBar{spacing:0px;}");
将四个 QAction
按钮添加到 QToolBar
需要设置哪些小部件属性以及设置什么值才能使按钮之间没有间距。所以每个按钮并排放置?
从下面发布的示例可以看出,我试图通过以下方式实现零间距:
toolbar.setContentsMargins(0, 0, 0, 0)
toolbar.layout().setSpacing(0)
toolbar.layout().setContentsMargins(0, 0, 0, 0)
但这没有什么区别,按钮之间仍然间隔开....
import sys
from PyQt4.QtGui import *
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.initUI()
def initUI(self):
textEdit = QTextEdit()
self.setCentralWidget(textEdit)
btn1 = QAction(QIcon('icons/btn1.png'), 'Button 01', self)
btn2 = QAction(QIcon('icons/btn2.png'), 'Button 02', self)
btn3 = QAction(QIcon('icons/btn3.png'), 'Button 03', self)
btn3.setEnabled(False)
btn1.setShortcut('Ctrl+Q')
btn1.triggered.connect(self.close)
toolbar = self.addToolBar('Exit')
toolbar.addAction(btn1)
toolbar.addAction(btn2)
toolbar.addAction(btn3)
toolbar.addSeparator()
toolbar.setContentsMargins(0, 0, 0, 0)
toolbar.layout().setSpacing(0)
toolbar.layout().setContentsMargins(0, 0, 0, 0)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('Main window')
self.show()
def main():
app = QApplication(sys.argv)
ex = Window()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
来自 QToolBar 的样式表示例:
spacing: 3px; /* spacing between items in the tool bar */
所以这应该可以解决问题:
toolbar.setStyleSheet("QToolBar{spacing:0px;}");