QT_02实现一个文本编辑器

目录

1、新建工程

2、导入QT文件资源(图片文件)

        2-1 新建一个存放图片资源的文件

        2-2 添加图标资源文件

        2-3 图标的使用 

3、实战演练

        3-1 拖入控件并布局

         3-2 设置控件图标

         3-3 控件的信号与槽的添加

         3-4 “清空”功能的实现

         3-5 下划线、斜体、加粗功能的实现 

         3-6 字体颜色功能的实现


最终实现的效果如下图所示: 

1、新建工程

2、导入QT文件资源(图片文件)

        2-1 新建一个存放图片资源的文件

        可在左侧项目文件中看到多了一个资源文件 .qrc 。

        在.pro文件中出现RESOURCES +=  res.qrc 代码

        2-2 添加图标资源文件

                 第一步:将images图标文件夹放入工程目录中   

                  第二步:资源添加

                添加完成后如下图所示: 

                点击编译按钮后,添加成功如下图所示:

        2-3 图标的使用 

        选择图标,然后编译 ,即可发现窗口图标发生了变化

3、实战演练

        3-1 拖入控件并布局

        双击可更改空间的名字,如“字体”“黑色”“清空”.....等 

        点击Group Box容器,点击水平布局,布局后的结果如下图红色方框所示: 

        在控件栏拖入弹簧,确保按钮间的始终保持距离,再框选后点击水平布局

        最终结果如下图所示 

         点击右侧父类QDialog,然后点击纵向布局,界面如下图所示:

        修改默认字体格式如下图所示: 

         3-2 设置控件图标

        在此栏中双击空间可以修改名称,方便后续的识别。 

        添加图片资源步骤如下图所示: 

         添加完成的结果如下图所示:

         3-3 控件的信号与槽的添加

                按照如下步骤即可完成退出控件的信号与槽的添加,即编译过后运行时,点击退出,对话框即可关闭。

             在Qt中,accept()函数通常与对话框(QDialog)相关联。它是QDialog类中的一个公共槽(public slot),用于接受对话框中所做的更改,并关闭对话框。

               3-4 “清空”功能的实现

                 右击“清空按钮”,选择转到槽,如下所示。

                选择 clicked()

                 此时会跳转到Dialog代码中,在这里面编写槽函数。

                点击ui_dialog.h头文件,即可查看可以调用的内容。

                 在Dialog.cpp中添加如下代码,即可实现清空功能。

        3-5 下划线、斜体、加粗功能的实现 

                同样是右击,选择转到槽,但这里选择clicked(bool)类型。

第22行:void Dialog::on_checkBox_clicked(bool checked)

  1. void 表示这个函数没有返回值。
  2. Dialog 是这个函数所属的类名,表示这是Dialog类的成员函数。
  3. on_checkBox_clicked 是函数名,遵循Qt的命名约定,通常以on_开头,后面跟上触发这个槽函数的对象名称和事件类型。在这个例子中,它表示复选框(checkBox)被点击(clicked)的事件处理函数。
  4. bool checked 是函数的参数,表示复选框的状态。如果复选框被选中,checkedtrue;如果未被选中,checkedfalse

第24行:QFont font = ui->plainTextEdit->font();

  1. QFont font声明了一个新的QFont对象font
  2. ui->plainTextEdit->font()获取plainTextEdit当前使用的字体属性,并返回一个包含这些属性的QFont对象。
  3. =操作符将返回的QFont对象赋值给font变量。
  4. font(): 这是QPlainTextEdit控件的一个成员函数,用于获取控件当前使用的字体。字体信息被封装在一个QFont对象中。

第25行:font.setUnderline(checked);

        调用QFontsetUnderline方法,根据checked的值设置字体是否应该显示下划线。如果checkedtrue,字体将被设置为带下划线;如果checkedfalse,则不显示下划线。 

第26行:ui->plainTextEdit->setFont(font);

        将更新后的font(现在可能带有下划线,或者去除了下划线)设置回plainTextEdit控件。注:这里是将font类作为参数传递给setFont函数。

        同理,设置斜体和加粗功能的代码如下:

3-6 字体颜色功能的实现

        目标是三个单选框都能实现颜色的设置,即信号与槽的对应关系为3对1。即3个信号都可以进入同一个槽函数。现在Dialoh.h文件里面声明槽函数。如下所示:

        右键单击函数名,选择重构中的“在dialog.cpp添加定义”,如下图所示:

         然后再.cpp文件中写下述代码:

        在Qt中,每个窗口控件都关联着一个QPalette对象,它用于控制控件的颜色方案,包括控件的背景色、文本色等。 当我们提到“plainTextEdit控件当前的调色板”,指的是通过palette()函数获取的QPalette对象。

        问:plet.setColor(QPalette::Text,Qt::black); 这句代码中为什么要在black前面加上Qt ?

        答:在Qt框架中,Qt::black这种用法指的是访问名为Qt的命名空间中定义的一个颜色常量。Qt框架定义了一个Qt命名空间,其中包含了许多常用的枚举和常量,包括一系列预定义的颜色。Qt::blackQt::blueQt::red等就是这些预定义颜色常量的例子,它们分别代表黑色、蓝色和红色。避免了可能的命名冲突。

        进行槽连接:

  1. ui->radioButton是信号的发送者(source),它是一个指向radioButton控件的指针。这个控件发出了信号,我们想要在信号发生时做出响应。

  2. SIGNAL(clicked())指明了要连接的信号,这里是radioButtonclicked()信号,当用户点击这个按钮时,这个信号会被发出。

  3. this指的是信号接收者(receiver)的对象指针。在这个上下文中,this指向的是当前的Dialog实例,也就是connect函数被调用的那个对象。这意味着,当信号被发出时,系统会在这个Dialog对象中寻找对应的槽函数来处理信号。

  4. SLOT(do_FontColor())指明了当信号发生时要调用的槽函数,这里是Dialog类中的do_FontColor函数。

  • 22
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值