qt中颜色对话框弹出时应用程序输出栏出现setGeometry: Unable to set geometry 152x30+682+300 on QWidgetWindow/‘QColorDialo

本文档描述了在Qt应用程序中使用QColorDialog时遇到的几何位置设置问题,表现为在打开颜色选择对话框时,应用程序输出错误信息。解决方法是通过设置QColorDialog的geometry属性来指定其位置和大小,例如colorDlg.setGeometry(200, 200, 300, 280)。这样做可以避免应用程序输出错误,并正确显示颜色对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在项目中点击按钮,弹出颜色选择对话框,但同时应用程序会在应用程序输出一栏中显示。


setGeometry: Unable to set geometry 152x30+682+300 on QWidgetWindow/'QColorDialogClassWindow'. Resulting geometry:  556x459+682+300 (frame: 9, 38, 9, 9, custom margin: 0, 0, 0, 0, minimum size: 556x459, maximum size: 556x459)

解决方法

首先展示一下颜色对话框的创建部分代码:

void MainWindow::on_pushButton_clicked()
{
    QColor color = QColorDialog::getColor(Qt::red, this, QStringLiteral("Select Color"), QColorDialog::ShowAlphaChannel);
}

这样创建的颜色对话框点击按钮之后,显示颜色对话框的同时,也会在应用程序输出栏中显示上面的问题。实际上需要设置颜色对话框的位置大小,上面展示的代码无法设置颜色对话框的位置大小,所以修改颜色对话框这段代码。
首先展示一下颜色对话框的创建部分代码:

void MainWindow::on_pushButton_clicked()
{
    QColor defaultColor = QRgb("#000000");
    QColorDialog colorDlg(this);
    colorDlg.setGeometry(200,200,300,300);
    colorDlg.setWindowTitle(QStringLiteral("颜色选择对话框"));
    colorDlg.setCurrentColor(defaultColor);
    if (colorDlg.exec() == QColorDialog::Accepted) {
       QColor color = colorDlg.selectedColor();
    }
}

上面使用创建颜色对话框的方式,设置了颜色对话框的大小位置后,再运行程序,点击按钮,出现颜色对话框的时候就不会出现引言中提到的问题了。此时如果注释掉颜色的对话框的位置大小设置后,就会出现。即关键是这句 colorDlg.setGeometry(200,200,300,280)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值