首页 > 其他分享 >Qt-Qt使用回调函数方(callback)

Qt-Qt使用回调函数方(callback)

时间:2022-11-21 16:01:12浏览次数:40  
标签:QT callBack 函数 mainwindow callback QString include MainWindow Qt

Qt-Qt使用回调函数方(callback)_回调函数

 

实例代码:

.pro

1 QT       += core gui
2
3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
4
5 CONFIG += c++11
6
7 # The following define makes your compiler emit warnings if you use
8 # any Qt feature that has been marked deprecated (the exact warnings
9 # depend on your compiler). Please consult the documentation of the
10 # deprecated API in order to know how to port your code away from it.
11 DEFINES += QT_DEPRECATED_WARNINGS
12
13 # You can also make your code fail to compile if it uses deprecated APIs.
14 # In order to do so, uncomment the following line.
15 # You can also select to disable deprecated APIs only up to a certain version of Qt.
16 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
17
18 SOURCES += \
19 main.cpp \
20 mainwindow.cpp
21
22 HEADERS += \
23 mainwindow.h
24
25 FORMS += \
26 mainwindow.ui
27
28 # Default rules for deployment.
29 qnx: target.path = /tmp/$${TARGET}/bin
30 else: unix:!android: target.path = /opt/$${TARGET}/bin
31 !isEmpty(target.path): INSTALLS += target

View Code

main.cpp

1 #include "mainwindow.h"
2
3 #include <QApplication>
4
5 int main(int argc, char *argv[])
6 {
7 QApplication a(argc, argv);
8 MainWindow w;
9 w.show();
10 return a.exec();
11 }

View Code

mainwindow.h

1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QMainWindow>
5 #include <QDebug>
6
7 QT_BEGIN_NAMESPACE
8 namespace Ui { class MainWindow; }
9 QT_END_NAMESPACE
10
11 typedef QString(*callBack)(QString str);// 函数指针
12
13 // ******************调用类********************* //
14 class CallbackA
15 {
16 public:
17 void setCallBack(callBack callBackFunc);// 设置回调函数
18 callBack m_pCallBackFunc;// 回调函数成员
19 };
20
21 // ******************被调类********************* //
22 class CallbackB
23 {
24 public:
25 static QString callBack(QString str);// 声明回调函数
26 };
27
28 // ******************使用类********************* //
29 class MainWindow : public QMainWindow
30 {
31 Q_OBJECT
32
33 public:
34 MainWindow(QWidget *parent = nullptr);
35 ~MainWindow();
36
37 private:
38 Ui::MainWindow *ui;
39 };
40 #endif // MAINWINDOW_H

View Code

mainwindow.cpp

1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3
4 MainWindow::MainWindow(QWidget *parent)
5 : QMainWindow(parent)
6 , ui(new Ui::MainWindow)
7 {
8 ui->setupUi(this);
9
10 CallbackA *oCallbackAo = new CallbackA();
11 oCallbackAo->setCallBack(&CallbackB::callBack);// 运行后输出“CallbackB:callBack: "CallbackA"”
12 }
13
14 MainWindow::~MainWindow()
15 {
16 delete ui;
17 }
18
19
20 QString CallbackB::callBack(QString str)
21 {
22 qDebug() << "CallbackB:callBack: " << str;
23 return "CallbackB:callBack: ";
24 }
25
26 void CallbackA::setCallBack(callBack callBackFunc)
27 {
28 m_pCallBackFunc = callBackFunc;
29 m_pCallBackFunc("CallbackA");
30 }

View Code

mainwindow.ui

1 <?xml version="1.0" encoding="UTF-8"?>
2 <ui version="4.0">
3 <class>MainWindow</class>
4 <widget class="QMainWindow" name="MainWindow">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>358</width>
10 <height>169</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>MainWindow</string>
15 </property>
16 <widget class="QWidget" name="centralwidget"/>
17 </widget>
18 <resources/>
19 <connections/>
20 </ui>

View Code

 

标签:QT,callBack,函数,mainwindow,callback,QString,include,MainWindow,Qt
From: https://blog.51cto.com/u_15308785/5874086

相关文章

  • Net6 反射反射程序员的快乐/遍历属性、字段、构造方法、函数及相关操作
    十年河东,十年河西,莫欺少年穷学无止境,精益求精反射反射,程序员的快乐,利用反射可以获取到私有属性及其值 在C#中反射无处不在,用好反射,就可以为所欲为有这么一个学生类:publicc......
  • Qt QVariant的用法
    前言QVariant这个类很神奇,或者说方便。很多时候,需要几种不同的数据类型需要传递,如果用结构体,又不大方便,容器保存的也只是一种数据类型,而QVariant则可以统统搞定。介绍......
  • Qt QVariant与Json的各种纠葛
    前言我之前虽了解QVariant的一些性能,但是没有与Json各种的互转。以前我解析Json后,是将其转化为我自定义的结构体,既方便看,又方便调用,就是解析转换的时候麻烦些;后续看到......
  • javaScript 纯函数
    一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。为什么要煞费苦心地构建纯函数?因为纯函数非常靠谱,执行一个纯函数你不用担......
  • fromLocal8Bit()函数
    QtfromLocal8Bit()函数可以设置编码Qt默认的编码是unicode。windows默认使用(GBK/GB2312/GB18030)使用fromLocal8Bit(),实现了从本地字符集GB到Unicode的转换,用于处理汉......
  • Oracle函数使用方法
    --Oracletrunc()函数的用法:表示对值的截断/**************日期********************/1.selecttrunc(sysdate)fromdual  --2011-3-18 今天的日期为2011-3-182.selec......
  • rand()函数
    **一.知识点:**1、C的rand()函数生成指定范围的随机数2、Rand_Max**二.详解 :**1、C的rand()函数是在stdlib.h的头文件中,属于标准库函数;2、整数类型的Rand_Max同......
  • QT + OpenGL
    1、QT+Opengl的优势1)安装简单,QT借助于Qt的封装,无需配置第三方库如:GLFW+GLADGLFWGLADGLFW解决操作系统层面的不同GLAD使得代码可以用于不同的Opengl驱动......
  • talib数学计算函数
    talib文档-->MathOperatorsfromtalibimport*importnumpyasnpa=np.arange(10)a=a.astype('float')#print(a)#array([0.,1.,2.,3.,4.,5.,......
  • JS中this在【全局、事件绑定、对象定义、构造函数】下的理解
    学前端也好久啦,看了很多文档,结合自己的一点经验来讲,对于this,最通俗易懂的理解就是:函数在哪里调用的,this就指向哪里。首先看个例子:这里的函数getFullName,在哪里调用呢,是不......