QT开发(二)(信号和槽)

标准信号和槽

—main.cpp如图所示,诸多的控件应该在主窗口中去实现而不应在主函数中实现

在这里插入图片描述
—改变编码
TOOLS—>options—>TextEditor—>behavor—>file coding 选择Utf-8—>apply—>OK

—设置控件

MainWdiget.h

private:
    QPushButton b1;//对象
    QPushButton *b2;//指针方式
    QPushButton b3;

在MainWidget.cpp实现

  b1.setParent(this);
  b1.setText("close");
  b1.move(100, 100);
  
  b2 = new QPushButton(this);//注意指针需要动态分配空间,否则会发生段错误
  b2->setText("abc");

至此可以在主窗口上显示两个按键

—实现点击b1就会关闭主窗口

如何查看一个类帮助文档:点击类名,按F1(按两次全屏显示帮助文档),如果没有发现signal,则去查看其基类(Inherits)的signals

在这里插入图片描述
QPushbutton帮助文档无信号,其基类的信号如图所示

    b1.setParent(this);
    b1.setText("close");
    b1.move(100, 100);
    
    connect(&b1, &QPushButton::pressed, this, &MainWidget::close);
    /* &b1: 信号发出者,指针类型
     * &QPushButton::pressed:处理的信号,  &发送者的类名::信号名字
     * this: 信号接收者
     * &MainWidget::close: 槽函数,信号处理函数  &接收的类名::槽函数名字
    */

自定义槽

自定义槽的用法与普通函数的用法一样,Qt5中自定义槽可以是任意的成员函数,普通全局函数,静态函数。槽函数需要和信号一致(参数,返回值),信号是没有返回值的,故槽函数没有返回值

—通过点击b2将控件名字改变

 connect(b2, &QPushButton::released, this, &MainWidget::mySlot);//b2是指针,不用取地址
 
 写自定义槽函数时,一般写成共有的成员函数
 MainWidget.h
  void mySlot();//声明自定义槽函数 
  
 MainWidget.cpp
 void MainWidget::mySlot()
{
    b2->setText("123");
}

—通过点击抬起后b2使b1隐藏

MainWidget.cpp

connect(b2, &QPushButton::released, &b1, &QPushButton::hide);

—主窗口和 窗口切换

新建一个子窗口:

点击工程目录—&g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值