QT:使用普通按钮、网格布局管理器、标签、行编辑器、水平布局管理器、垂直布局管理器做一个小项目

widget.h

cpp 复制代码
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>  //普通按钮
#include <QGridLayout>  //网格布局管理器
#include <QLabel>       //标签
#include <QLineEdit>    //行编辑器
#include <QHBoxLayout>  //水平布局管理器
#include <QVBoxLayout>  //垂直布局管理器

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
public slots:   //槽函数
    void pb_array_handler();
private:
   QPushButton *pb[10];   //10个按钮
   QLabel *lb;            //标签
   QLineEdit *le;         //行编辑器
};

#endif // WIDGET_H

widget.cpp

cpp 复制代码
#include "widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    setFixedSize(430,320);

    QGridLayout *grd = new QGridLayout();    //创建网格布局管理器
    for(int i = 0;i < 10;i++)   //设置10个按钮
    {
        pb[i] = new QPushButton(this);    //创建按钮
        pb[i]->setText(QString::number(i));     //按钮名字
        grd->addWidget(pb[i],i/5,i%5,1,1);      //第一个参数为设置的对象指针,所在起始行数,所在起始列数,所占行数,所占列数
        connect(pb[i],&QPushButton::clicked,this,&Widget::pb_array_handler);    //关联槽函数
    }
    lb = new QLabel("用户点击了什么按钮?",this);     //创建标签

    le = new QLineEdit(this);   //创建行编辑器
    le->setReadOnly(true);      //设置只读

    QHBoxLayout *hbox = new QHBoxLayout();    //创建水平布局管理器
    hbox->addWidget(lb);
    hbox->addWidget(le);

    QVBoxLayout *vbox = new QVBoxLayout();    //创建垂直布局管理器
    vbox->addLayout(grd);
    vbox->addLayout(hbox);

    setLayout(vbox);   //设置总布局
}
void Widget::pb_array_handler()  //槽函数
{
    QPushButton *button = static_cast<QPushButton *>(sender());  //append需要转换类型
    QString tmp = le->text();
    tmp.append(button->text());    //相加
    le->setText(tmp);
}

Widget::~Widget()
{

}

结果

相关推荐
机器视觉知识推荐、就业指导5 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan5 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
小灰灰搞电子5 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
QT界面美化性能优化5 小时前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
m0_695251495 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
山峰哥11 小时前
数据库工程与查询优化案例深度复盘‌
数据库·sql·oracle·编辑器·深度优先·宽度优先
小小龙学IT12 小时前
Qt 元对象系统(Meta-Object System)深度解析:从 MOC 到反射式编程
数据库·qt
小王C语言14 小时前
QT 基础:QT SDK 下载、配置、新建项目、项目代码解释
开发语言·qt
张人玉18 小时前
基于 Python + PyQt5 的水果目标检测与分割可视化系统——水果深度学习识别可视化大屏
python·深度学习·qt·目标检测·sqlite·echarts
javgo.cn19 小时前
Markweave:开源 Markdown-first WYSIWYG 编辑器
开源·编辑器