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; }