如果我们要想定义一个类可以使用SIGNAL和SLOT机制,就需要在一开始就使用一个Q_OBJECT宏
signal和slot关键字实际上也是一个宏
在头文件中使用前向声明可以加快编译速度
QtQui头文件包含了所有属于QtCore或QtQui类的声明,这样声明很简单
tr()函数是用来标识文本翻译成其他语言的,在可视化字符串上使用tr()函数是个好习惯。 国际化也变容易了
快捷键的指定直接在字符前加上&就行了,Oh my god,so easy
可以快捷键触发聚焦 setBuddy
默认TAB键的顺序是控件创建的顺序
SIGNAL和SLOT宏将参数转化为字符串
一个信号可以连到很多槽位
多个信号可以连到同一槽位
一个信号也可连到另一信号
连接也可以去除
为了成功的将一个信号连到一个槽位或另一个信号,参数必须相同,若信号的参数较多,多出来的参数将会被忽略,而且参数要兼容
信号和槽位机制不限于在控件使用
QT的元对象系统:
QT实现了创建独立软件组件不用知道任何待连接对象的信息就可以相互绑定的机制的C++扩展。
Q_OBJECT宏声明需要实现一些刺探函数如: metaObject(), tr(), qt_metacall()等
moc自动生成这些刺探函数的实现
connect和disconnect用这些刺探函数完成其工作
在QT中我们必须删除那些用new生成的而且没有父对象,如果在删除父对象前删除了子对象,QT将自动从父对象的子对象列表中删除该对象
对于控件来说,当我们删除父控件时,不仅子控件从内存中清除了,而且也会从屏幕上清除
accept槽位和reject槽位都会关闭对话框,但设置的返回值不一样,accept设置为QDialog:Accepted(1)reject设置为QDialog:Rejected(0)
如果设置了布局的sizeConstraint属性为QLayout::SetFixedSize,则对话框则不再能拉伸
QT界面扩展的几种方式:
1.界面以toggle button切换隐藏和显示
2.多Tab页面显示
3.动态加载QUiLoader findChild CONFIG+= uitools,可用来构建瘦客户端