Qt5 注意

1 篇文章 0 订阅

 

QString::number()强制转换int到QString;

  • QT中最重要的是创建任何东西都需要指定父对象;
  • Qt5 想把新加入的控件在主窗口上显示出来,需要指定子控件的父对象。
  • 创建对象有两种方式,一种是非指针的:QPushbutten b1; b1.setPartent(this);
  • 另一种是指针的:QPushbutten *b2; b2 = new QPushButten(this);
  • 自定义信号必须必须用signals关键字来声明。
  • 信号本身只需声明,没有返回值,可以有参数.
  • 使用emit my_signal(); 来发送信号.
  • 父窗口调用子窗口直接调用就可以
  • 子窗口调用父窗口需要先发送信号,如果由按钮来跳转窗口,需要先使按钮信号发送到一个发送信号的槽函数,然后再定义这个槽函数发送一个自定义的信号(使用emit关键字),然后在父窗口中connect() 子窗口的信号,发送给自己定义的槽函数进行处理。
  • 自定义的信号无需函数体,无需具体定义,只需声明就ok。
  • 在父窗口里创建子窗口的对象 如:sub_win w;要显示子窗口,只需w.show()就ok。
  • 子窗口按下按钮,emit my_signal(); 
  • 父窗口connect(&sub_win对象,my_signal,this,deal_fun;)
  • connect() 中所有的对象都用&来取对象地址,若定义时定义对象为指针对象,则connect()中不再需要&来取地址,否则(错误)。
  • 信号可以重载,无需实现
  • Qt5和Qt4 connect()的实现的区别
  • Qt4connect()一因为将信号和槽函数函数名转化为字符串,不进行错误检查,二必须用SIGNAL和SLOTS修饰,不方便。
  • lambda表达式,c++新加入,配合QT的信号方便使用,在pro文件加入CONFIG += C++11
  • [=](){.........} 中的“=”是把外部所有的局部变量,类的成员以值传递的方式传递进来,切默认为只读。可以加mutable修饰(),可变的。或者用引用传递[&],但是若外部变量也为引用定义,则会错误(注意)。信号的传参可以直接传入匿名表达式中的(参数)中。
  • 尽量使用Lambda表达式进行connect()信号与槽的传递。
  • 父窗口坐标系统相对于屏幕左上角,子窗口相对于父窗口空白左上角。
  • QMainWindow 常用于PC端,带有菜单栏,工具栏,等
  • QMenuBar 菜单栏
  • QMenu 菜单
  • 以指针新建对象,必须要用new 对象。
  • 模态用局部变量:Dialog dia;dia.exec();
  • 非模态两种:(1)定义成员变量Dialog dia;dia.show();(2)使用匿名表达式中定义成局部变量Dialog *p = new Dialog(this);p.show(),使用局部变量若制动this父对象问题是容易造成内存泄漏。 也可以不指定this 父对象,使用p->setAttribute(Qt::WA DeleteOnClos);释放内存.
  • 静态成员函数需要类名::调用
  • LineEdit自动提示字符串,要用QStringList 头文件,Qcompletertou 头文件设定不区分字母大小写。
  • 关于RGB:0~255。
  • 自定义控件,需要执行(提升)行为,对自定义的控件右键进行提升.把ui中拖进去的控件提升为自定义的控件类型。
  • 对于qt5线程,需要自定义线程类,继承与OBject,同时在主线程中创建子线程对象,把自定义的线程类加入到主线程中的子线程中去。启动线程函数必须用信号与槽来启动。
  • 导入win下的系统库:#include <Windows.h> 使用 WinExec("calc", SW_HIDE);来隐藏不想要的cm黑窗口;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值