【qt5_study】2.使用Qt Designer构造UI界面(信号与槽)
Qt Designer是属于 Qt Creator的一个功能而已。 Qt Designer也叫 UI设计师或者 UI设计器,这都是指的同一个东西而已。
找到 Push Button,然后拖拽到中间的显示窗体里,如下图。
在 UI文件里连接信号与槽
在 UI设计器里有两种方法可以连接信号与槽。 初学者可能不了解什么是 Qt的信号与槽。
这里先简单的介绍一下信号与槽的功能。 所谓信号即是一个 对象发出的信号,槽即是当 这个对
象 发出这个信号时,对应连接的槽就发被执行或者触发。 可以说信号与槽在 Qt里是必不可少的。要想事件做出对应的动作就必须用到信号与槽。
点击信号槽连接的按钮如下, 如下图 ① 处, 点击进入信号槽连接模式(若想退出信号槽连
接模式,则点击 ① 处左边的按钮), 进入信号与槽的连接模式 后 ,将鼠标选中我们的“关闭程序
按钮 ,按住按钮,然后用鼠标向外拖动 如 ② 处。 此时就会出现信号槽连接的符号。
之后 按如下图步骤选择,左边的“关闭程序” pushButton按钮的信号,可以看到一个对象
的信号可以有多种。右边的 QMainWindow的槽函数 ,如果有其他对象,右边不一定只有
MainWidnow的槽函数(槽),也有可能是其他对象的槽。 我们选择按钮的 clicked()信号,将其
连接 MainWindow对象的 close()槽。这样就完成了信号与槽的连接 ,非常简单。 我们也可以预
知这个信号与槽的功能,当“关闭程序” pushButton发出了 clicked()信号(也就是单击信号)。
这个信号由“关闭程序” pushButton被单击时发出。 它就会触发 MainWindow的 close()。进而
使整个程序关闭。 MainWindow的 close()就是退出关闭程序,退出程序的意思。
点击“转到槽”后,弹出下面的窗口,这一步是先让我们选择信号。 按如下图选择。 如果
细心的同学,我们还发现这个 clicked()信号并不是 pushButton的 而是 QAbstactButton的 。 只
是 pusbButton继承了 QAbstracButton,同时把这个信号也继承了下来。除此之外我们还看到其
他信号也是 不是属于 pushButton的,也是被继承下来了。所以我们在 C++基础部分学过的继承。
在 Qt里的作用表现的淋漓尽致! 根本不用重写 pushButton的 clicked()事件。 pushButton只需要
继承父类的 clicked()事件即可
点击 OK后,就会跳转到槽函数里,这个代码由 Qt Creator自动生成 。同时在 mainwindow.h里声明了这个槽 函数 。
添加this->close();导函数,编译运行试试、