我正在尝试设计一个简单的按钮(QPushButton 或 QToolButton,两者都可以),它本质上是它所代表的颜色的矩形。单击它会打开一个 QColorDialog,然后在其中选择一种颜色会重新绘制按钮。
所以,基本上,看起来像其中之一的东西:
我做了一些尝试,但都没有给我带来我想要的功能。
投币口:
void MainWindow::OnButtonColorClick()
{
QColor initialColor = ui->buttonColor->palette().color(QPalette::Background);
QColor colorSelected = QColorDialog::getColor(initialColor, this);
if(colorSelected.isValid())
{
ui->buttonColor->setPalette(QPalette(colorSelected));
ui->buttonColor->setAutoFillBackground(true);
}
}
尝试#1:
在构造函数中设置 Palette:
ui->buttonCoulor->setPalette(QPalette(Qt::black));
结果:单击前的普通按钮,选择后的细彩色轮廓。
尝试#2:
添加样式表:
background-color: rgb(0, 0, 0);
结果:点击前黑色矩形,选择后黑色矩形。
我觉得我在绕着下水道转。本质上,我如何实现:
?