当前位置: 首页 > news >正文

北京建设监督网站阳山做网站

北京建设监督网站,阳山做网站,知名wordpress博客,衍艺网站建设目录 2 如何使用Layouts部件 2.1 QBoxLayout组件-垂直或水平布局 2.2 QGridLayout组件-网格布局 2.3 QFormLayout组件-表单布局 在Qt中#xff0c;布局管理器#xff08;Layouts#xff09;是用来管理窗口中控件位置和大小的重要工具。布局管理器可以确保窗口中的控件在…目录 2 如何使用Layouts部件 2.1 QBoxLayout组件-垂直或水平布局 2.2 QGridLayout组件-网格布局 2.3 QFormLayout组件-表单布局 在Qt中布局管理器Layouts是用来管理窗口中控件位置和大小的重要工具。布局管理器可以确保窗口中的控件在不同尺寸的窗口中正确排列和调整大小使得界面具有良好的可伸缩性和适应性。 垂直布局Vertical Layout垂直布局是一种布局方式它会按照垂直方向依次排列控件。在Qt中可以使用QVBoxLayout来创建垂直布局。通过使用这些布局管理器你可以更加便捷地设计和管理界面使得界面布局更加灵活和美观。水平布局Horizontal Layout水平布局是一种布局方式它会按照水平方向依次排列控件。在Qt中可以使用QHBoxLayout来创建水平布局。网格布局Grid Layout网格布局是一种布局方式它会将控件放置在一个二维的网格中每个控件占据一个网格。在Qt中可以使用QGridLayout来创建网格布局。表单布局Form Layout表单布局是一种专门用于表单设计的布局方式它会将标签和输入控件进行组合使得界面看起来更加整洁。在Qt中可以使用QFormLayout来创建表单布局。 2 如何使用Layouts部件 2.1 QBoxLayout组件-垂直或水平布局 垂直或水平布局使用几个按钮将他们设置为垂直排布和水平排布以及设置它们的一些属性。 在Qt中QBoxLayout是一个抽象基类用于管理布局中的控件。QBoxLayout有两个具体的子类QVBoxLayout和QHBoxLayout分别用于垂直布局和水平布局。QBoxLayout提供了一些方法和属性用于设置布局的各种属性和功能。QBoxLayout的常用方法和功能设置 将一个控件添加到布局中。addWidget(widget, stretch0, alignment0)stretch参数用于设置控件在布局中的拉伸因子alignment参数用于设置控件在布局中的对齐方式。将一个布局添加到当前布局中。addLayout(layout, stretch0)stretch参数用于设置布局在父布局中的拉伸因子。在指定位置插入一个控件。insertWidget(index, widget, stretch0, alignment0)在指定位置插入一个布局。insertLayout(index, layout, stretch0)设置指定位置的控件或布局的拉伸因子。setStretch(index, stretch)设置指定控件的对齐方式。setAlignment(widget, alignment)设置布局中控件之间的间距。setSpacing(spacing)设置布局的内容边距。setContentsMargins(left, top, right, bottom) 案例使用几个按钮将他们设置为垂直排布和水平排布以及设置它们的一些属性。 1首先按照文章新建项目Qt教程 — 1.3 如何创建Qt项目-CSDN博客。 2在头文件“mainwindow.h”修改代码具体代码如下。1导入QHBoxLayout、QVBoxLayout、QPushButton文件 — 2声明一个QPushButton、QWidget、QHBoxLayout对象。完整代码如下。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindow #include QHBoxLayout #include QVBoxLayout #include QPushButtonQT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();private:Ui::MainWindow *ui;// 声明按钮对象数组QPushButton *pushButton[6];// 定义两个 widget用于容纳排布按钮QWidget *hWidget;QWidget *vWidget;// QHBoxLayout 与 QVBoxLayout 对象QHBoxLayout *hLayout;QVBoxLayout *vLayout; }; #endif // MAINWINDOW_H3在文件“mainwindow.cpp”修改代码具体代码如下。 1设置主窗体的显示位置与大小。—2实例化两个QWidget、QHBoxLayout、QVBoxLayout对象。—3实例化6个QPushButton将按钮垂直和水平布局中。—4设置布局间的间距。 #include mainwindow.h #include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-setupUi(this);// 设置主窗口的位置与大小this-setGeometry(0, 0, 800, 480);// 实例化与设置位置大小hWidget new QWidget(this);hWidget-setGeometry(0, 0, 400, 50);vWidget new QWidget(this);vWidget-setGeometry(0, 50, 400, 100);hLayout new QHBoxLayout();vLayout new QVBoxLayout();// QListT是 Qt 的一种泛型容器类。它以链表方式存储一组值 并能对这组数据进行快速索引QList QStringlist;// 将字符串值插入 listlist按钮1按钮2按钮3按钮4按钮5按钮6;// 用一个循环实例化 6 个按钮 */for(int i 0; i 6; i){pushButton[i] new QPushButton();pushButton[i]-setText(list[i]);if(i 3) {// 将按钮添加至 hLayout 中hLayout-addWidget(pushButton[i]);} else {// 将按钮添加至 vLayout 中vLayout-addWidget(pushButton[i]);}}// 设置间隔为 50hLayout-setSpacing(10);//hWidget 与 vWidget 的布局设置为 hLayout/vLayouthWidget-setLayout(hLayout);vWidget-setLayout(vLayout); }MainWindow::~MainWindow() {delete ui; } 4程序编译运行的结果如下。可以看到在 hWidget 中添加了 3 个水平排布的按钮在 vWidget中添加了 3 个垂直排布的按钮。  ​ 2.2 QGridLayout组件-网格布局 在Qt中QGridLayout是用于创建网格布局的类可以将控件按照行和列的方式进行排列。QGridLayout提供了一系列方法和属性用于设置布局的各种功能和属性。QGridLayout的常用方法和功能设置 将一个控件添加到网格布局中。addWidget(widget, row, column, rowSpan1, columnSpan1, alignment0)row和column参数指定控件应该放置在哪一行和哪一列rowSpan和columnSpan参数指定控件应该跨越多少行和多少列alignment参数指定控件在网格中的对齐方式。 将一个布局添加到网格布局中。addLayout(layout, row, column, rowSpan1, columnSpan1, alignment0) 设置指定行的拉伸因子控制行的高度。setRowStretch(row, stretch) 设置指定列的拉伸因子控制列的宽度。setColumnStretch(column, stretch) 设置指定行的最小高度。setRowMinimumHeight(row, minSize) 设置指定列的最小宽度。setColumnMinimumWidth(column, minSize) 设置网格布局中控件之间的间距。setSpacing(spacing) 设置网格布局的内容边距。setContentsMargins(left, top, right, bottom) 按钮使用几个按钮将他们设置为网格布局同时设置它们的行、列比例系数拉伸因子以及设置它们的一些属性。 1首先按照文章新建项目Qt教程 — 1.3 如何创建Qt项目-CSDN博客。 2在头文件“mainwindow.h”修改代码具体代码如下。1导入QGridLayout、QPushButton文件 — 2声明一个QPushButton、QWidget、QGridLayout对象。完整代码如下。 ​ #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindow #include QPushButton #include QGridLayoutQT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();private:Ui::MainWindow *ui;// 声明 widget 窗口部件用于容纳下面 4 个 pushButton 按钮QWidget *gWidget;// 声明 QGridLayout 对象QGridLayout *gridLayout;// 声明 pushButton 按钮数组QPushButton *pushButton[4]; }; #endif // MAINWINDOW_H​ 3在文件“mainwindow.cpp”修改代码具体代码如下。 1设置主窗体的显示位置与大小。—2实例化两个QGridLayout对象。—3实例化4个QPushButton将按钮网格布局中。—4设置布局间的比例系数。 #include mainwindow.h #include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-setupUi(this);// 设置主窗口的位置与大小this-setGeometry(0, 0, 800, 480);/******* 2 *******/// 实例化gWidget new QWidget(this);// 设置 gWidget 居中央this-setCentralWidget(gWidget);gridLayout new QGridLayout();// QList 链表字符串类型QList QString list;list按钮 1按钮 2按钮 3按钮 4;for (int i 0; i 4; i){pushButton[i] new QPushButton();pushButton[i]-setText(list[i]);// 设置最小宽度与高度pushButton[i]-setMinimumSize(100, 30);// 自动调整按钮的大小pushButton[i]-setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);switch (i) {case 0:/* 将 pushButton[0]添加至网格的坐标(0,0),下同 */gridLayout-addWidget(pushButton[i], 0, 0);break;case 1:gridLayout-addWidget(pushButton[i], 0, 1);break;case 2:gridLayout-addWidget(pushButton[i], 1, 0);break;case 3:gridLayout-addWidget(pushButton[i], 1, 1);break;default:break;}}// 设置第 0 行与第 1 行的行比例系数gridLayout-setRowStretch(1, 1);gridLayout-setRowStretch(1, 1);// 设置第 0 列与第 1 列的列比例系数gridLayout-setColumnStretch(1, 1);gridLayout-setColumnStretch(1, 1);// 将 gridLayout 设置到 gWidgetgWidget-setLayout(gridLayout); }MainWindow::~MainWindow() {delete ui; } 4程序编译运行的结果如下。可以看到在 gWidget 中添加了 4 个按钮因为设置了行、列的系数比拉伸因子所以看到的按钮是按系数比的比例显示。 2.3 QFormLayout组件-表单布局 在Qt中QFormLayout是用于创建表单布局的类通常用于显示表单数据。QFormLayout将控件按照标签-字段的形式进行排列每个标签和字段组合在一行上。下面是QFormLayout的常用方法和功能参数 在表单布局中添加一个标签和字段组合。addRow(label, field)​​​​​​​label为标签部分field为字段部分。 在指定的行中添加一个标签和字段组合。addRow(label, field, row)。 设置标签的对齐方式。setLabelAlignment(alignment)。 设置整个表单布局的对齐方式。setFormAlignment(alignment)。 设置字段部分的增长策略。setFieldGrowthPolicy(policy)可以是QFormLayout::ExpandingFieldsGrow或QFormLayout::AllNonFixedFieldsGrow。 设置行的换行策略。setRowWrapPolicy(policy)可以是QFormLayout::WrapLongRows或QFormLayout::DontWrapRows。 设置标签的角色。setLabelRole(role)可以是QFormLayout::LabelRole或QFormLayout::FieldRole。 设置指定行的最小高度。setRowMinimumHeight(row, minSize)。 按钮使用几个按钮将他们设置为网格布局同时设置它们的行、列比例系数拉伸因子以及设置它们的一些属性。 1首先按照文章新建项目Qt教程 — 1.3 如何创建Qt项目-CSDN博客。 2在头文件“mainwindow.h”修改代码具体代码如下。1导入QLineEdit、QFormLayout文件 — 2声明一个QWidget、两个QLineEdit、QFormLayout对象。完整代码如下。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include QMainWindow #include QFormLayout #include QLineEditQT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();private:Ui::MainWindow *ui;// widget 对象QWidget *fWidget;// 用于输入用户名QLineEdit *userLineEdit;// 用于输入密码QLineEdit *passwordLineEdit;// 声明 QFormLayout 对象QFormLayout *formLayout; }; #endif // MAINWINDOW_H3在文件“mainwindow.cpp”修改代码具体代码如下。 1设置主窗体的显示位置与大小。—2实例化QWidget、QLineEdit、QFormLayout对象。—3添加登录用户名和密码。—4设置水平垂直间距和框的宽度。—5将 formLayout 布局到 fWidget #include mainwindow.h #include ui_mainwindow.hMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui-setupUi(this);// 设置主窗口的位置与大小this-setGeometry(0, 0, 800, 480);/******* 3 ******//* 实例化及设置位置与大小下同 */fWidget new QWidget(this);fWidget-setGeometry(250, 100, 300, 200);userLineEdit new QLineEdit();passwordLineEdit new QLineEdit();formLayout new QFormLayout();/* 添加行 */formLayout-addRow(用户名 , userLineEdit);formLayout-addRow(密码 , passwordLineEdit);/* 设置水平垂直间距 */formLayout-setSpacing(10);/* 设置布局外框的宽度 */formLayout-setMargin(20);/* 将 formLayout 布局到 fWidget */fWidget-setLayout(formLayout); }MainWindow::~MainWindow() {delete ui; } 4程程序编译运行的结果如下。可以看到在 fWidget 中添加了两行同时设置了它们的间隔与距边框的宽度。与 QGirdLayout 布局比较 QFomLayout 布局比较适用于行与列比较少的布局格局。如果是多行多列的布局应该使用 QGirdLayout 布局。
http://www.w-s-a.com/news/725222/

