• qt day3


    1> 登录框实现注册功能,将注册的结果放入文件中(君子作业)

    2> 完成文本编辑器的保存工作

     widget.h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. #include
    5. #include
    6. #include
    7. #include
    8. #include
    9. #include
    10. #include
    11. #include
    12. QT_BEGIN_NAMESPACE
    13. namespace Ui { class Widget; }
    14. QT_END_NAMESPACE
    15. class Widget : public QWidget
    16. {
    17. Q_OBJECT
    18. public:
    19. Widget(QWidget *parent = nullptr);
    20. ~Widget();
    21. private slots:
    22. void on_fontbtn_clicked();
    23. void on_colorbtn_clicked();
    24. void on_openbtn_clicked();
    25. void on_savebtn_clicked();
    26. private:
    27. Ui::Widget *ui;
    28. };
    29. #endif // WIDGET_H

     main.cpp

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

    widget.cpp 

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget)
    6. {
    7. ui->setupUi(this);
    8. }
    9. Widget::~Widget()
    10. {
    11. delete ui;
    12. }
    13. void Widget::on_fontbtn_clicked()
    14. {
    15. bool ok; //返回用户是否选中字体
    16. //直接调用getfont获取对话框
    17. QFont f= QFontDialog::getFont(&ok,//返回是否选择 字体
    18. QFont("宋体",10,10,false),//初始字体
    19. this,//父组件
    20. "选择字体");//对话框标题
    21. //对ok进行判断,判断用户是否选中字体了
    22. if(ok)
    23. {
    24. //用户选中字体
    25. ui->textEdit->setCurrentFont(f);
    26. //ui->textEdit->setTextColor();
    27. }
    28. else
    29. {
    30. QMessageBox::information(this,"取消","用户取消选择");
    31. }
    32. }
    33. void Widget::on_colorbtn_clicked()
    34. {
    35. QColor c =QColorDialog::getColor(QColor("pink"),
    36. this,
    37. "选择颜色");
    38. //判断c的合法性
    39. if(c.isValid())
    40. {
    41. //用户选择的颜色
    42. //ui->textEdit->setTextColor(c);
    43. ui->textEdit->setTextBackgroundColor(c);
    44. }
    45. else
    46. {
    47. QMessageBox::information(this,"取消","用户取消了选择颜色");
    48. }
    49. }
    50. void Widget::on_openbtn_clicked()
    51. {
    52. QString fileName = QFileDialog::getOpenFileName(this,
    53. "选择文件",
    54. "./",
    55. "All(*.*);;images(*.png *.jpg *.xmp);;text files(*.txt)");
    56. if(fileName.isNull())
    57. {
    58. QMessageBox::information(this,"提示","用户取消选择");
    59. return;
    60. }
    61. qDebug()<
    62. //实例化
    63. QFile file(fileName);
    64. if(!file.isOpen())
    65. {
    66. if(!file.open(QFile::ReadWrite))
    67. {
    68. QMessageBox::information(this,"失败","文件打开失败");
    69. return;
    70. }
    71. }
    72. QByteArray msg=file.readAll();
    73. //关闭文件
    74. file.close();
    75. //将读取的文本展示在ui界面
    76. ui->textEdit->setText(msg);
    77. }
    78. void Widget::on_savebtn_clicked()
    79. {
    80. QString fileName = QFileDialog::getSaveFileName(this,
    81. "保存文件",
    82. "./",
    83. "All(*.*);;images(*.png *.jpg *.xmp);;text files(*.txt)");
    84. if(fileName.isNull())
    85. {
    86. QMessageBox::information(this,"提示","用户取消选择");
    87. return;
    88. }
    89. qDebug()<
    90. //实例化
    91. QFile file(fileName);
    92. if(!file.isOpen())
    93. {
    94. if(!file.open(QFile::ReadWrite))
    95. {
    96. QMessageBox::information(this,"失败","文件打开失败");
    97. return;
    98. }
    99. else
    100. {
    101. QTextStream out(&file);
    102. QString content =ui->textEdit->toPlainText();
    103. out << content;
    104. }
    105. }
    106. //关闭文件
    107. file.close();
    108. }

    3>

     

    widget.h

    1. #ifndef WIDGET_H
    2. #define WIDGET_H
    3. #include
    4. #include
    5. #include
    6. #include //按钮类头文件
    7. #include
    8. #include //文本转语音类
    9. #include
    10. QT_BEGIN_NAMESPACE
    11. namespace Ui { class Widget; }
    12. QT_END_NAMESPACE
    13. class Widget : public QWidget
    14. {
    15. Q_OBJECT
    16. public:
    17. Widget(QWidget *parent = nullptr);
    18. ~Widget();
    19. void timerEvent(QTimerEvent *e) override;
    20. private slots:
    21. void on_startbtn_clicked();
    22. void on_closebtn_clicked();
    23. private:
    24. Ui::Widget *ui;
    25. int timer_id;
    26. //定义一个播报员
    27. QTextToSpeech *speecher;
    28. };
    29. #endif // WIDGET_H

    main.cpp

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

     widget.cpp

    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. Widget::Widget(QWidget *parent)
    4. : QWidget(parent)
    5. , ui(new Ui::Widget)
    6. {
    7. ui->setupUi(this);
    8. //给播报员实例化空间
    9. speecher = new QTextToSpeech(this);
    10. }
    11. Widget::~Widget()
    12. {
    13. delete ui;
    14. }
    15. void Widget::timerEvent(QTimerEvent *e)
    16. {
    17. if(e->timerId()==timer_id)
    18. {
    19. QTime sys_t=QTime::currentTime();
    20. //将qtime类对象转换为字符串
    21. QString t=sys_t.toString("hh:mm:ss");
    22. //将行编辑器内容转换为字符串
    23. QString s=ui->lineEdit->text();
    24. if(t==s)//对比时间
    25. {
    26. //到时自动播报文本编辑器里的内容
    27. speecher->say(ui->textEdit->toPlainText());
    28. }
    29. ui->timelabel->setText(t);
    30. }
    31. }
    32. void Widget::on_startbtn_clicked()
    33. {
    34. timer_id=this->startTimer(1000); //启动一个定时器参数是超时时间(毫秒)
    35. }
    36. void Widget::on_closebtn_clicked()
    37. {
    38. this->killTimer(timer_id); //关闭给定的定时器
    39. }

  • 相关阅读:
    SA+ST表维护height+单调队列维护:CF1073G
    黄菊华老师,Python毕业设计毕设辅导教程(4):Python 基础概念
    数据治理的 “独孤九剑”
    抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。
    刚刚接触struts2的踩雷记录
    一个简单的音乐网站设计与实现(HTML+CSS)
    药物临床试验数据递交FDA的规定
    【明解c语言中级篇 第二章练习答案】
    java计算机毕业设计吉他库存管理(附源码、数据库)
    2.区块链系列之部署合约
  • 原文地址:https://blog.csdn.net/wdc857/article/details/133044441