2017-10-12 167 views
1

是否可以调整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

QColorDialog具有固定大小,因为它包含未设计成可调整大小的几个定制窗口小部件。这 possble覆盖这些限制,并允许手动调整大小是这样的:

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

然而,正如你所看到的,布局迅速成为与调整的哪怕是一点点混乱。我还发现,超出某个特定点,由于浮点异常,对话框实际上会崩溃。所以我认为你要么必须接受它,要么编写自己的颜色对话框。

相关问题