相关文章:

  • 中国建设银行公积金网站wordpress表单 post
  • 找权重高的网站方法wordpress视频网站上传视频
  • 营销型网站架构师迁移wordpress500错误
  • 做网站还是博客由()承担
  • wordpress 导购站模板中国最新军事新闻直播83军
  • 公众号h5网站开发wordpress文章主图
  • ps怎么艺术字字体设计网站我想自己做网站
  • 北京做机柜空调的网站模板网站和插件
  • 手机购物网站模板wordpress添加分类文档
  • 网站开发知识网上怎么申请个人营业执照
  • 音乐网站建设费用营销策略都有哪些4p
  • 深圳制作网站怎么样wordpress 学习视频
  • 新公司注册网站传奇手游大型网站
  • 无极网站网站涉案多少人被抓网站的按钮怎么做
  • ds216j做网站做购物网站那个好
  • 做淘宝门头的网站阿里巴巴官网app
  • 安踏网站建设策划方案如何通过域名访问网站
  • 建设网站破解版seo查询 站长之家
  • 太原模板建站平台旅游企业网站建设工作的通知
  • 网站国外建设超级简历模板官网
  • 上海网站建设市场医药网站怎么做
  • 宁夏成城建设集团网站网店美工课本
  • 哪些网站的简历做的比较好政务服务 网站 建设方案
  • 如何建设个人网站凡科怎么样vps安装wordpress后怎样登录
  • 学seo朝阳区seo
  • 网站开发团队成员皮具网站建设
  • 国外外贸需求网站响应式布局网页
  • 手机端便民服务平台网站建设昆明网络哪家好
  • 产品网站建设找哪家舟山信息港
  • 唐山网站建设汉狮怎么样seol英文啥意思