龙空技术网

Qt标准对话框:8大对话框详解

音视频开发老舅 169

前言:

当前咱们对“qt文本框怎么设置透明”大概比较注意,同学们都想要了解一些“qt文本框怎么设置透明”的相关内容。那么小编也在网上搜集了一些对于“qt文本框怎么设置透明””的相关知识,希望朋友们能喜欢,姐妹们快快来了解一下吧!

1、颜色选择对话框

颜色对话框类 QColorDialog 提供了一个可以获取指定颜色的对话框的对话框部件:

//添加头文件#include <QColorDialog>//getColor的3个参数分别是:设置初始颜色、父窗口、和对话框标题QColor color = QColorDialog::getColor(Qt::red, this, "Color dialog");qDebug()<<"color"<<color;

这里使用 QColorDialog 的静态函数 getColor () 来获取颜色,执行时弹出颜色选择对话框:

返回的是一个 QColor 类型的数据:

这四个数值分别代表:透明度(alpha)、Red、Green、Blue。它们的默认值都是 0.0~1.0,有效数字为 6 位,对于 alpha 来说,1.0 表示完全不透明,0.0 表示完全透明。

还可以通过创建对象的方式创建颜色对话框:

QColorDialog dialog(Qt::red,this);dialog.setOption(QColorDialog::ShowAlphaChannel);dialog.exec();QColor color = dialog.currentColor();qDebug()<<"color"<<color;

效果与前面使用静态方法的一样。

二、字体对话框

字体对话框 QFontDialog 类提供了一个可以选择字体的对话框部件:

#include <QFontDialog>//ok is a sign to mark what you chosen(OK or Calcel)bool ok;QFont font = QFontDialog::getFont(&ok,this);if(ok) {    //choose OK    ui->pushButton_2->setFont(font);} else {    //choose cancel    qDebug()<<"Cancel";}

这里通过静态函数来选择字体,如果在字体对话框中单击了 OK,那么 ok=true;如果单击了 Cancel,那么 ok=false。

三、输入对话框

输入对话框 QInputDialog 类用来提供一个简单方便的对话框,从用户哪里去一个单一的数值或字符串。

【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】

点击→领取「链接」

//头文件#include <QInputDialog>bool ok;//gain stirng//getText()参数:指定父窗口、设置窗口标题、设置对话框中的标签的显示文本、//输入字符串的显示模式(例如密码显示小黑点)、设置输入框中的默认字符串,按钮信息QString string = QInputDialog::getText(this, "Input string Dialog",                     "please input user name:", QLineEdit::Normal,                     "admin", &ok);if(ok) {    qDebug()<<"stirng:"<<string;}//gain intint valueInt = QInputDialog::getInt(this, "Input Int Dailog",                   "please input a value between -1000 and 1000",                   100, -1000, 1000, 10, &ok);if(ok) {    qDebug()<<"valueInt:"<<valueInt;}//gain floatdouble valueDouble = QInputDialog::getDouble(this, "Input Double Dialog",                         "please input a value between -1000 and 1000",                         0.00, -1000, 1000, 2, &ok);if(ok) {    qDebug()<<"valueDouble:"<<valueDouble;}QStringList items;items<<"item1"<<"item2";//gain itemsQString item = QInputDialog::getItem(this, "Input Item Dialog",                   "please choose a item:", items, 0, true, &ok);if(ok) {    qDebug()<<"item:"<<item;}

显示如下:

输入后,显示结果为:

四、进度对话框

进度对话框 QProgressDialog 对一个耗时较长的操作进度提供了反馈。

#include <QProgressDialog>QProgressDialog dialog("copy progress", "Cancel", 0, 50000, this);dialog.setWindowTitle("Progress Dialog");   //set window titledialog.setWindowModality(Qt::WindowModal);  //set dialog modaldialog.show();//演示复制进度for(int i = 0; i < 50000; ++i) {    dialog.setValue(i);                 //设置进度条当前值    QCoreApplication::processEvents();  //避免界面冻结    if(dialog.wasCanceled()) {          //按下取消键则中断        break;    }}dialog.setValue(50000);     //显示100%qDebug()<<"copy finish";

