widget.h#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QPushButton> //按钮对象头文件 class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = nullptr); ~Widget(); private: QPushButton b; //方式1 直接创建按钮 QPushButton *b1; //方式2 声明按钮指针 （这种方式不是实体） }; #endif // WIDGET_H main.cpp#include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); } widget.cpp#include "widget.h" Widget::Widget(QWidget *parent) : QWidget(parent) { b.setParent(this); //使用方式1创建的按钮可以直接操作，绑定父对象，this 当前窗口 b.setText("hello"); b1=new QPushButton(this); //使用方式2 需要将它变成实体，可以在创建实体的时候直接绑定父对象 b1->setText("close"); //通过指针方式操作 b1->move(20,20); connect(&b,&QPushButton::pressed,this,&Widget::close); /* &b 信号发生者 指针 （如果是方式2它本身就是指针，就不需要&） &QPushButton::pressed 处理信号 &发送者类名：：信号名字 this 信号接收者 &Widget::close 槽函数，信号处理 &接收的类名：：槽函数名字 */ } Widget::~Widget() { } 运行效果，点击按钮b 关闭窗口
#include <QApplication>// QT中的几种方式之一 #include <QWidget> //窗口对象 #include <QPushButton>//按钮对象 int main(int argc,char ** argv) { QApplication app(argc,argv); QWidget w; //创建窗口对象 w.setWindowTitle("这是头"); //设置窗口标题 QPushButton b; //创建按钮对象 b.setText("hello"); //给按钮设置标题 b.move(20,20); //移动按钮的位置 QPushButton b1(&w); //创建按钮对象的时候直接指定父对象 b1.setText("bi"); //给按钮设置标题 b.setParent(&w); //指定父对象 w.show(); /* 按钮需要指定到父对象 */ app.exec(); return 0; } 首先创建窗口对象，按钮是在窗口里面的所以要指定父对象，也就是窗口本身。运行效果