Как изменить размер 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
имеет фиксированный размер, потому что он содержит несколько пользовательских виджетов, которые не предназначены для изменения размера. Возможно переопределить эти ограничения и разрешить ручное изменение размера следующим образом:
color = QColorDialog(self)
color.setSizeGripEnabled(True)
color.layout().setSizeConstraint(QLayout.SetNoConstraint)
color.show()
Тем не менее, как вы увидите, макет быстро перепутается с небольшим изменением размера. Я также обнаружил, что после определенной точки, диалог на самом деле падает из-за исключений с плавающей запятой. Поэтому я думаю, что вам придется либо принять все как есть, либо, возможно, написать свой собственный цветной диалог.