5.从零开始创建一个QT窗口按钮
发布日期:2022-03-30 18:18:22 浏览次数:41 分类:博客文章

本文共 3030 字,大约阅读时间需要 10 分钟。

如何创建一个QT项目

  • 如何创建一个QT项目
    • 1.创建新项目
    • 2.配置选择
    • 3.增加按钮
    • 4.按钮和窗体的大小标签图标设置
    • 5.信号与槽
    • 6.自定义信号与槽
  • 代码

1.创建新项目

点击文件->新建项目->

Application->Qt Widgets Application->
choose.

2.配置选择

名称->路径->

Kit Selection->MinGW->
类名->基类:QWidget->不创建界面->
项目管理.

3.增加按钮

#ifndef MAINWIDGET_H#define MAINWIDGET_H#include 
#include
class MainWidget : public QWidget{ Q_OBJECTpublic: explicit MainWidget(QWidget *parent = nullptr);private: QPushButton *MainButton_1;signals:public slots:};#endif // MAINWIDGET_H

#include <QPushButton>

QPushButton *MainButton_1;
先包含一个按钮的头文件,再实例化这个按钮.
按钮的实例化有两种:

  1. QPushButton MainButton_1;
  2. QPushButton *MainButton_1;
    MainButton_1 =new QPushButton("按钮名",父类);

一种为直接实例化,另一种先实例化一个指针,再对该指针分配内存空间.

按钮一定要设置父类,否则无法显示,推荐父类设置this.

4.按钮和窗体的大小标签图标设置

MainButton_1->resize(1000,500);//重新设置尺寸this->setFixedHeight(500);//设置高度不可更改this->setFixedWidth(500);//设置宽度不可更改this->setFixedSize(500,500);//设置高和宽不可更改this->setWindowTitle("B2Button");//设置窗口标题this->setWindowIcon(QIcon("C:\\Users\\17655\\OneDrive\\图片\\鬼刀\\50.jpg"));//设置图标

5.信号与槽

signals://信号位public slots://槽位

先实现一个简单的功能:

connect(MainButton_1,&QPushButton::clicked,this,&MainWidget::close);

connect(信号发出者,信号名字,信号接收者,接收处理);

函数的效果为点击按钮时关闭窗口.

6.自定义信号与槽

首先我们先在发送端的头文件signals:下定义一个信号

void Send_Open(void);

信号只需声名不需要定义!

然后我们再定义一个函数用于发送信号,emit.

void MainWidget::sub_Send(void){    emit Send_Open();}

接下来再定义一个槽函数,位于接收端头文件的

public slots:

void Cao_1(void);

并实现它:

void Sec_Widget::Cao_1(void){    this->show();}

最后使用connect连接:

//连接按钮1和信号的发送函数.    connect(MainButton_1,&QPushButton::clicked,this,&MainWidget::sub_Send);//连接信号与槽函数    connect(this,&MainWidget::Send_Open,&w2,&Sec_Widget::Cao_1);    //当槽函数触发时,打开二号窗口

代码

MainWidget.h

#ifndef MAINWIDGET_H#define MAINWIDGET_H#include 
#include
#include "sec_widget.h"class MainWidget : public QWidget{ Q_OBJECTpublic: explicit MainWidget(QWidget *parent = nullptr); void sub_Send(void);private: QPushButton *MainButton_1; Sec_Widget w2;signals: void Send_Open(void);public slots:};#endif // MAINWIDGET_H

MainWidget.cpp

#include "mainwidget.h"MainWidget::MainWidget(QWidget *parent) : QWidget(parent){    MainButton_1=new QPushButton("MainButton_1",this);    setFixedSize(500,500);    setWindowTitle("MainWindow");    MainButton_1->setFixedSize(200,100);    connect(MainButton_1,&QPushButton::clicked,this,&MainWidget::sub_Send);    connect(this,&MainWidget::Send_Open,&w2,&Sec_Widget::Cao_1);}void MainWidget::sub_Send(void){    emit Send_Open();}

Sec_Widget.h

#ifndef SEC_WIDGET_H#define SEC_WIDGET_H#include 
class Sec_Widget : public QWidget{ Q_OBJECTpublic: explicit Sec_Widget(QWidget *parent = nullptr);signals:public slots: void Cao_1(void);};#endif // SEC_WIDGET_H

Sec_Widget.cpp

#include "sec_widget.h"Sec_Widget::Sec_Widget(QWidget *parent) : QWidget(parent){    //构造函数}void Sec_Widget::Cao_1(void){    this->show();}

main.cpp

#include "mainwidget.h"#include 
int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWidget w; w.show(); return a.exec();}

转载地址:https://www.cnblogs.com/cnleika/p/10536551.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:3.窗口的大小标题图标设置
下一篇:4.标准信号与槽

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月05日 06时34分25秒