2017-10-12 3 views
1

Ist es möglich, die Größe eines QColorDialog zu ändern? Ich konnte das Fenster nicht richtig vergrößern. Nachdem das Dialogfeld angezeigt wurde, wird es auf die Standardgröße zurückgesetzt.Wie kann ich die Größe eines QColorDialog ändern?

Ein Beispiel:

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_()) 

Antwort

1

Die QColorDialog hat eine feste Größe, weil es mehr benutzerdefinierten Widgets enthält, die nicht dafür ausgelegt sind, die Größe veränderbar sind. Es ist possble, um diese Einschränkungen außer Kraft setzen und für die manuelle Größenanpassung wie folgt erlauben:

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

aber wie Sie sehen werden, das Layout wird schnell mit noch ein wenig Ändern der Größe vermasselt. Ich habe auch festgestellt, dass ab einem gewissen Punkt der Dialog aufgrund von Gleitkommaausnahmen tatsächlich abstürzt. Also denke ich, dass du es entweder so akzeptieren musst wie es ist, oder vielleicht deinen eigenen Farbdialog schreibst.

Verwandte Themen