从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 

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

posted @ 2010-05-10 18:52  MR_H  阅读(2140)  评论(0编辑  收藏  举报