欢迎光临
我们一直在努力

Qt学习日记 Day5:对话框

## 今天学了什么

今天学习Qt对话框及常用标准对话框。

## 对话框

头文件:<QDialog>

按实际阻塞粒度分为三类(windowModality枚举):

  • Qt::WindowModal(模态‑仅阻塞父链)
  • Qt::ApplicationModal(模态‑阻塞整个应用)
  • Qt::NonModal(非模态‑不阻塞)
  • 从交互行为上分为两大类:模态对话框、非模态对话框。

    • 模态对话框:打开后,限制用户操作其他窗口,用户必须先处理这个框把它关掉才能操作其他窗口;
    • 非模态对话框:打开后,不会限制其他窗口交互;

    区别 :

    • 模态:阻塞别的窗口交互;调用点代码会暂停,等关闭后才往下执行;用 exec();
    • 非模态:不阻止别的窗口交互;调用后代码立刻继续执行;用 show();

    使用方法:

    模态对话框:

    QDialog  dialog(this);

    dialog.exec();

    模态对话框:

    QDialog *p=new QDialog;

    p->setAttribute(Qt::WA_DeleteOnClose);  //关闭时自动释放内存

    p->show();

    注:模态返回值:exec() 是有返回值的(QDialog::Accepted 或 Rejected),通常配合 if (dialog.exec() == QDialog::Accepted) 来判断用户是点了“确定”还是“取消”。

    ## 常用标准对话框

    • QMessageBox:消息提示对话框 (<QMessageBox>)

    用来弹出提示、警告、错误、确认选择;大多用静态函数调用,默认模态;只做简单文字+按钮,

    只做简单文字+按钮,不能自定义复杂布局。

    例:信息对话框:

    QMessageBox::information(this,"提示","ok");

    • QFileDialog:文件/目录选择对话框 (<QFileDialog>)

    打开系统原生文件窗口;用来选文件、多选文件、选文件夹、保存文件;可以拿到文件路径,一般

    用静态函数。

    例:

    QFileDialog::getOpenFileName(this,"打开文件", "D:\\\\", "(*.txt)");   

    • QColorDialog:颜色拾取对话框  (<QColorDialog>)

    调出取色面板,让用户选RGB颜色;返回一个QColor;同样提供静态便捷接口,默认模态。

    例:用 QColorDialog 选颜色,并把选中颜色应用到界面背景

    QColorDialog::getColor(QColor(0,255,0));

    if(color.isValid())
       {
          centralWidget()->setStyleSheet(QString("background-color:%1").arg(color.name()));
       }

    赞(0)
    未经允许不得转载:171主机测评 » Qt学习日记 Day5:对话框
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址