如何调整QColorDialog的大小

时间:2017-10-12 15:36:57

标签: python python-3.x resize pyqt5 qcolordialog

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

一个例子:

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

1 个答案:

答案 0 :(得分:1)

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

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

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