QT::对话框

 

 

1、颜色对话框
QColor:
QColoDialog:
QColoDialog::getColor()//获取颜色
//创建颜色对话框,默认为红色。
QColorDialog color(Qt::red,this);
//显示颜色对话框的内容
color.setOption(QColorDialog::ShowAlphaChannel);
//以摸态的方式显示
color.exec();
//获取颜色信息
QColor c = color.currentColor();

//获取颜色信息 与 上面一句等效
QColor cc = QColorDialog::getColor();

//打开颜色对话框的默认设置。
QColor cc = QColorDialog::getColor(Qt::red,this,"颜色对话框",QColorDialog::ShowAlphaChannel);

 

2、打开文件对话框
//函数以模态的方式运行一个文件对话框,选择一个文件打开,返回路径文件名。
//参数:选择父窗口,对话框名字,打开路径,文件类型过滤器。
QString str = QFileDialog::getOpenFileName(this,tr("OpenFileName"),"F:",tr("图片文件(*png *cpp *jpg)"));

//设置多个过滤器用;;隔开。
QString str = QFileDialog::getOpenFileName(this,tr("OpenFileName"),"F:",tr("图片文件(*png *cpp);;文本文件(*txt)"));

//同时选择多个cpp文件,用getOpenFileNames和StringList
QStringList lists = QFileDialog::getOpenFileNames(this,tr("OpenFileName"),"F:",tr("图片文件(*png *cpp)"));
//保存的文件对话框/另存为文件对话框。

QString str_1 = QFileDialog::getSaveFileName(this,tr("OpenFileName"),"F:",tr("图片文件(*png *cpp);;文本文件(*txt)"));

//获取文件夹路径
QString str_2 = QFileDialog::getExistingDirectory();

 

3、字体对话框。
 bool ok;
QFont f = QFontDialog::getFont(&ok,this);
if(ok)
    ui->pushButton_3->setFont(f);
else
    qDebug()<<"not choose";

 

 

4、输入对话框   
bool ok;
QString str = QInputDialog::getText(this,tr("input:"),tr("please in put:"),QLineEdit::Normal,tr(""),&ok);
if(ok)
  qDebug()<<str;
//获取数字输入,当前显示的值,最小,最大值,一次增加/减少的值。
int value = QInputDialog::getInt(this,tr("input num"),tr("please in put num"),
                                100,-1000,1000,10,&ok);
//获取数字输入,当前显示的值,最小,最大值,小数点位数。
int value = QInputDialog::getDouble(this,tr("input num"),tr("please in put num"),
                                0.1,-1000,1000,1,&ok);
QStringList lists;
lists<<tr("条目1")<<tr("条目2");
//获取条目的内容,(0,true,&ok)0表示显示第一个条目,true可以被更改,&ok返回一个值,确定是否被更改。
QString str = QInputDialog::getItem(this,tr("input"),tr("please input"),lists,0,true,&ok);

 

5、信息对话框
int ret = QMessageBox::question(this,tr("question"),tr("do you knew abort Qt?"),QMessageBox::Yes,QMessageBox::No,QMessageBox::YesAll);
if(ret = QMessageBox::Yes)qDebug()<<ret;
QMessageBox::information(this,tr("information"),tr("this is Qt"),QMessageBox::Yes);
QMessageBox::warning(this,tr("Wareing"),tr("help"),QMessageBox::Abort);
QMessageBox::critical(this,tr("error"),tr("close"),QMessageBox::YesAll);
QMessageBox::about(this,tr("about"),tr("this is qt teach"));

 

6、进度对话框
QProgressDialog dialog (tr("文件复制进度"),tr("取消"),0,500,this);
dialog.setWindowTitle(tr("进度对话框"));
dialog.setWindowModality(Qt::WindowModal);//设置对话框为模态。
dialog.show();
for(int i = 0; i<50000; i++)
{
    dialog.setValue(i);
    QCoreApplication::processEvents();//避免画面冻结。
    if(dialog.wasCanceled()) break;
}
dialog.setValue(50000);

 

7、错误对话框
QErrorMessage *error = new QErrorMessage(this);
error->setWindowTitle(tr("error"));
error->showMessage(tr("error Message"));

 

8、向导对话框
QWizard wzd(this);
wzd.setWindowTitle("向导对话框");
wzd.addPage(page1());
wzd.addPage(page2());
wzd.addPage(page3());
wzd.exec();
QWizardPage* MainWindow::page1()
{
    QWizardPage *page1 = new QWizardPage;
    page1->setTitle("1");
    return page1;
}
QWizardPage* MainWindow::page2()
{
    QWizardPage *page2 = new QWizardPage;
    page2->setTitle("2");
    return page2;
}
QWizardPage* MainWindow::page3()
{
    QWizardPage *page3 = new QWizardPage;
    page3->setTitle("3");
    return page3;
}

 

posted @ 2021-02-03 22:17  osbreak  阅读(152)  评论(0编辑  收藏  举报