Qt界面布局和常用控件

    Qt 提供了通用的界面布局类QLayout,提供了管理控件位置的功能, QBoxLayout, QFormLayout, QGridLayout, 和 QStackedLayout.均继承自QLayout。Qt的界面布局基本分为3种,水平布局(Horizontal Layout),垂直布局(Vertical Layout),网格布局(Grid Layout). 此外,Form Layout提供了两列展示的布局方式,左边是文本,右边是关联的控件。采用布局管理器可以方便的对控件进行定位、实现自动拉伸等功能。

    通过继承QLayout,也可以实现自定义的布局类,可以参考Qt官方例程Flow Layout Example,实现了流式布局,即界面宽度不够时自动换行。

    水平布局,里面的控件将水平展示,布局器里面的控件大小若没有固定,其大小将随着布局的大小而自动拉伸。可以通过设置其左(layoutLeftMargin)、上(layoutTopMargin)、右(layoutRightMargin)、下边距(layoutBottomMargin)来调整里面控件相对于布局的边距,控件之间的宽度可以通过layoutSpacing属性进行设定。在Qt Designer里,可以先拖拽控件至窗口中,然后进行点击水平、垂直布局等实现布局,也可以先拖拽布局,再向里面添加控件。布局里不能添加控件时需要先打破布局,再添加,再布局。

    垂直布局与水平布局方向不一样,用法类似。

    弹簧(Spacer)可以方便对控件进行分割、自动撑开界面、自动拉伸等,分为水平弹簧(Horizontal Spacer),垂直弹簧(Vertical Spacer)。sizeType属性指定了其伸展策略,Fixed固定大小,Expanding自动拉伸。sizeHint指定了其初始宽高。例如在水平布局里使控件右对齐,可以在布局左侧放置一个Expanding的弹簧,在右侧放置控件。两端对齐,则可以在中间放置一个自动拉伸的弹簧,弹簧的宽度将随着布局的宽度而自动拉伸。

    常用控件:

    QPushButton,按钮,可以被点击,可以显示图标、文字。

    QLabel,可以显示文字、图片、动画(gif)。

    QToolButton,可以显示菜单的按钮。

    QRadioButton,单选按钮,QCheckBox,复选按钮。

    单选按钮组,将单选按钮放在同一个水平或垂直布局里,就自动成为一组了,不一定要放到QGroupBox或QButtonGroup里。

    QLineEdit,单行文本框。QTextEdit,多行文本框。

    Combo Box(QComboBox),下拉选择框。

    QSpinBox,上下数字选择框。

    QWebView,显示网页的控件,支持html、css、js。

    QListView 显示列表项的视图控件,配合model(模型)和delegate(委托)使用,实现mvc模式。

    QListWidget,显示列表项的控件,可以setItemWidget,使列表中的项显示某一控件。

    QScrollArea,实现滚动的控件,带滚动条。

    QTabWidget,实现tab页效果的控件。

    QStackedWidget,控件栈,一次只能显示一个widget。


    By Lankin.

    2015/1/5


你可能感兴趣的:(Qt,Qt,界面,布局)