当前位置: 首页 > news >正文

Qt 6. 其他类调用Ui中的控件

1. 把主类指针this传给其他类,tcpClientSocket = new TcpClient(this);
//ex2.cpp
#include "ex2.h"
#include "ui_ex2.h"Ex2::Ex2(QWidget *parent): QDialog(parent), ui(new Ui::Ex2)
{ui->setupUi(this);tcpClientSocket = new TcpClient(this);}Ex2::~Ex2()
{delete ui;
}void Ex2::on_pushButtonTcpConnect_clicked()
{tcpClientSocket->Test();
}
2. 把ui类改为公共类
//ex2.h
#ifndef EX2_H
#define EX2_H#include <QDialog>
#include "tcpclient.h"QT_BEGIN_NAMESPACE
namespace Ui { class Ex2; }
QT_END_NAMESPACEclass Ex2 : public QDialog
{Q_OBJECTpublic:Ex2(QWidget *parent = nullptr);~Ex2();Ui::Ex2 *ui;		//改为公共类TcpClient *tcpClientSocket;private slots:void on_pushButtonTcpConnect_clicked();private://Ui::Ex2 *ui;		//私有类QSerialPort *serial;
};
#endif // EX2_H
3. 保存主类传来的指针保存,通过该指针调用UI中的控件
//tcpclient.cpp
#include "tcpclient.h"
#include "ex2.h"TcpClient::TcpClient(Ex2 *parent)
{socket = new QTcpSocket();pUi = parent;
}TcpClient::~TcpClient()
{delete socket;
}void TcpClient::Connect()
{}void TcpClient::Test()
{pUi->ui->textEditMy1->setText("Test");
}
//tcpclient.h
#ifndef TCPCLIENT_H
#define TCPCLIENT_H#include <QTcpSocket>
//#include "ex2.h"
#include "ui_ex2.h"class Ex2;      // 声明类
class TcpClient
{
public:TcpClient(Ex2 *parent);~TcpClient();void Connect();void Test();Ex2 *pUi;
private:QTcpSocket *socket;
};#endif // TCPCLIENT_H
4. 在pro文件中增加QT += network
//ex2.pro
QT       += core guiQT += serialportQT += network# disable C4819 warning
QMAKE_CXXFLAGS_WARN_ON += -wd4819greaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \ex2.cpp \tcpclient.cppHEADERS += \ex2.h \tcpclient.hFORMS += \ex2.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
5. 效果

在这里插入图片描述

http://www.lryc.cn/news/116085.html

相关文章:

  • PHP 的不同版本(src 版、nts 版和 win 版)之间的区别和共同点。
  • 3 vue的if语法
  • python基础3——流程控制
  • kubernetes中最小组件——Pod
  • C++ 友元
  • Vulkan 绘制显示设计
  • Linux性能分析工具介绍(一)--cpu及功耗相关工具介绍
  • 智能财务分析的无冕之王-奥威BI数据可视化工具
  • .NET 应用程序 部署
  • Linux CentOS安装NVIDIA GPU驱动程序和NVIDIA CUDA工具包
  • 剑指Offer13.机器人的运动范围 C++
  • List、Map、Set打印
  • 软件机器人在渔业船员证书核发中自动化二次审批制证,提高效率和准确性
  • Godot4 C# vscode开发环境搭建
  • nginx简介与安装配置,目录结构和配置文件介绍
  • CTF流量题解http4.pcapng
  • 旷视科技AIoT软硬一体化走向深处,生态和大模型成为“两翼”?
  • STM32 F103C8T6学习笔记2:GPIO的认识—GPIO的基本输入输出—点亮一个LED
  • 数组相关练习
  • Leetcode-每日一题【剑指 Offer 11. 旋转数组的最小数字】
  • git教程(第一次使用)
  • Autoware.ai1.14.0自动驾驶-Demo运行
  • AttributeConverter
  • 【逗老师的PMP学习笔记】8、项目质量管理
  • Zookeeper集群
  • 后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)
  • 【香瓜说职场】第10月(2018.01.29)
  • ​LeetCode解法汇总1749. 任意子数组和的绝对值的最大值
  • 4.2、Flink任务怎样读取文件中的数据
  • Effective Java笔记(28)列表优于数组