• QPushButton 按钮的创建与简单应用



    前言

    在QT程序中,你每添加一个控件,就必须在其开头声明相应控件的头文件。如按钮是QT中最常用的控件之一,按钮控件以英文PushButton定义,但QT的头文件声明中有一个特点,就是要在头文件前面加一个大写字母Q,其中每个单词的连接第一个字母都是大写。

    一、按钮的创建步骤

    1. 定义头文件
    #include
    
    • 1
    1. 首先你需要创建一个按钮
    QPushButton * btn1 = new QPushButton;
    
    • 1
    1. 让你设定的按钮依赖在窗口上,这里窗口参数表示依赖的窗口,即父类,由c++的学习可以知道,这里可以用this指针代替。
    btn1->setParent(this);   
    
    • 1
    1. 对按钮命名
    `btn1->setText("第一个按键");  //显示文本`
    
    • 1
    1. 移动按钮,一开始默认是在(0,0)点位,即左上角,你可以通过设置对其进行移动,移动到你自己想要的位置上。
    btn1->move(200,200);   //移动btn1按钮
    
    • 1
    1. 设置按钮的大小
    btn2->resize(100,50);    //重新制定btn2大小
    
    • 1
    1. 显示按钮
    btn1->show();
    
    • 1

    二、按钮的简单应用

    这里实现的功能为:点击设置的按钮,实现关闭窗口

    所以需要将窗口和按钮连接起来,可知连接的英文单词叫做connect
    具体使用为connect(参数1,参数2,参数3,参数4);

    参数一:信号发送者
    参数二:发送的信号(函数的地址)
    参数三:信号的接受者
    参数四:处理的槽函数

    可以知道 在这里:
    参数一为按钮,即btn1;
    参数二为点击按钮的函数,用&QPushButton::clicked表示;
    参数三为窗口,接收信号的,为this指针;
    参数四为关闭窗口的函数,俗称为槽函数,关闭的函数为&Widget::close。

    所以

    //功能: 点击“第一个按键” 实现关闭窗口
        
        connect(btn1,&QPushButton::clicked,this,&Widget::close);
    
    • 1
    • 2
    • 3

    三、完整代码

    widget.h

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include 
    
    class Widget : public QWidget
    {
        Q_OBJECT    //信号槽
    public:
        Widget(QWidget *parent = 0);
        ~Widget();
    };
    
    #endif // WIDGET_H
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    widget.cpp

    #include "widget.h"
    #include
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent)
    {
        //创建一个按键
        QPushButton *btn1=new QPushButton;
        btn1->show();
        btn1->setParent(this);  //让btn1对象依赖在Widget窗口中
        btn1->setText("第一个按键");  //显示文本
        btn1->move(200,200);   //移动btn1按钮
        //功能: 点击“第一个按键” 实现关闭窗口
        //参数一:信号发送者   参数二:发送的信号(函数的地址)   参数三:信号的接受者  参数四:处理的槽函数
        connect(btn1,&QPushButton::clicked,this,&Widget::close);
    }
    
    Widget::~Widget()
    {
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    main.cpp

    #include "widget.h"
    #include 
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);    //a应用程序对象,在QT中,应用程序对象有且仅有一个
        Widget w;  //窗口对象,Widget父类 ->QWidget
        w.show();   //窗口对象 默认不会显示 必须要调用show方法显示窗口
    
        return a.exec();  //让应用程序对象进入消息循环
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    Ubuntu查看自身版本,系统架构
    HarmonyOS鸿蒙原生应用开发设计- 图标库
    GNSS基本概念(7):Android 手机GNSS参数意义(上)
    基于嵌入式Qt 开发板蜂鸣器(BEEP)
    Shaderlab的组成部分SubShader
    ShinyProxy学习整理记录
    程序员如何选择职业赛道?
    JUC笔记(一) --- 计算机基础
    PMP考试提分必刷题
    【牛客网刷题】VL5-VL7位拆分与运算、数据处理器、求差值
  • 原文地址:https://blog.csdn.net/Dustinthewine/article/details/125950457