颜色对话框:QColorDialog
QColorDialog提供了一个可以获取指定颜色的对话框部件。
提示:使用之前需要包含 <QColorDialog> 头文件。
常用静态 getColor() 函数显示对话框,并允许用户指定颜色。
1.成员函数:
1.1构造函数:
QColorDialog::QColorDialog(QWidget * parent = 0)
创建一个颜色对话框,并指定其父对象。
QColorDialog::QColorDialog(const QColor & initial, QWidget * parent = 0)
创建一个颜色对话框,指定默认颜色和父对象。
1.2其他成员函数:
获取当前选中颜色:
QColor currentColor() const
获取点击OK键或同等效的按钮时当前的选中的颜色:
QColor QColorDialog::selectedColor() const
ColorDialogOption此属性包含影响对话框外观的各种选项。
设置ColorDialogOption:
void QColorDialog::setOption(ColorDialogOption option, bool on = true)
说明:将指定的option设置为启动,否则,清除给定的选项。
返回当前ColorDialogOption:
ColorDialogOption options() const
判断option是否为启动状态:
bool QColorDialog::testOption(ColorDialogOption option) const
说明:当option为启动状态,返回true,否则返回false
2.枚举:
QColorDialog::ColorDialogOption
Constant | Value | Description |
---|---|---|
QColorDialog::ShowAlphaChannel | 0x00000001 | 允许用户选择颜色的alpha组件 |
QColorDialog::NoButtons | 0x00000002 | 不要显示OK和Cancel按钮。(对于“实时对话”非常有用。) |
QColorDialog::DontUseNativeDialog | 0x00000004 | 使用Qt的标准颜色对话框,而不是操作系统的本机颜色对话框。 |
3.信号:
当用户点击OK键时发出的信号:
void colorSelected(const QColor & color)
当currentColor 改变时发出的信号:
void currentColorChanged(const QColor & color)
4.静态方法
返回index处的自定义颜色:
QColor QColorDialog::customColor(int index)
返回支持自定义颜色的数量总长度
int QColorDialog::customCount()
返回用户选择的颜色:(最常用)
QColor QColorDialog::getColor(const QColor &initial =Qt::white, QWidget * parent =0, constQString & title = QString(), ColorDialogOptionsoptions = 0)
弹出一个带有指定窗口标题的模态颜色对话框(如果没有指定则为“选择颜色”),让用户选择一个颜色,并返回该颜色。
颜色最初设置为initial。
对话框是父对话框的子对话框。如果用户取消对话框,它将返回一个无效的颜色(参见QColor::isValid())。
options参数允许您自定义对话框
设置自定义颜色在index处
void setCustomColor(int index, QColor color)
设置标准色在index处
void setStandardColor(int index, QColor color)
返回index处的标准色
QColor standardColor(int index)
5.例子:
5.1使用静态方法:
//创建一个QColor
QColor myColor(222,111,123);
//使用getColor方法打开颜色对话框,并指定默认颜色,父对象和对话框标题
myColor = QColorDialog::getColor(myColor,this,tr("选择颜色"));
//输出颜色
qDebug() << myColor;
5.2使用对象;
//创建一个QColor
QColor myColor(222,111,123);
//创建一个颜色对话框,并指定初始颜色和父对象
QColorDialog myColorDialog(myColor,this);
//设置option
myColorDialog.setOption(QColorDialog::ShowAlphaChannel);
//将对话框显示为模态对话框,阻塞直到用户关闭它
myColorDialog.exec();
//获取当前选中的颜色
myColor = myColorDialog.currentColor();
//输出颜色
qDebug() << myColor;