QT5学习记录(一)

学习环境:Windows10 + QT5.13 + QT Creater4.9.1(2019-08-10 22:02:30)

1.基本工程创建操作

  常规操作创建画面,可选择QDialog、MainWindow、QWidget三种类型。可选择直接创建相应的 ui 文件,控件的添加可以在编辑模式下使用代码创建,也可以在设计模式下通过拖动添加;控件的属性可以在编辑模式下用代码修改,也可以在设计模式下通过属性栏修改;每一个控件通过其唯一的 objectName 寻找,所以要细心设置控件的objectName。

2.常用且重要的操作

  QT 特有的信号(signal)和槽(slot):signal 关联发出者,slot 关联接收者,两者各有一个对应的函数操作;QT中已经自带了一些 signal 和 slot 函数,用户可以直接使用;如果用户自定义的signal信号,使用 emit 关键字发出信号;signal 和 slot 需要绑定起来才能实现正常的发送与接收,这种连接可以使用代码 connect 函数执行,也可以在设计模式下的 Edit signal/slot 功能中通过连线方式绑定,最终实现 signal 和 slot 的代码(如果是 QT 自带的 signal 和 slot 也可以视情况省略该操作)。

3.实际操作练习

  新建两个窗口(此处选择了 MainWindow 和 Dialog),新建时选择创建 ui 文件。在每个画面添加两个 QPushButton 控件,主界面的按钮实现跳转至从界面和关闭,从界面按钮实现一个弹出框和返回至主界面。在 mainwindow.h 中声明一个 Dialog 类的实例:

1 private:
2     Ui::MainWindow *ui;
3     Dialog *sub;

  在 mainwindow.cpp 中,从主界面的构造函数中创建子界面的实例,并且连接两个画面( signal 和 slot 的绑定),一定要先创建实例再绑定:

1 MainWindow::MainWindow(QWidget *parent) :
2     QMainWindow(parent),
3     ui(new Ui::MainWindow)
4 {
5     ui->setupUi(this);
6     sub = new Dialog(this);
7     connect(sub,SIGNAL(mysignal()),this,SLOT(re_show()));
8 }

  在子界面 dialog.h 中声明一个 signal :

1 public:
2     explicit Dialog(QWidget *parent = nullptr);
3     ~Dialog();
4 
5 signals:
6     void mysignal();

  在子界面的 cpp文件,dialog.cpp 实现 signal 的发送,发送使用 emit 关键字:

1 void Dialog::on_back_clicked()
2 {
3     this->hide();
4     emit mysignal();
5 }

 4.总结

  从本次记录主要了解 QT 的 signal 和 slot 形式与基本使用,学习两个界面如果通过 signal 和 slot 联系在一起。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怦然心动如往昔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值