如何调整 QColorDialog 的大小

How to resize a QColorDialog

是否可以调整 QColorDialog 的大小?我一直无法让 window 适当地调整大小。显示对话框后,它将恢复为默认大小。

一个例子:

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

QColorDialog 具有固定大小,因为它包含多个自定义小部件,这些小部件并非设计为可调整大小。 可以覆盖这些约束并允许像这样手动调整大小:

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

但是,正如您将看到的,布局很快就会变得一团糟,即使是稍微调整一下大小。我还发现,超过某个点,对话框实际上会由于浮点异常而崩溃。所以我认为您要么必须按原样接受它,要么编写您自己的颜色对话框。