QT知识点总结(二)

1、如果有资源位于一个库中,需要用不带有后缀的 .qrc 文件名为参数调用 Q_INIT_RESOURCE() 来强制初始化资源系统。

2、可以用qobject_cast()动态转换QObject类的类型

3、自定义类型需要使用Q_DECLARE_METATYPE()宏注册,以便它们的值能被保存在QVariant对象中

4、QCoreApplication::sendEvent()(同步)和QCoreApplication::postEvent()(异步队列)把构造好的事件发送给指定的接收者.

5、当使用布局的时候,构建子控件的时候不需要指定parent,布局将会自动的指定parent(使用QWidget::setParent()),使它们成为安装了该布局的界面的子控件

  • QWidget::sizeHint() 返回控件的优先选用的大小
  • QWidget::minimumSizeHint() 返回控件所能有的最小大小
  • QWidget::setSizePolicy() 指定控件所需要的空间

6、QBoxLayout成员函数:

//添加控件到布局,参数:控件 拉伸参数对齐方式
addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = 0)

//添加控件到布局,参数:控件 拉伸参数
addLayout(QLayout *layout, int stretch)
//设置控件的拉伸参数
setStretchFactor(QWidget *w, int stretch);
setStretchFactor(QLayout *l, int stretch); 

7、QGridLayout:格栅布局
 

//这个单元将从row和column开始,扩展到rowSpan和columnSpan指定的倍数的行和列。如果rowSpan或//columnSpan的值为-1,则窗口部件将扩展到布局的底部或者右边边缘处。
void addWidget(QWidget *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0);
void addLayout(QLayout *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0)

//设置间距
setSpacing(int spacing) //同时设置水平及竖直间距
setHorizontalSpacing(int spacing)
setVerticalSpacing(int spacing) 

8、表单布局(QFormLayout)适用与QLabel及QLineEdit组合情况

QStackedLayout类提供了多页面切换的布局,一次只能看到一个界面。同QStackedWidget

9、QSpacerItem类为布局提供了一个空白区:QSpacerItem(int w, int h, QSizePolicy::Policy hData = QSizePolicy::Minimum, QSizePolicy::Policy vData = QSizePolicy::Minimum)

布局类可以使用addSpaceItem添加一个空白区域

10、QTemporaryFile用于安全地创建一个独一无二的临时文件,且该临时文件将随着QTemporaryFile对象的析构被删除。

11、QCryptographicHash类提供了生成密码散列的方法。

12、可以使用qInstallMessageHandler()输出详细日志

13、使用环境变量QT_MESSAGE_PATTERN或qSetMessagePattern可以改变打印信息的输出格式

猜你喜欢

转载自blog.csdn.net/Chiang2018/article/details/103189334