QT编程 从新开始(一)

布局

**1、**Qt提供了QHBoxLayout类、QVBoxLayout 类及QGridLayout类等的基本布局管理,分别是水平排列布局、垂直排列布局和网格排列布局。它们之间的继承关系如图所示。
在这里插入图片描述
**2、**布局中常用的方法有addWidget( ) 和addLayout( )

**(1)、**addWidget( ) 方法用于向布局中加入需要布局的控件,addWidget( ) 的函数原型如下:

void addWidget( ) 
{
	QWidget *widget,              //需要插入的控件对象
	int  fromRow,                 //插入的行
	int fromCloumn,               //插入的列
	int rowSpan,                  //表示占用的行数
	int columnSpan,               //表示占用的列数
	Qt::Alignment  alignment=0;   //描述各个控件的对齐方式
}

(2)、addLayout( ) 方法用于向布局中加入需要布局的控件,addLayout( ) 的函数原型如下:

void addLayout( )
{
	QLayout  *layout,               //描述需要插入的子布局对象
	int  row,                       //插入的起始行
	int  column,                    //插入的起始列
	int  rowSpan,                   //表示占用的行数
	int  columnSpan,                //表示占用的列数
	Qt::Alignment  alignment=0      //指定对齐方式
}

3、布局示例
(1)、QHBoxLayout类

  1. 代码示例

      QWidget *window = new QWidget;
      QPushButton *button1 = new QPushButton("One");
      QPushButton *button2 = new QPushButton("Two");
      QPushButton *button3 = new QPushButton("Three");
      QPushButton *button4 = new QPushButton("Four");
      QPushButton *button5 = new QPushButton("Five");
      
      QHBoxLayout *layout = new QHBoxLayout;
      layout->addWidget(button1);
      layout->addWidget(button2);
      layout->addWidget(button3);
      layout->addWidget(button4);
      layout->addWidget(button5);
      
      window->setLayout(layout);
      window->show();
    
  2. 布局显示
    在这里插入图片描述

(2)、QVBoxLayout 类

  1. 代码示例

    QWidget *window = new QWidget;
      QPushButton *button1 = new QPushButton("One");
      QPushButton *button2 = new QPushButton("Two");
      QPushButton *button3 = new QPushButton("Three");
      QPushButton *button4 = new QPushButton("Four");
      QPushButton *button5 = new QPushButton("Five");
      
      QVBoxLayout *layout = new QVBoxLayout;
      layout->addWidget(button1);
      layout->addWidget(button2);
      layout->addWidget(button3);
      layout->addWidget(button4);
      layout->addWidget(button5);
      
      window->setLayout(layout);
      window->show();
    
    1. 布局显示
      在这里插入图片描述

(3)、QGridLayout类

  1. 代码示例

       button_0 = new QPushButton("0");   
       button_1 = new QPushButton("1");   
       button_2 = new QPushButton("2");
       button_3 = new QPushButton("3");   
       button_4 = new QPushButton("4"); 
       button_5 = new QPushButton("5");
       button_6 = new QPushButton("6");
       button_7 = new QPushButton("7"); 
       button_8 = new QPushButton("8");  
       button_9 = new QPushButton("9");   
       button_ce = new QPushButton("CE");  
       addButton = new QPushButton("+");   
       subButton = new QPushButton("-");   
       mulButton = new QPushButton("*"); 
       divButton = new QPushButton("/"); 
       button_result = new QPushButton("=");   
             
         QGridLayout * layout = new QGridLayout;  
         layout->addWidget(data,1,1,1,4,Qt::Alignment());  
         layout->addWidget(button_1,2,1,Qt::Alignment());  
         layout->addWidget(button_2,2,2,Qt::Alignment());  
         layout->addWidget(button_3,2,3,Qt::Alignment()); 
         layout->addWidget(addButton ,2,4,Qt::Alignment()); 
         layout->addWidget(button_4,3,1,Qt::Alignment());  
         layout->addWidget(button_5,3,2,Qt::Alignment());  
         layout->addWidget(button_6,3,3,Qt::Alignment());  
         layout->addWidget(subButton ,3,4,Qt::Alignment()); 
         layout->addWidget(button_7,4,1,Qt::Alignment()); 
         layout->addWidget(button_8,4,2,Qt::Alignment()); 
         layout->addWidget(button_9,4,3,Qt::Alignment()); 
         layout->addWidget(mulButton,4,4,Qt::Alignment()); 
         layout->addWidget(button_ce,5,1,Qt::Alignment());  
         layout->addWidget(button_0,5,2,Qt::Alignment());  
         layout->addWidget(button_result,5,3,Qt::Alignment()); 
         layout->addWidget(divButton ,5,4,Qt::Alignment());  
         layout->setMargin(12);
    
  2. 布局显示
    在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值