QT Creator上位机学习(二)基础布局控件及信号与槽

c# 系列文章目录



布局控件

美化界面的时候,经常需要进行一些控件的布局,这时需要使用一些容器类。
在这里插入图片描述
在我们设计布局的时候,可以通过设置控件的最大最小值,可以使得控件不按照布局效果等比例缩放,可以设计出更加多样的效果。
在这里插入图片描述
在快捷栏出,也有一些布局设计的选择
在这里插入图片描述
在这里插入图片描述
如上图,其中涉及到几种编辑状态:
1.Edit Widget:正常界面设计状态
2.Edit Signals/Slots:可视化信号与槽界面(这种方法的connect在ui_xxxxx.h文件中见下文)
在这里插入图片描述
3.Edit Buddies:伙伴关系,将Lable与一个组件建立伙伴关系,这样Lable的快捷键就绑定在该组件上了。
在这里插入图片描述
用下图设置快捷键:界面不显示&,用户按下Alt+A就行了
在这里插入图片描述
输入就会切换到后面的输入框
在这里插入图片描述
4.Edit Tab Order:进入Tab顺序组件编号状态,在运行时,按下Tab就会切换,我只是测试了Line Edit,可以用的

信号与槽

信号:特定的触发事件。
槽:对应信号的函数。

将槽函数与信号关联之后,当信号产生的时候,槽函数将自动执行。

QObject::connect(sender,SIGNAL(signal()),receiver,SLOT(slot()));

connect() 是一个静态函数(不会修改对象的数据成员),实际调用时不需要加QObject::,它是Qt类的基类,四个参数分别是:发送信号的对象名称、信号、接收信号的对象名称、槽函数。

要点:
1.一个信号可以连接多个槽函数
2.多个信号可以连接一个槽函数
3.一个信号连接到另外一个信号,实现一个信号发生时,另外一个也会发生
4.严格情况,信号与槽的参数个数和类型需要一致,可能会报错
5.信号发生后,会立马执行槽函数,执行完毕后才会执行发射信号后面的代码
6.使用信号与槽的类中,必须在类的定义中加入宏Q_OBJECT

如何建立:一般对一个控件直接鼠标右键,选择转到槽就可以选择我们需要的信号与槽函数
在这里插入图片描述
可以看到,代码中会自动生成槽函数,该槽的信号是按钮的点击。
在这里插入图片描述
这里不需要手动进行connect,这是因为在编译生成的ui_xxxxxx.h文件中,有:
在这里插入图片描述

QMetaObject::connectSlotsByName(MainWindow);

这个函数将搜索界面上的所有控件,将信号与槽关联起来,他是根据函数命名进行关联的,它搜索槽函数的规则是:

void on_<object name>_<signal name>(<signal parameters>);

所以当我们编写一个槽函数或者自动生成的槽函数:
在这里插入图片描述

它就会判断是pushButton对象的clicked信号的槽函数,并且将此与控件的信号进行关联,这也是UI设计可视化的一个便捷之处。当然如果我们不按照这个格式写,就要自己手动connect了。

第二种connect

对于具有默认参数的信号与槽(即信号名称是唯一的,没有参数不同而信号同名的情况),可以使用函数指针进行关联:

例如:

connect(lineEdit,&QLineEdit::textChanged,this,&widget::on_textChanged);

QLineEdit只有一个信号textChanged(QString),在自定义窗体类Widget里面定义一个槽函数on_textChanged(QString),就可以利用上面的程序进行关联,无需出现函数参数。

程序图标

1.将图标文件.ico复制到项目的源程序目录下
2.在.pro的项目配置文件中设置:RC_ICONS = xxxxx.ico

使用技巧

Shift+F2:在函数原型和函数定义之间切换
Ctrl+Shift+R:同名全部替换
Ctrl+I:自动缩进
Ctrl+/:注释/取消注释
在这里插入图片描述
多用Help帮助系统,若需要查看类的继承关系,访问“Inheritance Hierarchy”
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值