QT 颜色对话框、字体对话框、输入对话框、文件对话框、消息框例子

怼烎@ 2022-04-10 05:28 519阅读 0赞

QT 颜色对话框、字体对话框、输入对话框、文件对话框、消息框例子

一、简述

记—简单的颜色对话框、字体对话框、输入对话框、文件对话框、消息框例子。

例子打包:链接: https://pan.baidu.com/s/1yZ8hEvDgB-2bVml-4ta5Kg 提取码: mntw

二、效果

  1. ![20181228152301224.gif][]
  2. ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70][]

三、工程结构

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 1

  1. 布局:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 2

四、源文件

DialogDemo.pro文件

  1. QT += core gui
  2. greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
  3. TARGET = DialogDemo
  4. TEMPLATE = app
  5. SOURCES += main.cpp\
  6. mainwindow.cpp
  7. HEADERS += mainwindow.h
  8. FORMS += mainwindow.ui
  9. RESOURCES += \
  10. imgs.qrc

mainwindow.h文件

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. namespace Ui {
  5. class MainWindow;
  6. }
  7. class MainWindow : public QMainWindow
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit MainWindow(QWidget *parent = 0);
  12. ~MainWindow();
  13. private slots:
  14. void on_btnColor_clicked();
  15. void on_btnFont_clicked();
  16. void on_btnInput_clicked();
  17. void on_actionOpen_triggered();
  18. void on_actionSave_triggered();
  19. private:
  20. Ui::MainWindow *ui;
  21. };
  22. #endif // MAINWINDOW_H

main.cpp文件

  1. #include "mainwindow.h"
  2. #include <QApplication>
  3. int main(int argc, char *argv[])
  4. {
  5. QApplication a(argc, argv);
  6. MainWindow w;
  7. w.show();
  8. return a.exec();
  9. }

mainwindow.cpp文件

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QMessageBox>//消息对话框
  4. #include <QColorDialog> //颜色对话框
  5. #include <QFontDialog> //字体对话框
  6. #include <QInputDialog> //输入对话框
  7. #include <QFileDialog>//文件对话框
  8. #include <QFile>//文件相关信息
  9. MainWindow::MainWindow(QWidget *parent) :
  10. QMainWindow(parent),
  11. ui(new Ui::MainWindow)
  12. {
  13. ui->setupUi(this);
  14. }
  15. MainWindow::~MainWindow()
  16. {
  17. delete ui;
  18. }
  19. void MainWindow::on_btnColor_clicked()//颜色对话框按钮
  20. {
  21. QColor color = QColorDialog::getColor(Qt::blue, this, "请选择颜色");
  22. QString style = QString("background-color: rgb(%1, %2, %3);").arg(color.red()).arg(color.green()).arg(color.blue());
  23. ui->edtContent->setStyleSheet(style);
  24. }
  25. void MainWindow::on_btnFont_clicked()//字体对话框按钮
  26. {
  27. bool is_ok;
  28. QFont font = QFontDialog::getFont(&is_ok, QFont("微软雅黑"), this, "请选择字体");
  29. ui->edtContent->setFont(font);
  30. }
  31. void MainWindow::on_btnInput_clicked()//输入对话框按钮
  32. {
  33. QString text = QInputDialog::getText(this,"输入对话框","请输入内容");
  34. ui->edtContent->setText(text);
  35. }
  36. void MainWindow::on_actionOpen_triggered()//打开文件
  37. {
  38. //打开文件对话框,返回选择文件的绝对路径 父窗体 标题 默认打开路径(不写就会打开当前路径)
  39. QString filePath = QFileDialog::getOpenFileName(this, "请选择文件", "D:\\test");
  40. QFile *file = new QFile(filePath);//创建文件操作对象
  41. bool isOk = file->open(QIODevice::ReadOnly);//以只读方式打开文件
  42. if(isOk)
  43. {
  44. QByteArray array = file->readAll();//读取文件所有内容
  45. ui->edtContent->setText(array);//QString中对'='进行运算符重载,可以直接接受QByteArray赋值
  46. }
  47. else
  48. {
  49. QMessageBox::warning(this, "提示!", "打开文件失败");
  50. }
  51. file->close();//关闭文件
  52. }
  53. void MainWindow::on_actionSave_triggered()//保存文件
  54. {
  55. //弹出保存文件对话框,输入要保存文件的名字 父窗体 标题 默认保存路径
  56. QString savefile = QFileDialog::getSaveFileName(this,"保存文件", "D:\\test");
  57. QFile *save = new QFile(savefile);
  58. save->open(QIODevice::WriteOnly);//以只写方式打开文件
  59. save->write( ui->edtContent->toPlainText().toUtf8());//将内容写入文件
  60. save->close();//关闭文件
  61. QMessageBox::warning(this, "提示!", "保存成功");
  62. }

五、总结

5.1 包含文件

  1. #include <QMessageBox>//消息对话框
  2. #include <QColorDialog> //颜色对话框
  3. #include <QFontDialog> //字体对话框
  4. #include <QInputDialog> //输入对话框
  5. #include <QFileDialog>//文件对话框
  6. 5.2 样式
  7. background-color: rgb(60, 255, 99);

20181227200957188.png

20181227200620164.gif

5.3 格式化字符串(填充字符串)

  1. ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 3][]

5.4 主要函数

  1. ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 4][]

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 5

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 6

打开文件:

  1. //打开文件对话框,返回选择文件的绝对路径 父窗体 标题 默认打开路径(不写就会打开当前路径)
  2. QString filePath = QFileDialog::getOpenFileName(this, "请选择文件", "D:\\test");
  3. QFile *file = new QFile(filePath);//创建文件操作对象
  4. bool isOk = file->open(QIODevice::ReadOnly);//以只读方式打开文件
  5. if(isOk)
  6. {
  7. QByteArray array = file->readAll();//读取文件所有内容
  8. ui->edtContent->setText(array);//QString中对'='进行运算符重载,可以直接接受QByteArray赋值
  9. }
  10. else
  11. {
  12. QMessageBox::warning(this, "提示!", "打开文件失败");
  13. }
  14. file->close();//关闭文件

保存文件

  1. //弹出保存文件对话框,输入要保存文件的名字 父窗体 标题 默认保存路径
  2. QString savefile = QFileDialog::getSaveFileName(this,"保存文件", "D:\\test");
  3. QFile *save = new QFile(savefile);
  4. save->open(QIODevice::WriteOnly);//以只写方式打开文件
  5. save->write( ui->edtContent->toPlainText().toUtf8());//将内容写入文件
  6. save->close();//关闭文件

5.5 添加快捷键、菜单小图标

  1. ![20181228153203643.gif][]

发表评论

表情:
评论列表 (有 0 条评论,519人围观)

还没有评论,来说两句吧...

相关阅读