目录
最终实现的效果如下图所示:
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)
void
表示这个函数没有返回值。Dialog
是这个函数所属的类名,表示这是Dialog
类的成员函数。on_checkBox_clicked
是函数名,遵循Qt的命名约定,通常以on_
开头,后面跟上触发这个槽函数的对象名称和事件类型。在这个例子中,它表示复选框(checkBox)被点击(clicked)的事件处理函数。bool checked
是函数的参数,表示复选框的状态。如果复选框被选中,checked
为true
;如果未被选中,checked
为false
。
第24行:QFont font = ui->plainTextEdit->font();
QFont font
声明了一个新的QFont
对象font
。ui->plainTextEdit->font()
获取plainTextEdit
当前使用的字体属性,并返回一个包含这些属性的QFont
对象。=
操作符将返回的QFont
对象赋值给font
变量。font()
: 这是QPlainTextEdit
控件的一个成员函数,用于获取控件当前使用的字体。字体信息被封装在一个QFont
对象中。
第25行:font.setUnderline(checked);
调用QFont
的setUnderline
方法,根据checked
的值设置字体是否应该显示下划线。如果checked
为true
,字体将被设置为带下划线;如果checked
为false
,则不显示下划线。
第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::black
、Qt::blue
、Qt::red
等就是这些预定义颜色常量的例子,它们分别代表黑色、蓝色和红色。避免了可能的命名冲突。
进行槽连接:
-
ui->radioButton
是信号的发送者(source),它是一个指向radioButton
控件的指针。这个控件发出了信号,我们想要在信号发生时做出响应。 -
SIGNAL(clicked())
指明了要连接的信号,这里是radioButton
的clicked()
信号,当用户点击这个按钮时,这个信号会被发出。 -
this
指的是信号接收者(receiver)的对象指针。在这个上下文中,this
指向的是当前的Dialog
实例,也就是connect
函数被调用的那个对象。这意味着,当信号被发出时,系统会在这个Dialog
对象中寻找对应的槽函数来处理信号。 -
SLOT(do_FontColor())
指明了当信号发生时要调用的槽函数,这里是Dialog
类中的do_FontColor
函数。