您的位置:首页 > 编程语言 > Qt开发

【QT】QT从零入门教程(十四):标准颜色对话框类QColorDialog

2018-02-28 17:33 639 查看
  Qt中提供了一些标准的对话框,用于实现一些常用的预定义功能,本节要讲的是颜色对话框QColorDialog,它是在标准文件对话框的基础之上添加一些布局实现的。



测试程序:

QColor color = QColorDialog::getColor(Qt::white, this);  // 设定对话框打开时默认选择的颜色

QString msg = QString("r: %1, g: %2, b: %3").arg( QString::number(color.red()),                 // 获取颜色
QString::number(color.green()),
QString::number(color.blue()));

QMessageBox::information(NULL, "Selected color", msg);


示例

  进入正题,首先是创建一个按钮和一个QFrame控件,点击按钮后弹出颜色对话框,选择好颜色之后,QFrame控件显示相应的颜色。大致效果如下图所示:



// 头文件
private:
QPushButton *colorBtn;//标准颜色对话框类
QFrame *colorFram;

private slots:
void setColor();


// cpp

// 按钮
colorBtn= new QPushButton(tr("画笔颜色"));
connect(colorBtn, SIGNAL(clicked()), this, SLOT(setColor()));

// QFrame控件
colorFram= new QFrame;
colorFram->setFrameShape(QFrame::Box);              // 形状
colorFram->setPalette(QPalette(Qt::black));         // 初始颜色
colorFram->setAutoFillBackground(true);             // 填充
colorFram->setFixedSize(25, 25);                    // 固定大小

void mainWindow::setColor()     // 槽函数
{
QColor c = QColorDialog::getColor(Qt::blue);  // 颜色选择对话框
if (c.isValid())
{
frame_color->setPalette(QPalette(c));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: