QT DEBUG

QT各版本下载:http://download.qt.io/archive/qt/#include "MyWidget.h"
#include<QPushButton>
#include<QDebug>//打印
MainWidget::MainWidget(QWidget *parent)
    : QWidget(parent)
{
    b1.setParent(this);//把一个按钮放到另一个窗体上,this是主窗口
    b1.setText("close");
    b1.move(100,100);
 
 
    b2=new QPushButton(this);//把一个按钮放到另一个窗体上
    b2->setText("切换成123并隐藏close");
 
 
    connect(&b1,&QPushButton::pressed,this,&MainWidget::close);
    /*&b1:信号发出者,指针类型
     * &QPushButton::pressed:处理的信号。&发送者的类名::信号名字
     * this:信号接收者
     * &MainWidget::close:槽函数,信号处理函数  &接收者的类名::槽函数名字
    */
    /*自定义槽:普通函数的用法
     * QT5:任意的成员函数,普通全局函数,静态函数
     * 槽函数需要和信号一致(参数,返回值)
     * 由于信号都没有返回值,所以,槽函数一定没有返回值
    */
    connect(b2,&QPushButton::released,this,&MainWidget::mySlot);
    connect(b2,&QPushButton::released,&b1,&QPushButton::hide);
    /*信号:短信
     * 槽函数:接收短信的手机
    */
 
 
 
 
    setWindowTitle(("老大"));
//    this->setWindowTitle("老大");//完全和上一个等价
     b3.setParent(this);
     b3.setText("切换子窗口");
     b3.move(50,50);
//     显示子窗口
//     subWin.show();
     connect(&b3,&QPushButton::released,this,&MainWidget::changeWin);
     //处理子窗口的信号
//     void(SubWidget::*funSingle)()=&SubWidget::mySignal;//声明没有返回值的信号的槽函数, void(SubWidget::*funSingle)()用的是函数指针
//     connect(&subWin,funSingle,this,&MainWidget::dealSub);//主函数接收到子窗口的响应后,执行槽函数dealsub
 
 
//     void(SubWidget::*testSingle)(int,QString)=&SubWidget::mySignal;//声明槽函数,其必须有整型和字符类型
//     connect(&subWin,testSingle,this,&MainWidget::dealSlot);//dealSlot是槽函数,信号给槽函数传参
     //QT4连接
     //QT4必须有slots:关键字来修饰
     //QT4槽函数
     connect(&subWin,SIGNAL(mySignal()),this,SLOT(dealSub()));//这是另一种方法,方便些 SIGNAL是信号 SLOT是槽
     connect(&subWin,SIGNAL(mySignal(int,QString)),
                     this,SLOT(dealSlot(int,QString)));
     //SIGNAL SLOT 将函数名字转换成字符串 不进行错误检查,比如将mySignal写成mySi,不报错
     resize(400,300);
 
 
}
void MainWidget::dealSlot(int a, QString str)//打印,头文件添加#include<QDebug>
{
    //如果DEBUG后250后面显示乱码,就将qDebug()<<a<<str;改成qDebug()<<a<<str.toUtf8().data();
    //str.toUtf8()->字节数组QByteArray
    //...data()->QByteArray->char *
   qDebug()<<a<<str.toUtf8().data();//前面要#include<QDebug>//打印
}
 
 
void MainWidget::mySlot()
{
    b2->setText("123");
}
void MainWidget::changeWin()
{
    //子窗口显示
    subWin.show();
    //本窗口隐藏
    this->hide();
}
void MainWidget::dealSub()
{
    //子窗口隐藏
    subWin.hide();
    //本窗口显示
    show();
}
MainWidget::~MainWidget()
{
 
 
}
 
 
 
 
  
  
 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大饼酱人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值