1.qt没有Image控件,Lable既可以显示文字也可以显示图片
2.用vs创建完Qt工程后,Qt的类没有包含问题:
(1)可以手动在项目属性中,vc++ 目录-》包含目录中,找到qt的include路径添加,感觉不够规范;
(2)可以在项目右键菜单中找到Qt项目设置,在模块中添加所用到的模块通常如下
3.在别的工程中搬过来的.ui文件,qrc文件,导入工程如下位置
4.qtdesigner可以新建qrc文件,也可以使用已有的qrc文件,设置位置如下
5.在VS中开发Qt,可以通过项目选项中的,Add Qt Class 快速生成类文件,及ui文件,并且自动关联,省去一些胶水代码。
6.如何获取Qt控件的类型
QObject是有窗口类的父类,比如QWidget,QLabel,QPushButton等都直接或间接继承自QObject类。如果把某个窗口中的所有控件都装到一个QList<QObject*>中,那么如何区分当前的是那种类型控件呢?
QObject *obj;
if (obj->metaObject()->className() == QStringLiteral("QPushButton")这样就可确定其类型为一个按钮。然后通过 QPushButton *b = qobject_cast<QPushButton*>(obj); 转为真实的类型。
7.窗口缩放布局
在开发中遇到了一个问题,动态的在窗口中增加控件时,窗口可以自动的放大,但是当窗口中的控件减小的时候却不能让主窗口自动减小,从而布局中的其它窗口所占空间变大,布局很难看。一直在查找qt中有没有方法可以进行设置,自动的帮我们实现这个功能,查了很久没有查到(手动计算窗口的大小可以,但是觉得太麻烦)。后来发现可以布局的最下方使用addStretch()方法。
addStretch()方法可以使窗口其它窗口布局变得更加紧凑,当然也可以在布局末端添加弹簧。但是弹簧有局限性,当你把窗口拉到很大时,其它的窗口布局还是会放大,这时候还要将布局的sizepolicy设置为fix,这样才能保证在主窗口拉大到最大是,子窗口依然可以保证最佳的尺寸。