如何创建一个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 <QWidget>
#include <QPushButton>
class MainWidget : public QWidget
{
Q_OBJECT
public:
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 <QWidget>
#include <QPushButton>
#include "sec_widget.h"
class MainWidget : public QWidget
{
Q_OBJECT
public:
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 <QWidget>
class Sec_Widget : public QWidget
{
Q_OBJECT
public:
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 <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWidget w;
w.show();
return a.exec();
}

5.从零开始创建一个QT窗口按钮的更多相关文章

  1. (7)nehe教程1 创建一个OpenGL窗口:

    不要用那个nehe ndk了 误人子弟! 转自: 一个窗口,代码可真多啊 http://www.yakergong.net/nehe/ 在这个教程里,我将教你在Windows环境中创建OpenGL程序 ...

  2. 我的Go语言学习之旅七:创建一个GUI窗口

    在上次中,刚刚学过了  弹窗效果.这里再接着学习一下怎样创建一个窗口. 还是老路子,先上代码: package main import ( "github.com/lxn/go-winapi ...

  3. 创建一个apk:按钮-click-文字display,测试apk;安装在真机进行调试的方法

    问题引入: 怎么样在一个app做event事件?例如touch操作,滑动操作,和按键事件(back,home等) 回答1:device.touch(x,y) ---获取device对象,然后touch ...

  4. 从零开始创建一个 PHP 扩展

    创建一个扩展的基本步骤都有哪些.示例中,我们将实现如下功能: <?phpecho say();?> 输出内容: $ php ./test.php$ hello word 在扩展中实现一个s ...

  5. Nehe OpenGL教程第一课-创建一个OpenGL窗口(Win32)

       原文英文地址为:Creating an OpenGL Window (Win32),翻译的chm中文格式文档下载地址为:OpenGL教程电子书(chm格式)中文版,源代码在官网上也可以下载到,每 ...

  6. 建议收藏,从零开始创建一个Activiti工作流,手把手教你完成

    环境配置 项目环境: JDK1.8 tomcat7 maven3.5 开发工具: IDEA activiti7 创建项目 目标:创建一个maven项目,集成Activiti,并自动生成25张数据库表 ...

  7. [STM32F10x] 从零开始创建一个基于标准库的工程

    硬件:STM32F103C8T6 平台:MDK-AMR V4.70 1.创建一个Keil uVision 的工程 要点:相同类型的源文件放在一起以便于管理       2.添加标准库源文件 3.添加几 ...

  8. 创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)

     这个手册描述了使用Qt Quick面访的方式在Android和ios设备上开发QtQuick应用程序的方法.我们使用Qt Creator实现一个QtQuick应用程序,这个应用程序基于加速器的值 ...

  9. 创建一个OpenGL窗口

    在上节课Windows10+VS2017 用GLFW+GLAD 搭建OpenGL开发环境 中,我们搭建好了OpenGL开发环境.这节课编写代码去测试开发环境. 还是用上节课创建的OpenGL项目,右击 ...

随机推荐

  1. Centos7.2 安装docker、mysql和redis

    环境信息 Docker是什么? Docker就是一个平台,这个平台具备开发.发布和运行应用程序的功能,在项目生命周期中,我们可以运用Docker实现快速交付.测试和部署.Docker通过将运行环境打包 ...

  2. Cassandra与职业发展 | 阿里云栾小凡 &#215; 蔚来汽车张旭东 &#215; 网龙阙乃祯

    # 活动精彩实录 | Cassandra与职业发展 点击此处观看完整活动录像​ 大家好,我叫邓为,我目前在DataStax担任领航架构师.我在DataStax工作了7年多的时间,也有7年多的Cassa ...

  3. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项是否首列跨所有列展示属性isFirstColumnSpanned

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeWidget树型部件的QTreeWidgetItem项方法isFirstColumnSpa ...

  4. HDFS客户端操作(JAVA代码)

    环境准备 windows需要配置hadoop的windows下的依赖 安装包地址: 链接:https://pan.baidu.com/s/1QtbH-x-S0QytkmaoSosdEw 提取码:2kt ...

  5. vue项目中扫码枪收款

    扫码枪会将扫到的数据带入到获取焦点的输入框中,并且触发输入框的enter回车事件 1.页面上要有一个输入框,并且是获取焦点状态,当然它是隐藏的看不到,我是把宽高设置为0,然后加上回车事件.       ...

  6. 双端口RAM和多模块存储器

    目录 双端口RAM 存取周期 双端口RAM 多模块存储器 普通存储器 单体多字存储器 多体并行的存储器 高位交叉编址的多体存储器 低位交叉编址的多提存储器 为什么要这么弄? 高位 低位 流水线(考试常 ...

  7. 一、less命令查看日志

    查看日志时,一般用less满足大部分的需求. 使用命令格式: less [要查看的文件名] 例如:less LOG.20201211 中间加参数命令格式 less 参数 [要查看的文件名] 例如:查看 ...

  8. 推荐一款最强Python自动化神器!不用写一行代码!

    搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: selenium.结合标准的WebDriver API来编写Python自动化脚本,可以实现解放双手,让脚本代替人 ...

  9. [日常摸鱼]bzoj1038[ZJOI2008]瞭望塔-半平面交

    这回好好用半平面交写一次- 看了cls当年写的代码看了好久大概看懂了-cls太强辣 #include<cstdio> #include<iostream> #include&l ...

  10. 7. 丈母娘嫌我不懂K8s的Service概念,让我去面壁

    文章目录 怎么跟你说 Service的出现,就是 解决ip不固定的问题 ,怎么解决呢 ? 听小刘慢慢道来 当Pod宕机后重新生成时,其IP等状态信息可能会变动,Service会根据Pod的Label对 ...