日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT学习笔记(十四):QLayout的属性介绍

發布時間:2024/7/23 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT学习笔记(十四):QLayout的属性介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QT學習筆記(十四):QLayout的屬性介紹

主要包括QBoxLayout、和QGridLayout以及QFormLayout等的參數類似。
我主要說明一下QGridLayout在QtDesigner中它的屬性的意義,以及QFormLayout的部分屬性

一、QGridLayout屬性介紹

1、QGridlayout以方格的形式管理窗口部件,先看QGridLayout的屬性,如下圖

2、各個參數的介紹:
1)layoutLeftMargin …至layoutBottomMargin在ui_MainWindow.h中自動生成的代碼是:

gridLayout->setContentsMargins(20, 10, 10, 10);

學過CSS都知道,這是設置一個元素所有外邊距的寬度,或者設置各邊上外邊距的寬度
On most platforms, the margin is 11 pixels in all directions.

2)HorizontalSpacing…至VerticalSpacing在ui_MainWindow.h中自動生成的代碼是:

gridLayout->setHorizontalSpacing(6); gridLayout->setVerticalSpacing(6);

這是設置兩個控件之間的水平和豎直距離

3)LayoutRowStretch在ui_MainWindow.h中自動生成的代碼是:

gridLayout->setRowStretch(0, 1); gridLayout->setRowStretch(1, 1); gridLayout->setRowStretch(2, 1);

表示在第0行、第1行、第2行 在豎直方向的空間比例分配,大家稍微改一下參數就能看出來效果

4)LayoutColumnStretch在ui_MainWindow.h中自動生成的代碼是:

gridLayout->setColumnStretch(1, 1);

表示設置第0列、第1列兩者在水平方向的空間比例分配。

5)LayoutRowMinimumHeight在ui_MainWindow.h中自動生成的代碼是:

gridLayout->setRowMinimumHeight(0, 1); gridLayout->setRowMinimumHeight(1, 2); gridLayout->setRowMinimumHeight(2, 3);

表示在第0行、第1行、第2行的最小高度是1pixels,2pixels,3pixels

6)LayoutColumnMinimumWidth在ui_MainWindow.h中自動生成的代碼是:

gridLayout->setColumnMinimumWidth(0, 4); gridLayout->setColumnMinimumWidth(1, 5);

表示設置第0列、第1列的最小寬度是4pixels、5pixels

7)LayoutSizeConstraint在ui_MainWindow.h中自動生成的代碼是:

gridLayout->setSizeConstraint(QLayout::SetDefaultConstraint);

此屬性保存布局的調整大小模式看下表:
枚舉 QLayout::SizeConstraint 可能的值是:

二、QFormLayout屬性介紹

1、QFormLayout類管理輸入型控件和它的label組成的那些form表格,包括它的界面參數如下圖

2、界面中對應的代碼如下:

formLayout = new QFormLayout(widget1); formLayout->setSpacing(6); formLayout->setContentsMargins(11, 11, 11, 11); formLayout->setObjectName(QString::fromUtf8("formLayout")); formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows); formLayout->setContentsMargins(0, 0, 0, 0); label_4 = new QLabel(widget1); label_4->setObjectName(QString::fromUtf8("label_4")); formLayout->setWidget(0, QFormLayout::LabelRole, label_4); lineEdit = new QLineEdit(widget1); lineEdit->setObjectName(QString::fromUtf8("lineEdit")); formLayout->setWidget(0, QFormLayout::FieldRole, lineEdit); label_5 = new QLabel(widget1); label_5->setObjectName(QString::fromUtf8("label_5")); formLayout->setWidget(1, QFormLayout::LabelRole, label_5); comboBox = new QComboBox(widget1); comboBox->setObjectName(QString::fromUtf8("comboBox")); formLayout->setWidget(1, QFormLayout::FieldRole, comboBox);

3、其中值得一說的是:LayoutFieldGrowthPolicy屬性
此枚舉指定可用于控制表單字段增長方式的不同策略。

4、還有一個屬性值得說:LayoutRowWrapPolicy
這個屬性設置了表格如何排版各個元素
如果你想把每個標簽放在相關字段的上方,而不是和它相鄰,就設置這個屬性值為WrapAllRows。

總結

以上是生活随笔為你收集整理的QT学习笔记(十四):QLayout的属性介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。