IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> QT基本认识,信号和槽的一些个人笔记 -> 正文阅读

[C++知识库]QT基本认识,信号和槽的一些个人笔记

qt,基类,基名

  1. QT:跨平台的c++图形用户程序框架
  2. 基类:(也称:父类)qt中的几个类别:QMainWindow(PC端);QDialog(对话框);QWidget(图形界面,比较常用)
  3. 基名:(也称:子类、派生类)如:class MyWidget::pubic
  4. 编译的快捷键:Ctrl+R

QT基本编程笔记–day01_QTtest

  1. QApplication应用类程序
  2. QT头文件没有.h,有文件和类名一样
  3. 有且仅有一个应用程序类的对象
  4. 第一个qt程序解析:MyWidget继承于QWidget,QWidget是一个窗口基类,所以MyWidget也是窗口类
  5. 设置窗口标题使用SetWindowTitle(Qstring(“标题”));
  6. w就是一个窗口,窗口创建是默认隐藏的,需要人为显示(w.show();)
  7. a.exe?;让程序一直执行,等待用户操作(等待事件发生)
  8. main.cpp的基本框架
    `#include
    int main (int argc, char*argv[])
    {
    QApplication a(argc,argv);
    //我们写的代码
    return a.exe?;
    }
  9. Q_OBJFCJ信号与槽的时候使用(暂时没有了解)
  10. 高于4版本的要在.pro里添加 QT+=widgets,为了兼容qt4

指定父对象day01_HellloQT

  1. a指定b为他的父对象,a放在b的上面
  2. 指定父对象有两种方式:1)setparent(&父对象) 2)通过构造函数传参
  3. 指定父对象只要父对象显示,上面的子对象自动显示
  4. b.move(坐标);移动坐标
  5. 编写按键:
    #include
    QPushButton b;
    b.setText("") //给按键设置内容

信号和槽 day01_SingLandSlot

  1. 标准信号和槽:connect(&b1, &QPushButton::pressed, this, &MainWidget::close);

  2. &b1:信号发出者,指针类型

  3. &QPushButton::pressed:处理信号,&发送者的类名::信号的名字

  4. this:信号接收者

  5. &MainWidget::close:槽函数,信号处理函数 &接受的类名::槽函数名字。

  6. 自定义槽,普通函数的用法

  7. QT5:任意成员函数,普通全局函数,静态函数,槽函数都需要与 信号一直(参数,返回值)

  8. 由于信号没有返回值,槽函数一定没有返回值

  9. 两个独立的窗口: hide隐藏 子窗口头文件包含用“ ”

  10. Signals:新号必须由signals来声明;信号没有返回值,但可以有参数;信号就是函数声明,只需声明,无需定义

  11. 使用:emit mysignal();

附上两个独立窗口的代码

mainwidget.h

#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include <QPushButton>
#include "subwidget.h"

class MainWidget : public QWidget
{
    Q_OBJECT


public:
    MainWidget(QWidget *parent = 0);
    ~MainWidget();

    void mySlot();
    void changeWin();
    void dealSub();

private:
    QPushButton b1;
    QPushButton *b2;
    QPushButton b3;

    SubWidget w;

};

#endif // MAINWIDGET_H

subwidget.h

#ifndef SUBWIDGET_H
#define SUBWIDGET_H

#include <QWidget>
#include <QPushButton>


class SubWidget : public QWidget
{
    Q_OBJECT
public:
    explicit SubWidget(QWidget *parent = nullptr);

    void sendSlot();

signals:
    void mySingnal();

public slots:

private:
    QPushButton b;
};

#endif // SUBWIDGET_H

main.cpp

#include "mainwidget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWidget w;
    w.show();

    return a.exec();
}

mainwidget.cpp

#include "mainwidget.h"
#include <QPushButton>

MainWidget::MainWidget(QWidget *parent)
    : QWidget(parent)
{
    b1.setParent(this);
    b1.setText("close");
    b1.move(100,100);

    b2 = new QPushButton(this);
    b2 ->setText("ABC");

    connect(&b1, &QPushButton::pressed, this, &MainWidget::close);
    
    connect(b2, &QPushButton::released,this, &MainWidget::mySlot);
    connect(b2, &QPushButton::released,&b1, &QPushButton::hide);

    setWindowTitle("laoda");

    b3.setParent(this);
    b3.setText("tiehuandaozichuangkou");
    b3.move(50,50);

    connect(&b3, &QPushButton::released, this,&MainWidget::changeWin);

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

    resize(400,400);
}

void MainWidget::mySlot()
{
    b2->setText("123");
}

void MainWidget::changeWin()
{
    w.show();
    this->hide();
}

subwidget.cpp

#include "subwidget.h"

SubWidget::SubWidget(QWidget *parent) : QWidget(parent)
{
    this->setWindowTitle("xiaodi");
    b.setParent(this);
    b.setText("QIEHUANDAOZHUCHUANGKOU");

    connect(&b, &QPushButton::clicked, this, &SubWidget::sendSlot);
    resize(400,400);
}

void SubWidget::sendSlot()
{
    emit mySingnal();
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:11:24  更:2021-08-17 15:13:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 7:41:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码