按钮控件
//头文件
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <qpushbutton.h>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
private:
QPushButton b1;
QPushButton * b2;
};
#endif // MYWIDGET_H
//CPP文件
#include "mywidget.h"
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
//初始化
//创建按钮需要依附于父类MyWidget,所以添加this
//b2创建的是指针类型,所以需要先创建个对象将地址放进去,调用方法用指针的->
//Qt自带内存回收机制,不用释放b2,适用于QOBJECT直接/间接派生类
b2=new QPushButton("b2",this);
//父窗口显示的时候,子窗口也会显示
//b2->show();
//b1创建的是QPushButton类对象,所以直接用.调用
b1.setText("b1");
b1.setParent(this);
//坐标
b1.move(100,100);
}
MyWidget::~MyWidget()
{
}
如何创造一个按钮?
- 实例化按钮对象
QPushButton
- 调用相应的方法
在程序里面讲授了两种方法:
直接创建对象
QPushButton b1;
b1.setText("b1");
b1.setParent(this);
b1.move(100,100);
b1.setParent(this);
这个函数作用是设置这个对象的父类为顶部窗口,将按钮依附.b1.move(100,100);
这个方法作用是移动按钮位置.
创建相应的指针,分配内存.
b2=new QPushButton("b2",this);
Qt自带内存回收机制,不用释放b2,适用于QOBJECT直接/间接派生类
内存回收机制
自动回收
- 从
QOBJECT
直接/间接派生的类. - 指定父类,父类析构的时候,先析构子类.
从零开始创建带按钮的界面
首先新建个Class,基类选择QWidget
,创建后出现一个.h文件一个.cpp文件.
将.h包含进main文件中.
在.h文件中加入代码:
#include <QPushButton>
在Class中定义一个private权限的QPushButton
对象.
QPushButton b1;
在构造函数中调用各种方法.
b1.setText("Button1");//文本显示
b1.setParent(this);//父类设置
b1.move(100,100);//移动
在main()函数中调用:
MyWidget w;
w.show();