QT-纯代码控件-QGridLayout(网格布局)

it2022-05-05  178

实现一个简单的网格布局分布

1.新建一个无ui界面的工程,其基类为dialog

2.代码实现

dialog.h和main.cpp不做改变

dialog.cpp

#include "dialog.h" #include <QLabel> //标签控件 #include <QGridLayout> //网格布局 #include <QPushButton> //按钮控件 #include <QDial> //表盘控件 #include <QSlider> //滑杆控件 #include <QLCDNumber> //lcd控件 Dialog::Dialog(QWidget *parent) : QDialog(parent) { //新建以下所示控件 QPushButton * m_quitpushbutton = new QPushButton("退出",this); QLabel * m_cenlabel = new QLabel("摄氏温度",this); QLabel * m_fahlabel = new QLabel("华氏温度",this); m_fahlabel->setAlignment(Qt::AlignCenter); QLabel * m_label = new QLabel("0",this); QSlider * m_slider = new QSlider(this); QLCDNumber * m_lcdnumber = new QLCDNumber(this); QDial * m_dial = new QDial(this); QGridLayout * layout = new QGridLayout(this); layout->setSpacing(10); //设置单元间隔 layout->setMargin(20); //设置边距 //添加quit按钮控件到layout中去,起始于(0,0),横跨三个单元格 即colspan = 3 layout->addWidget(m_quitpushbutton,0,0,1,3); //添加cen标签到layout中去,起始于(1,0),横跨两个单元格 即colspan = 2 layout->addWidget(m_cenlabel,1,0,1,2); //添加fah标签到layout中去,起始于(1,2),占一个单元,不设rowspan和colspan layout->addWidget(m_fahlabel,1,2); //添加"0"lab标签到layout中去,起始于(1,2),横跨两个单元格,即rowspan = 2 layout->addWidget(m_label,2,0,2,1); //添加滑竿到layout中去。起始于(2,1),横跨两个单元格 layout->addWidget(m_slider,2,1,2,1); //添加液晶数字到layout中去,起始于(2,2),占用一个单元格 layout->addWidget(m_lcdnumber,2,2); //添加转盘道layout中去,起始于(3,2),占用一个单元格 layout->addWidget(m_dial,3,2); //添加layout到窗口中去 this->setLayout(layout); } Dialog::~Dialog() { }

3.效果展示

4.不足

1.这里没有将slider控件和label控件的信号与槽连接起来,因为没找到相应的槽函数,故无法拖动显示值 2.表盘控件dialog和lcd液晶显示没能实现信号连接


最新回复(0)