QT笔记——第一篇

什么是QT?

跨平台的C++图形用户界面程序框架

MinGW版本

 

优点?

  • 跨平台

  • 简化了内存回收机制(效率高)

  • 嵌入式开发

  • 市场份额大

 

成果:Linux桌面KDE,WPS,谷歌地图

 

 

 

 

1.main函数

#include"mywidget.h"

#include<QApplication>

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

{

    //应用程序对象a,Qt中 有且仅有一个应用程序对象

    QApplication a(argc, argv);

    //创建MyWidget对象w,MyWidget基类QWidget

    MyWidget w;

    //弹出窗口(顶层方式弹出)

    w.show();

    //进入消息循环机制 pause

    return a.exec();

}

 

 

 

 

2.pro文件(自动生成的代码)

QT += core gui //QT包含的模块,使用模块的时候要在Pro中添加模块

TARGET = 01_Qt_First//exe程序名

TEMPLATE = app//模板 应用程序

SOURCES += main.cpp\    //源文件

                        mywidget

HEADERS += mywidget.h    //头文件 

 

 

3.

//快捷键

帮助文档    F1

运行    ctrl + R

编译    ctrl + B

查找    ctrl + F    

自动对齐    ctrl + i

注释 ctrl + /

 

Q_OBJECT    //宏,有了这个就说明支持了Qt中的信号和曹机制

 

 

4.QPushButton

//使用类的时候不仅要添加头文件同时也要添加模块

#include<QPushButton>

MyWidget::MyWidget(QWidget *parent)

    :QWidget(parent)

{

    //按钮

    QPushButton * btn1 = new QPushButton;

    btn->setParent(this);

    btn->setText("button1");//设置button按钮

    //此方法也能创建按钮 但是窗口会按照btn2大小进行显示

    

    QPushButton * btn2 = new QPushButton("button2",this);

    //更改窗口大小

    this->resize(w, h);



    //移动按钮不然会被覆盖

    btn2->move(x, y);



    //设置窗口标题  

    setWindowTitle("");



    //设置窗口固定大小

    setFixedSize(w, h)

}

 

5.对象树

用继承的方式优化了资源回收

 

#include<QDebug>

qDebug() << "";

 

 

6.信号槽(Slote)

connect(信号的发送者,发送的信号(信号地址),信号的接收者,处理的函数——槽函数地址

 

chicked(bool checked = false)//点击

pressed()//按下

released()//释放

toggled(bool checked)//切换状态,点一下再点一下是两种状态

 

优点:松散耦合

//点击按钮关闭

connect(mtBtn, &MyButton::clicked, this, close())

 

disconnect 断开信号

 

7.自定义信号和槽函数

 

头文件里

signal:

    //自定义信号 需要写在signals下

    //返回类型为void

    //只需要声明 不需要实现

    //可以有参数,可以重载

    void hungry();

 

public slots:

    //自定义槽函数

    //高版本可以写在public或者全局条件

    //返回值为void

    //需要声明+实现

    //可以有参数,可以重载

    void treat();

 

cpp文件

void Student::treat()

{

    qDebug() << "请老师吃饭";

}

 

需要触发事件才能进行捕捉信号并且处理

emit zt->hungry;

 

用函数指针来指向函数地址

有参和无参在耦合的时候无法区分函数

void(Teacher:: *teaherSignal)(QString) = &Teacher::hungry;//有参

void(Student:: *studentSlot)(QString) = &Student::treat;

void(Teacher:: *tSignal)(void) = &Teacher::hungry;//无参

void(Student:: *sSlot)(void) = &Student::treat;

 

信号可以连接信号

一个信号可以触发多个槽函数

多个信号也可以连接一个槽函数

信号和槽必须的参数一一对应(参数数量不一定)

信号参数的个数必须多于槽函数的函数个数

 

QT4版本

信号:SIGNAL()

槽:SLOT()

优点:参数直观    缺点:不会做类型检测

 

lambda表达式做信号连接的时候,默认内部变量会进行锁状态,只读状态,如果进行写操作数,就会挂掉

所以[&]{}{}换成[=](){}

 

 

多源动态最优潮流的分布鲁棒优化方法(IEEE118节点)(Matlab代码实现)内容概要:本文介绍了基于Matlab代码实现的多源动态最优潮流的分布鲁棒优化方法,适用于IEEE118节点电力系统。该方法结合两阶段鲁棒模型与确定性模型,旨在应对电力系统中多源输入(如可再生能源)的不确定性,提升系统运行的安全性与经济性。文中详细阐述了分布鲁棒优化的建模思路,包括不确定性集合的构建、目标函数的设计以及约束条件的处理,并通过Matlab编程实现算法求解,提供了完整的仿真流程与结果分析。此外,文档还列举了大量相关电力系统优化研究案例,涵盖微电网调度、电动汽车集群并网、需求响应、储能配置等多个方向,展示了其在实际工程中的广泛应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事能源系统优化工作的工程师。; 使用场景及目标:①用于研究高比例可再生能源接入背景下电力系统的动态最优潮流问题;②支撑科研工作中对分布鲁棒优化模型的复现与改进;③为电力系统调度、规划及运行决策提供理论支持与仿真工具。; 阅读建议:建议读者结合提供的Matlab代码与IEEE118节点系统参数进行实操演练,深入理解分布鲁棒优化的建模逻辑与求解过程,同时可参考文中提及的其他优化案例拓展研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值