QT从入门到实践传智教育版笔记

3 按钮控件常用API

创建按钮 QPushButton *pBtn = new QPushButton;

设置父窗口 SetParent(this);

设置按钮文本 SetText("连接");

设置按钮位置 Move(宽,高);

设置按钮大小 resize(宽,高);

窗口常用API

显示窗口 Show

设置窗口标题 SetWindowTitle

设置窗口固定大小 SetFixedSize

4 对象树

当创建的对象在堆区中时,如果对象指定的父亲(该父亲与继承时的父亲不是一个概念)的父类(或者父类的父类)是QObject时,可以不用考虑释放的问题。对象树机制回负责释放。

释放是先释放儿子,再释放父亲。但是无法测试。因为释放时是先调用父亲的析构函数,父亲的析构函数返回前再调用儿子的析构函数(该机制不需要用代码实现)。

在QT中大胆使用New创建对象并且建议在创建的时候直接指定其父亲

5 Qt中的坐标:

左上角为原点(0,0)

水平为X轴,右方为正

竖直为Y轴,下方为正

6 信号和槽

链接函数(连接信号和槽)

函数名:connect

入参:

信号的发送方

发送的信号(函数地址)

信号的接收方

信号处理函数(这个函数叫槽)

示例:点击按钮关闭窗口

connect(pBtn,&QPushButton::clicked,this,&MyWidget::close);

7 自定义信号

定义信号

在信号发送方的signals下声明信号函数。信号函数的格式:返回值为void,可以有参数也没参数(支持重载)

信号函数只需要声明不需要实现

定义槽

在信号接收方的public slots下声明槽函数。槽函数格式:返回值void,可以有参数也可以没有参数(支持重载)

槽函数需要声明也需要实现

连接信号和槽

connect(信号发送方地址,信号函数地址,信号接收方地址,槽函数地址);

发送信号:

emit 信号函数();

信号和槽重载

        当信号和槽出现重载时,连接时需要使用函数指针指明对应的信号和槽。

        示例:void(CStudent:: *pTreat)(QString) = &CStudent::Treat;

QString型数据打印

        QString型数据打印出来会带双引号"",如果想取消双引号需要将QString转换为char *型数据。方法为:strData.toUtf8().constData();

扩展:

        信号可以连接信号

        一个信号可以同时连接多个槽函数,多个信号可以同时连接

        信号和槽函数的参数类型必须一一对应

        信号和槽函数的参数个数,可以不一致,但是信号函数的参数不能比槽函数的参数少。且类型必须一一对应。

        信号可以断开。断开方法为disconnect(信号发送方,信号函数地址,信号接收方,槽函数地址);

4版本之前的信号和槽的连接方式

        connect(信号发送方,SIGNAL(信号),信号接收方,SLOT(槽函数));

        示例:connect(zt,SIGNAL(Hungry(strData)),st,SLOT(strData));

        优点:参数直观,缺点:不做类型检查。类型不匹配时编译时不报错,运行时功能不正常(入该连接不生效)

菜单栏

        菜单栏最多只有一个。

       创建菜单栏: QMenuBar *pMenuBar = menuBar();

        添加到窗口中: setMenuBar(pMenuBar);

        添加菜单:QMenu *pFileMenu = pMenuBar->addMenu("文件");

        菜单之间增加分界线:pMenuBar->addSeparator();//未生效

        在“文件”菜单中增加菜单项: QAction *pNewAction = pFileMenu->addAction("新建");

        菜单项之间增加分界线:pFileMenu->addSeparator();

工具栏

        工具栏可以有多个

        创建工具栏: QToolBar *pToolBar = new QToolBar(this);

        添加到窗口中:addToolBar(Qt::LeftToolBarArea,pToolBar);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxz520zmg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值