效果:

五、错误信息对话框

QErrorMessage 类提供了一个显示错误信息的对话框:

#include <QErrorMessage>QErrorMessage *dialog = new QErrorMessage(this);dialog->setWindowTitle("Error mesage Dialog");dialog->showMessage("This is error message.");

显示:

五、文件对话框5.1. 选择打开一个文件

文件对话框 QFileDialog 提供了一个用户选择文件或文件夹的对话框:

#include <QFileDialog>//getOpenFileName()函数用来获取选择的文件名,参数:指定父窗口、设置标题、默认打开目录、文件类型过滤器。QString fileName = QFileDialog::getOpenFileName(this, "File Dialog",                                                    "/home/daowm/", "Picture(* png * jpg)");qDebug()<<fileName;

运行程序显示:

可以设置多个不同类别的过滤器,不同类别间使用两个分号 “;;” 隔开,例如:

QString fileName = QFileDialog::getOpenFileName(this, "File Dialog", "/home/daowm/",                                                    "Picture(* png * jpg);;TextFile(* txt)");
5.2. 打开多个文件

可以使用 getOpenFileNames () 函数选择多个文件:

#include <QFileDialog>QStringList fileNames = QFileDialog::getOpenFileNames(this, "File Dialog", "/home/daowm/",                                                    "Picture(* png * jpg);;TextFile(* txt)");qDebug()<<fileNames;

得到的 fileNames 为:

5.3. 使用 getSaveFileName () 来实现保存文件对话框5.4. 使用 ExistingDirectory () 函数来获取一个已存在的文件夹路径六、消息对话框

QMessageBox 类提供一个模态对话框来通知用户一些信息,或者向用户提出一个问题并获取答案。

#include <QMessageBox>//question Dialogint ret1 = QMessageBox::question(this, tr("Question Dialog"), tr("Do you know Qt?"),                                 QMessageBox::Yes,QMessageBox::No);if(ret1 == QMessageBox::Yes){    qDebug()<<tr("Question!");}//Information Dialogint ret2 = QMessageBox::information(this, tr("Information Dialog"), tr("This is Qt!"),                                    QMessageBox::Ok);if(ret2 == QMessageBox::Ok){    qDebug()<<tr("Information!");}//Warning Dialogint ret3 = QMessageBox::warning(this, tr("Warning Dialog"), tr("1111"),                                QMessageBox::Abort);if(ret3 == QMessageBox::Abort) {    qDebug()<<tr("Warning!");}//Critial Dialogint ret4 = QMessageBox::critical(this, tr("Critial Dailog"), tr("Find a critial question!"),                                 QMessageBox::YesAll);if(ret4 == QMessageBox::YesAll) {    qDebug()<<tr("Critial!");}//About DialogQMessageBox::about(this, tr("About Dialog"), tr("This is a About Dialog!"));

显示:

七、向导对话框

QWizard 类提供了一个设计向导界面的框架。

//添加头文件#include <QWizard>//在窗口的头文件中添加函数声明:private:    QWizardPage *createPage1();    QWizardPage *createPage2();    QWizardPage *createPage3();//实现这三个函数QWizardPage * Widget::createPage1()    //wizard page 1{    QWizardPage *page = new QWizardPage;    page->setTitle(tr("Introduce"));    return page;}QWizardPage * Widget::createPage2()   //wizard page 2{    QWizardPage *page = new QWizardPage;    page->setTitle(tr("Select Information"));    return page;}QWizardPage * Widget::createPage3()   //wizard page 3{    QWizardPage *page = new QWizardPage;    page->setTitle(tr("Finish"));    return page;}//执行向导QWizard wizard(this);wizard.setWindowTitle(tr("Wizard Dialog"));wizard.addPage(createPage1());    //add wizard pagewizard.addPage(createPage2());wizard.addPage(createPage3());wizard.exec();

显示如下:

标签: #qt文本框怎么设置透明