美文网首页
QT5添加控件,信号和槽

QT5添加控件,信号和槽

作者: 钊明 | 来源:发表于2020-03-18 14:15 被阅读0次

学习来自https://www.bilibili.com/video/av34085761?p=11
添加控件的头文件 <QPushButton>

//如果不指定父窗口,对象和对象(窗口和控件)是独立的

1.setParent

2.通过构造函数传参

指定父对象,只需要父对象显示,上面的子对象自动显示,如下:

QWidget w; //父对象==>窗口

QPushButton b; //子对象==>控件  也可以b(&w);

b.setParent(&w);//指定父对象

b.setText("标题");

b.move(100,100);//设置控件移动坐标

信号和槽

如在构造函数MainWidgrt中在.h声明QPushButton b1;

MainWidget::MainWidget(QWidget *parent)

:QWidget(parent)

{

    b1.setParent(this);

    b1.setText("close");

    connect(&b1, &QPushButton::pressed, this, &MainWidget::close);

/*&b1: 信号发出者,指针类型

*&QPushButton::pressed:处理的信号,  &发出者的类名::信号名字

*this : 信号接收者

*&MainWidget::close: 槽函数,处理的信号函数,&接收者的类名::信号名字

*/

//在.h类中声明函数void Qsend();

    connect(&b1, &QPushButton::pressed, this, &MainWidget::Qsend);

/*自定义槽,普通函数的用法

*QT5:任意的成员函数,普通全局函数,静态函数

*槽函数需要和信号一致(参数,返回值)

*由于信号都是没有返回值,所以槽函数一定没有返回值

*/

}

//两个窗口间的信号传递

//在其.h中声明SubWidget w;和声明信号处理函数void dealSub();

  MainWidget::MainWidget(QWidget *parent)//窗口1

:QWidget(parent)

{

    this->setWindowTitle("老大");

    b1.setParent(this);

    b1.setText("切换到子窗口");

//处理子窗口的信号

    connect(&w,&SubWidget::mySignals, this, &MainWidget::dealSub);

    resize(300,300);//定义窗口大小

}

//在创建一个类窗口继承QWidget,在其.h中的signals:声明void mySignals();

//和声明信号函数void sendSlot();

/*信号必须有signals关键字

*信号没有返回值,但可以有参数

*信号就是函数的声明,只需声明,无需定义

*使用: emit mySignals();

*/

  MainWidget::SubWidget(QWidget *parent)//窗口2

:QWidget(parent)

{

this->setWindowTitle("小弟");

    b.setParent(this);

    b.setText("切换到主窗口");

    connect(&b, &QPushButton::clicked, this,$SubWidget::sendSlot);

    resize(300,300);//定义窗口大小

}

void MainWidget::sendSlot()

{

    emit mySignals();

}

相关文章

  • QT5添加控件,信号和槽

    学习来自https://www.bilibili.com/video/av34085761?p=11添加控件的头文...

  • Chapter 1 Qt概述

    信号槽机制: 保证了信号发送方和接收方的解耦合,同时保证了参数安全, 虽然降低了效率(大约10倍). Qt5基于以...

  • QT5信号与槽

    QT5中信号与槽,如果需要使用,则需满足以下两点: 1、必须是QObject或其子类 2、必须在private里面...

  • QtCreator转换Qt5风格信号槽连接

    这一方法可以将Qt5版本以下旧式的信号槽连接转换为Qt5风格的连接。 使用方法 鼠标指向connect函数名; 右...

  • Qt5 - 2. 信号&槽

    Qt 中一个重要的机制就是信号与槽,理解和熟练使用信号与槽对于学好 Qt 非常有必要。先上码看看: 效果图: 注意...

  • Qt学习笔记(十三)列表(QListWidget)

    1、简单使用 - 增加、删除、插入 效果图 链接信号和槽 槽实现 2、右键添加Menu 设置QListWidget...

  • Qt 编译错误: QMetaObject::connectSlo

    首先,我们需要了解Qt信号和槽关联的方式有哪些?我所知道的Qt信号和槽关联方式一般有两种,一种是利用控件自动绑定信...

  • 信号和槽

    新建项目(application->Qt widgets application)->配置信息(详细信息->bas...

  • Qt5 跨窗口信号槽通信

    多窗口通信,如果是窗口类对象之间互相包含,则可以直接开放public接口调用,不过,很多情况下主窗口和子窗口之间要...

  • WebRTC信号和槽机制

    信号和槽的实现原理大致是这样的 : 信号对象持有连接,连接里记录了槽对象的地址和槽函数(某个成员函数)地址信号对象...

网友评论

      本文标题:QT5添加控件,信号和槽

      本文链接:https://www.haomeiwen.com/subject/uujfyhtx.html