2015-01-18 3 views
2

enter image description hereКак управлять расстоянием кнопок QAction в 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() 

ответ

8

Из примеров таблиц стилей для QToolBar:

интервал: 3px;/* Расстояние между элементами в панели инструментов */

Так что это следует сделать трюк:

toolbar.setStyleSheet('QToolBar{spacing:0px;}' 
+0

Спасибо !!! Потребовалось время, чтобы получить ответ! Еще раз спасибо! – alphanumeric