2017-10-12 9 views
1

Est-il possible de redimensionner un QColorDialog? J'ai été incapable d'obtenir la fenêtre pour redimensionner de manière appropriée. Une fois la boîte de dialogue affichée, elle revient à la taille par défaut.Comment redimensionner un QColorDialog

Un exemple:

import sys 

from PyQt5.QtGui import * 
from PyQt5.QtWidgets import * 
from PyQt5.QtCore import * 

class Window(QWidget): 
    def __init__(self): 
     super().__init__() 

     layout = QVBoxLayout() 
     push_Button = QPushButton() 
     layout.addWidget(push_Button) 

     push_Button.clicked.connect(self.button) 
     self.setLayout(layout) 

    def button(self): 
     color = QColorDialog(self) 
     color.resize(100,100) 
     print(color.size()) #Prints 100, 100 
     color.show() 
     print(color.size()) #Prints 551, 431 

if __name__ == '__main__': 

    app = QApplication(sys.argv) 
    window = Window() 
    window.show() 
    sys.exit(app.exec_()) 

Répondre

1

Le QColorDialog a une taille fixe, car il contient plusieurs widgets personnalisés qui ne sont pas conçus pour être redimensionnable. Il est possble de passer outre ces contraintes et permettre le redimensionnement manuel comme celui-ci:

color = QColorDialog(self) 
    color.setSizeGripEnabled(True) 
    color.layout().setSizeConstraint(QLayout.SetNoConstraint) 
    color.show() 

Cependant, comme vous le verrez, la mise en page devient rapidement foiré même avec un peu de redimensionnement. J'ai également constaté qu'au-delà d'un certain point, la boîte de dialogue va réellement se bloquer en raison d'exceptions à virgule flottante. Donc, je pense que vous devrez soit l'accepter tel quel, ou peut-être écrire votre propre dialogue de couleur.