从Qt内建对话框继续学Qt——Qt(二)

  Qt有丰富的内建对话框,比如说颜色设置、字体设置、文件选择等。先来看一下总体界面:
image 下面,首先来看看颜色选择对话框的实现代码:
  1:         QPalette palette = displayTextEdit->palette();/*获取TextEdit中的调色板*/

  2:         

  3:         /*打开一个颜色对话框,并且获取用户选择的颜色*/

  4:         const QColor &color =

  5:                 QColorDialog::getColor(palette.color(QPalette::Base), this);

  6:         if(color.isValid()) {

  7:             palette.setColor(QPalette::Base, color);/*设置颜色                 */

  8:             displayTextEdit->setPalette(palette);   /*应用到QTextEdit上去      */
效果如下
image 

接下来看看字体对话框的实现代码:

  1:             bool ok;/*记录字体对话框是确定按钮是否按下*/

  2:             

  3:             /*记录字体对话框选择的字体*/

  4:             const QFont &font = QFontDialog::getFont(&ok,

  5:                                     this->displayTextEdit->font(),

  6:                                     this,

  7:                                     tr("字体对话框"));

  8:             if(ok) {

  9:                 /*将选择的字体应用到QTextEdit中*/

 10:                 this->displayTextEdit->setFont(font);

 11:             }

效果如下:

image

最后来看个比较有意思的进度对话框:

  1:  /*新建一个进度对话框,设置其初值为0,最大值为10000*/

  2: QProgressDialog progress(tr("正在复制文件"),

  3:                          tr("取消"),

  4:                          0,

  5:                          10000,

  6:                          this);

  7: progress.setWindowModality(Qt::WindowModal);

  8: progress.setWindowTitle(tr("进度对话框"));

  9: progress.show();

 10: for(int i = 0; i < 10001; i++) {

 11:    progress.setValue(i); /*设置progress的指*/

 12:     qApp->processEvents();

 13:     if(progress.wasCanceled()) {/*点击了取消按钮*/

 14:        break;

 15:     }

 16: }
效果图:
image 

这些内建对话框,确实能节省我们不少时间。

你可能感兴趣的:(对话框)