• qt文件操作


     对话框练习

    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. //字体按钮
    14. void Widget::on_ztbtn_clicked()
    15. {
    16. //调用QFontDialog类中的成员函数, 字体对话框、
    17. bool ok; //用于接受用户是否选择了字体
    18. QFont f = QFontDialog::getFont(&ok, //返回是否选中字体
    19. QFont("隶书",10,10,false), //初始字体
    20. this, //父组件
    21. "选择字体"); //对话框标题
    22. //将选择的字体进行使用
    23. if(ok)
    24. {
    25. //ui->textEdit->setFont(f);
    26. ui->textEdit->setCurrentFont(f);
    27. }else
    28. {
    29. QMessageBox::information(this,"提示","您取消了选择");
    30. }
    31. }
    32. //颜色按钮
    33. void Widget::on_ysbtn_clicked()
    34. {
    35. QColor c = QColorDialog::getColor(QColor("white"),
    36. this,
    37. "选择颜色");
    38. if(c.isValid())
    39. {
    40. //ui->textEdit->setTextColor(c);
    41. ui->textEdit->setTextBackgroundColor(c);
    42. }else
    43. {
    44. QMessageBox::information(this,"提示","取消选择");
    45. }
    46. }
    47. //打开文件 槽
    48. void Widget::on_dkbtn_clicked()
    49. {
    50. //调用静态成员函数获取选中路径
    51. QString fileName = QFileDialog::getOpenFileName(this, //父组件
    52. "选择文件", //对话框标题
    53. "./", //起始路径
    54. "Image File(*.png *.jpg *.bmp);;Text File(*.txt);;All(*.*)"); //过滤器
    55. if(fileName.isNull())
    56. {
    57. QMessageBox::information(this,"提示","取消文件");
    58. return ;
    59. }
    60. //输出文件路径
    61. qDebug() << fileName;
    62. //实例化一个文件对象
    63. QFile file(fileName); //使用获取到的文件路径,实例化一个文件对象,后期对文件的操作都基于该对象
    64. //判断文件是否存在
    65. if(!file.exists())
    66. return;
    67. //打开文件
    68. if(!file.open(QFile::ReadWrite))
    69. return;
    70. //读取文件中的内容
    71. QByteArray msg = file.readAll();
    72. //将内容展示到ui界面
    73. ui->textEdit->setText(QString::fromLocal8Bit(msg));
    74. //获取文本编辑器的内容
    75. //ui->textEdit->toPlainText();
    76. }
    77. void Widget::on_bcbtn_clicked()
    78. {
    79. //调用静态成员函数获取选中路径
    80. QString fileName = QFileDialog::getSaveFileName(this, //父组件
    81. "保存", //对话框标题
    82. "./", //起始路径
    83. "Image File(*.png *.jpg *.bmp);;Text File(*.txt);;All(*.*)"); //过滤器
    84. if(fileName.isNull())
    85. {
    86. QMessageBox::information(this,"提示","取消文件");
    87. return ;
    88. }
    89. //输出文件路径
    90. qDebug() << fileName;
    91. //实例化一个文件对象
    92. QFile file(fileName); //使用获取到的文件路径,实例化一个文件对象,后期对文件的操作都基于该对象
    93. //判断文件是否存在
    94. if(!file.exists())
    95. return;
    96. //打开文件
    97. if(!file.open(QFile::ReadWrite))
    98. return;
    99. // //读取文件中的内容
    100. //QByteArray msg = file.readAll();
    101. //获取文本编辑器的内容
    102. QString msg = ui->textEdit->toPlainText();
    103. //将内容展示到ui界面
    104. //ui->textEdit->setText(QString::fromLocal8Bit(msg));
    105. file.write(msg.toUtf8());
    106. file.close();
    107. }

    移动目标

    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. //键盘按下
    14. void Widget::keyPressEvent(QKeyEvent *event)
    15. {
    16. //qDebug() << "键盘被按下了" << event->text() << "键值: " << event->key();
    17. switch(event->key())
    18. {
    19. case 'W':
    20. {
    21. if(ui->label->y()<=0-ui->label->height())
    22. {
    23. ui->label->move(ui->label->x(),this->height());
    24. }
    25. ui->label->move(ui->label->x(),ui->label->y()-3);
    26. }
    27. break;
    28. case 'S':
    29. {
    30. if(ui->label->y()>=this->height())
    31. {
    32. ui->label->move(ui->label->x(),0-ui->label->height());
    33. }
    34. ui->label->move(ui->label->x(),ui->label->y()+3);
    35. }
    36. break;
    37. case 'A':
    38. {
    39. if(ui->label->x()<=0-ui->label->width())
    40. {
    41. ui->label->move(this->width(),ui->label->y());
    42. }
    43. ui->label->move(ui->label->x()-3,ui->label->y());
    44. }
    45. break;
    46. case 'D':
    47. {
    48. if(ui->label->x()>=this->width())
    49. {
    50. ui->label->move(0-ui->label->width(),ui->label->y());
    51. }
    52. ui->label->move(ui->label->x()+3,ui->label->y());
    53. }
    54. break;
    55. }
    56. }

    XMind

  • 相关阅读:
    java基于springboot+vue网上图书商城 销售+借阅两种模式 nodejs前后端分离
    M4Singer ubuntu 22.04 4060ti16g ModuleNotFoundError: No module named ‘gradio‘
    【面试题精讲】说一说springboot加载配置文件优先级
    开启linux的网络服务, FTP、SSH和NFS服务
    原生JS制作最简单轮播图(超清晰思路)
    【Linux】8.0 多线程
    打造企业级硬盘中坚力量,22TB大容量HDD功不可没
    MacBook Pro(M1 Pro芯片)兼容Tensorflow1.X版本的解决方法
    Java使用IText根据pdf模板创建pdf文件
    Lombok的常用注解
  • 原文地址:https://blog.csdn.net/m0_73775266/article/details/132629565