Qt 花里胡哨系列(二)——对话框
前言
一眨眼功夫可又过去小半个月了,感叹精力大不如从前啊,事杂而多。
这篇主要聊下qt中常见的对话框,毕竟这东西还是挺常用的,除了自己写dialog外,就属qt自带的了。
QDialog
这个在聊qt的窗口的时候已经大致说过,这里就不提太多了,主要看下qt给咱提供的对话框吧。
| 对话框 | 功能 |
|---|---|
| QFileDialog | 文件/路径选择对话框 |
| QColorDialog | 颜色选择对话框 |
| QFontDialog | 字体选择对话框 |
| QInputDialog | 输入对话框,像html的prompt |
| QMessageBox | 消息对话框,像html的alert |
QFileDialog
选择一个文件
通过QFileDialog::getOpenFileName()可以选择文件,其中参数主要标题,路径,过滤器。
1 | |
目录留空默认是程序运行目录,如果选择过文件再打开就默认是上次选择的路径,多个过滤中间用 “;” 隔开。
选择多个文件
参数同单个文件类似,不过方法有现成的**QFileDialog::getOpenFileNames()**。
选择文件目录
通过QFileDialog::getExistingDirectory()可以选择目录。
1 | |
选择保存文件
同选择文件类似,方法为QFileDialog::getSaveFileName(),如选择已有文件会提示是覆盖。
QColorDialog
1 | |
这里说明下,qt默认的都是英文的,如果需要显示中文的话,那要在qt的安装目录找到这个qt_zh_CN.qm文件添加到当前工程的资源文件,然后生成出翻译文件,通过程序加载对应的文件资源即可,这里不多说,有需要的话到时候可以跟我联系。
QFontDialog
字体对话框用法跟前面几个稍微不同,因为QFont自己没有是否有效这个属性,所以要通过传入一个bool值来判断是否已经选择。
1 | |
也可以通过传入一个QFont来作为当前选中,另外像title这种就不特别写出来演示了。
QInputDialog
输入对话框提供了几种输入方式:
- 文本 QInputDialog::getText()/getMultiLineText()
- 整型数字 QInputDialog::getInt()
- 浮点型数字 QInputDialog::getDouble()
- 选项 QInputDialog::getItem()
具体方法就不展示了,除选项需要额外输入一个选项的QStringList外,其他参数都是类似,除了返回值不同。
QMessageBox
消息对话框是一种比较常用的与用户交互的对话框,可以用于显示提示、警告、错误等信息供用户确认,不过其实大致看下,实际还是包含标题、内容、图标、按钮等这些常规信息,至于confirm的实现实际上也是QDialog显示一个按钮还是多个按钮的不同罢了。
小结
感觉这篇有点儿水,毕竟对话框这种东西看代码都会用,没必要单独列出来,这篇就当给萌新了。