zoukankan      html  css  js  c++  java
  • Qt


    https://www.bilibili.com/video/BV1g4411H78N?p=6


    添加按钮 QPushButton

    添加控件到窗口,需要添加内容到 mywidget.cpp

    #include "mywidget.h"
    #include <QPushButton> //按钮控件的头文件
    #include "mypushbutton.h"
    #include <QDebug>
    // 命名规范
    // 类名 首字母大写,单词和单词之间首字母大写
    // 函数名 变量名称 首字母小写,单词和单词之间首字母大写
     
    
    myWidget::myWidget(QWidget *parent)
        : QWidget(parent)
    {
        //创建一个按钮
        QPushButton * btn = new QPushButton;
        //btn->show(); //show以顶层方式弹出窗口控件
        //让btn对象 依赖在 myWidget窗口中
        btn->setParent(this);
    
        //显示文本
        btn->setText("第一个按钮");
     
        //创建第二个按钮 按照控件的大小创建窗口
        QPushButton * btn2 = new QPushButton("第二个按钮",this);
        
        //移动btn2按钮
        btn2->move(100,100);
        
        //按钮可不可以 重新制定大小 可以!
        btn2->resize(50,50);
        
        //重置窗口大小
        resize(600,400);
        
        //设置固定窗口大小
        setFixedSize(600,400);
        
        //设置窗口标题
        setWindowTitle("第一个窗口");
      
        //创建一个自己的按钮对象
        MyPushButton * myBtn = new MyPushButton;
        myBtn->setText("我自己的按钮");
        
        myBtn->move(200,0);
        myBtn->setParent(this); //设置到对象树中
     
        //需求  点击我的按钮 关闭窗口
        //参数1  信号的发送者 参数2  发送的信号(函数的地址) 参数3  信号的接受者 参数4  处理的槽函数
        //connect( myBtn, &MyPushButton::clicked, this, &myWidget::close  );
        connect( myBtn, &QPushButton::clicked, this, &QWidget::close  );
    }
    
    myWidget::~myWidget()
    {
        qDebug() << "myWidget的析构调用";
    }
     
    

    按钮控件常用API

    • 创建 QPushButton * btn = new QPushButton

    • 设置父亲 setParent(this)

    • 设置文本 setText("文字")

    • 设置位置 move(宽,高)

    • 重新指定窗口大小 resize

    • 设置窗口标题 setWindowTitle

    • 设置窗口固定大小 setFixedSize


    自定义控件

    想自定义按钮继承自QPushButton

    选项中 没有这个类,可以选择它的父类 QWidget,然后修改文件。

    #ifndef MYPUSHBUTTON_H
    #define MYPUSHBUTTON_H
    
    #include <QPushButton>
    
    class MyPushButton : public QPushButton
    {
        Q_OBJECT
    public:
        explicit MyPushButton(QWidget *parent = 0);
    
        ~MyPushButton();  // 申明析构函数
    
    signals:
    
    public slots:
    };
    
    #endif // MYPUSHBUTTON_H
    
    #include "mypushbutton.h"
    #include <QDebug>
    
    MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
    {
        qDebug() << "我的按钮类 构造调用";
    }
    
    MyPushButton::~MyPushButton()
    {
        qDebug() << "我的按钮类 析构";
    }
    

    对象树

    当创建的对象在堆区时候,如果指定的父亲是QObject派生下来的类或者QObject子类派生下来的类,可以不用管理释放的操作,将对象会放入到对象树中。

    这种机制 这一定程度上简化了内存回收机制。


    坐标系

    • (0,0) 在左上角。
    • x以右为正方向
    • y以下为正方向

  • 相关阅读:
    JavaScript之Math和date
    JavaScript之ES5和String
    JavaScript之数组
    JavaScript之 函数
    JavaScript之循环语句
    movies.js
    Js内存存放机制
    Web框架
    css中那些属性是可以继承的?
    赋值运算
  • 原文地址:https://www.cnblogs.com/fldev/p/14370647.html
Copyright © 2011-2022 走看看