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

好久没写过Qt了,写个Qt回味一下信号与槽

  1. 界面效果

  1. 界面类.h

#include <QtWidgets/qmainwindow.h>

#include <QtWidgets/qwidget.h>

#include <QtWidgets/qplaintextedit.h>

#include <QtWidgets/qboxlayout.h>

#include <QtWidgets/qlineedit.h>

#include <QtWidgets/qpushbutton.h>

//#pragma comment(lib,"Qt5Widgetsd.lib")

class testClass : public QMainWindow

{

Q_OBJECT

public:

testClass(QWidget *parent = nullptr);

~testClass();

void initWindow();

protected slots:

void changePainText(); //槽函数

private:

QPlainTextEdit* m_pPainTex;

QLineEdit* m_pLineEdit;

QPushButton* m_pButton;

};

  1. 界面实现.cpp

#include "testClass.h"

testClass::testClass(QWidget *parent): QMainWindow(parent)

{

initWindow();

connect(m_pButton, SIGNAL(released()),this,SLOT(changePainText())); //槽函数

this->setWindowTitle("Testing");

this->setMinimumSize(450,250);

}

void testClass::changePainText()

{

if (m_pLineEdit)

{

QString strLineEdit = m_pLineEdit->text();

if (m_pPainTex && !strLineEdit.isEmpty())

{

m_pPainTex->setPlainText(strLineEdit);

}

}

return;

}

void testClass::initWindow()

{

m_pPainTex = new QPlainTextEdit(this);

m_pPainTex->setGeometry(50,25,350,100); //富文本的布局位置

m_pPainTex->setReadOnly(true); //设置只读模式

m_pLineEdit = new QLineEdit(this); //设置父,用于半自动化释放

m_pLineEdit->setGeometry(50,145,50,25);

m_pButton = new QPushButton(this);

m_pButton->setGeometry(350,145,50,25);

m_pButton->setText("click");

}

testClass::~testClass()

{

if (m_pPainTex)

{

delete m_pPainTex;

m_pPainTex = nullptr;

}

if (m_pButton)

{

delete m_pButton;

m_pButton = nullptr;

}

if (m_pLineEdit)

{

delete m_pLineEdit;

m_pLineEdit = nullptr;

}

}

  1. 启动窗体.cpp

#include <QtWidgets/qapplication.h>

#include "testClass.h"

int main(int argc, char* argv[])

{

QApplication a(argc, argv);

testClass T;

T.show();

return a.exec();

}


http://www.kler.cn/a/1384.html

相关文章:

  • Vue.config.productionTip = false 不起作用的问题及解决
  • C++ 多线程异步操作
  • 【数据库】四、数据库管理与维护
  • jenkins入门10--自动化构建
  • 鸿蒙面试 2025-01-10
  • 【数据结构】航班查询系统:链表的实际运用
  • 海思SD3403/SS928V100开发(7)mcp2515-SPI转CAN驱动开发
  • Linux用户和权限 —— 操作演示
  • 【5G RRC】NR测量事件介绍
  • 关于字符类型
  • 基于 gma 绘制古代洛阳 5 大都城遗址空间分布地图
  • 使用vite创建vue3工程
  • 【SpringBoot项目实战】瑞吉外卖优化篇
  • 美团笔试-3.18
  • 微前端-qiankun
  • 分布式微服务架构下网络通信的底层实现原理
  • GPT-4最震撼我的一点
  • Python截图自动化工具
  • MySQL高级面试题整理
  • 面试造火箭?GitHub顶级“java 复习宝典“一一攻克!star破数十万
  • 计算机面试常见问答题目
  • 解读Flaky Test
  • 并发基础之线程池(Thread Pool)
  • SpringBoot(微服务)注册分布式Consul
  • 第十四届蓝桥杯三月真题刷题训练——第 15 天
  • Linux环境C语言开发基础