头文件为:#include
getColor(const QColor &initial= Qt::white, QWidget *parent= nullptr, const QString &title= QString(), QColorDialog::ColorDialogOptionsoptions= ColorDialogOptions())
getColor(颜色,父类,标题,对话框外观选项)
函数 | 含义 |
QColorDialog::ShowAlphaChannel | 允许用户选择颜色的 Alpha 分量。 |
QColorDialog::NoButtons | 不显示“确定”和“取消”按钮。(对于“实时对话”很有用。 |
QColorDialog::DontUseNativeDialog | 使用Qt的标准颜色对话框,而不是操作系统的原生颜色对话框 |
例子:
- Dialog::Dialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::Dialog)
- {
- ui->setupUi(this);
- resize(600,600);
-
- QPushButton *pb=new QPushButton(this);
- pb->move(200,200);
- pb->setText("弹出颜色选择框");
- connect(pb,&QPushButton::clicked,[=]()
- {
- QColor Cr1=QColorDialog::getColor(Qt::red,this,"获取颜色");
- });
- }
点击按钮后:
获取颜色信息:
函数 | 含义 |
color.name() | 获取颜色名称 |
color.red(),color.green(),color2.blue() | 获取RBG值(红,绿,蓝) |
color.isValid() | 颜色是否有效(有效true) |
currentColorChanged() | 监测颜色是否改变 |
setStandardColor(intindex,QColor) | 更改索引处的QColor颜色 |
- resize(600,600);//设置窗口大小
- QPushButton *pb=new QPushButton(this);
- pb->move(200,200);
- pb->setText("弹出颜色选择框");
- QColor Cr1;
- connect(pb,&QPushButton::clicked,[&Cr1,this]()
- {
- Cr1=QColorDialog::getColor(Qt::red,this,"获取颜色");
- qDebug()<<Cr1.name();//获取颜色名称
- qDebug()<<Cr1.red()<<" "<<Cr1.green()<<" "<<Cr1.blue();//获取rgb
- if(Cr1.isValid())
- {
- qDebug()<<"颜色有效";
- }
- });
点击按钮,选择颜色后显示内容
构造函数:
- QColorDialog dialog(默认颜色,父类)
- QColorDialog dialog(父类)
函数 | 功能 |
setOption | 显示alpha选项 |
currentColor() | 获取当前颜色 |
- QColorDialog dialog(Qt::red,this);
- dialog.setOption(QColorDialog::ShowAlphaChannel);//设置选项
- dialog.exec();//以模态化显示
- QColor color=dialog.currentColor();//获取当前颜色
- qDebug()<<color;
头文件:#include
getOpenFileName(QWidget *parent= nullptr, const QString &caption= QString(), const QString &dir= QString(), const QString &filter= QString(), QString *selectedFilter= nullptr, QFileDialog::Optionsoptions= Options())
参数的含义为:
返回值QString
参数:
- 父类
- 标签
- 对话框打开时的默认路径 "."表示程序运行的目录 也可以填写完整的文件路径
- 过滤器 可以过滤文件类型 不同过滤器用;;隔开同一个过滤器中的不同类型用空格隔开
- 选择过滤器
- 对话框的参数选择
- //文件对话框
- QString file=QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:/QT",tr("视频文件(*mp4)"));
qDebug()<<"选择的路径为:"<<file;
会输出你成功选择的路径
使用:QStringList 接收 函数改为getOpenFileNames()
- QStringList file=QFileDialog::getOpenFileNames(this,tr("文件对话框"),"D:/QT",tr("视频文件(*mp4)"));
- for(auto i:file)
- {
- qDebug()<<i<<endl;
- }
选中文件:
getSaveFilename()
QString file1=QFileDialog::getSaveFileName(this,tr("文件对话框"),"D:/QT",tr("视频文件(*mp4)"));
getExistingDirectory()
- QString file1=QFileDialog::getExistingDirectory(this,tr("文件对话框"),"D:/QT");
- qDebug()<<file1;
头文件:#include
函数:
函数参数:
- 一个标记 ,标记是否点击对话框按钮 传的是指针
- 设置对话框的初始字体和大小
- 指定父类(可省略)
- 对话框标题(可省略)
- 对话框的外观参数(可省略)
- bool ok 代表选择框中是否点击了OK,点击了则为true
- getFont()获取字体
字体参数 | 含义 |
family() | 字体名称 |
bold() | 是否为粗体 |
italic() | 是否为斜体 |
pointSize() | 字体大小 |
- //字体对话框会有一个返回值 用QFont类型数据接收 接收的是字体和参数
- //创建一个bool 类型数据
- bool ok;
- //参数1传输的是指针 所以要加上 &
- QFont font=QFontDialog::getFont(&ok,QFont("楷书",20),this,"选择字体");
- if(ok)
- {
- //可以获取用户选择的字体参数
- qDebug()<<font.family().toUtf8().data()<<" "<<font.bold()<<" "<<font.italic()<<" "<<font.pointSize();
- //family() 字体名称 bold()是否为粗体 italic()是否为斜体 pointSize()字体大小
- }
头文件:#include
QInputDialog::getText() | 文字输入框 |
QInputDialog::getItem() | 条目选择框 |
QInputDialog::getInt() | int型输入框 |
QInputDialog::getDouble() | double 型输入框 |
QInputDialog::getMultiLineText() | 多行字符串输入框 |
getText(QWidget *parent, const QString &title, const QString &label, QLineEdit::EchoModemode= QLineEdit::Normal, const QString &text= QString(), bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), Qt::InputMethodHintsinputMethodHints= Qt::ImhNone)
(父类,标题,控件内容,输入框类型,内容,是否点击OK,框的类型)
输入框类型:
QLineEdit::Normal | 0 | 在输入字符时显示字符。这是默认值。 |
QLineEdit::NoEcho | 1 | 不显示任何内容。这可能适用于密码,甚至密码的长度也应保密。 |
QLineEdit::Password | 2 | 显示与平台相关的密码掩码字符,而不是实际输入的字符。 |
QLineEdit::PasswordEchoOnEdit | 3 | 在编辑时显示输入的字符,否则显示字符。Password |
- //文字输入
- bool ok;//判断是否点击OK
- // 父类 标题 内容 输入框类型 默认内容
- QString text=QInputDialog::getText(this,"文字标准框","label",QLineEdit::Normal,"无",&ok);
getItem(QWidget *parent, const QString &title, const QString &label, const QStringList &items, intcurrent= 0, booleditable= true, bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), Qt::InputMethodHintsinputMethodHints= Qt::ImhNone)
(父类,标题,控件内容,输入框类型,内容,是否点击OK,框的类型)
- //条目选择框
- QStringList items;
- items << tr("Spring") << tr("Summer") << tr("Fall") << tr("Winter");
- bool ok;
- QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"),tr("Season:"), items, 0, false, &ok);
getInt(QWidget *parent, const QString &title, const QString &label, intvalue= 0, intmin= -2147483647, intmax= 2147483647, intstep= 1, bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags())
(父类,标题,内容,默认值,最小值,最大值,增量,ok)
- bool ok;
- int i = QInputDialog::getInt(this, tr("QInputDialog::getInteger()"),tr("Percentage:"), 25, 0, 100, 1, &ok);
- qDebug()<<i;
getDouble(QWidget *parent, const QString &title, const QString &label, doublevalue= 0, doublemin= -2147483647, double max= 2147483647, intdecimals= 1, bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), doublestep= 1)
(父类,标题,内容,默认值,最小值,最大值,增量,ok)
- bool ok;
- double d = QInputDialog::getDouble(this, tr("QInputDialog::getDouble()"),tr("Amount:"), 37.56, -10000, 10000, 2, &ok);
- qDebug()<<d;
getMultiLineText(QWidget *parent, const QString &title, const QString &label, const QString &text= QString(), bool *ok= nullptr, Qt::WindowFlags flags= Qt::WindowFlags(), Qt::InputMethodHintsinputMethodHints= Qt::ImhNone)
(父类,标题,内容,默认内容,ok)
- bool ok;
- QString slist=QInputDialog::getMultiLineText(this,tr("getMultiLineText"),tr("Text"),tr("0"),&ok);
头文件:#include
QProgressDialog::QProgressDialog(const QString&labelText, const QString&cancelButtonText,int minimum,intmaximum,QWidget*parent= nullptr,Qt::WindowFlags f=Qt::WindowFlags())
(标签,内容,最小值,最大值,父类,窗口类型)
- //进度条
- QProgressDialog pdialog(tr("kkkkk"),"取消",0,100,this);
- pdialog.setWindowTitle("进度条");
- pdialog.setModal(true);//设置模态
- pdialog.show();
- for(int i=0;i<1000000;i++)
- {
- pdialog.setValue(i);//设置数值
- QCoreApplication::processEvents();//防止页面被冻结
- if(pdialog.wasCanceled())break;//点击取消,暂停
- }
- pdialog.setValue(1000000);
这个因该和定时器一起使用。(后面的内容)
在Qt中,向导对话框QWizard类提供一个向导界面框架。
头文件:#include
- QWizard 框架
- QWizardPage 框架页面
- addPage() 框架添加页面
在Dialog.h中添加3个函数
- private:
- Ui::Dialog *ui;
- QWizardPage *page1();//页面1
- QWizardPage *page2();//页面2
- QWizardPage *page3();//页面3
在Dialog.cpp中的实现
- QWizardPage* Dialog::page1()
- {
- QWizardPage* page=new QWizardPage;
- page->setTitle(tr("111111111111"));
- return page;
- }
- QWizardPage* Dialog::page2()
- {
- QWizardPage* page=new QWizardPage;
- page->setTitle(tr("222222222222"));
- return page;
- }
- QWizardPage* Dialog::page3()
- {
- QWizardPage* page=new QWizardPage;
- page->setTitle(tr("333333333333"));
- return page;
- }
创建一个按钮,点击进入向导框
- Dialog::Dialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::Dialog)
- {
- ui->setupUi(this);
- resize(600,600);
-
- QPushButton *pb=new QPushButton(this);
- pb->move(200,200);
- pb->setText("弹出颜色选择框");
- connect(pb,&QPushButton::clicked,[=]()
- {
- QWizard zaid;
- zaid.setWindowTitle("向导");
- zaid.addPage(page1());
- zaid.addPage(page2());
- zaid.addPage(page3());
- zaid.exec();
-
- });
-
- }