5.从零开始创建一个QT窗口按钮
如何创建一个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;
先包含一个按钮的头文件,再实例化这个按钮.
按钮的实例化有两种:
QPushButton MainButton_1;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窗口按钮的更多相关文章
- (7)nehe教程1 创建一个OpenGL窗口:
不要用那个nehe ndk了 误人子弟! 转自: 一个窗口,代码可真多啊 http://www.yakergong.net/nehe/ 在这个教程里,我将教你在Windows环境中创建OpenGL程序 ...
- 我的Go语言学习之旅七:创建一个GUI窗口
在上次中,刚刚学过了 弹窗效果.这里再接着学习一下怎样创建一个窗口. 还是老路子,先上代码: package main import ( "github.com/lxn/go-winapi ...
- 创建一个apk:按钮-click-文字display,测试apk;安装在真机进行调试的方法
问题引入: 怎么样在一个app做event事件?例如touch操作,滑动操作,和按键事件(back,home等) 回答1:device.touch(x,y) ---获取device对象,然后touch ...
- 从零开始创建一个 PHP 扩展
创建一个扩展的基本步骤都有哪些.示例中,我们将实现如下功能: <?phpecho say();?> 输出内容: $ php ./test.php$ hello word 在扩展中实现一个s ...
- Nehe OpenGL教程第一课-创建一个OpenGL窗口(Win32)
原文英文地址为:Creating an OpenGL Window (Win32),翻译的chm中文格式文档下载地址为:OpenGL教程电子书(chm格式)中文版,源代码在官网上也可以下载到,每 ...
- 建议收藏,从零开始创建一个Activiti工作流,手把手教你完成
环境配置 项目环境: JDK1.8 tomcat7 maven3.5 开发工具: IDEA activiti7 创建项目 目标:创建一个maven项目,集成Activiti,并自动生成25张数据库表 ...
- [STM32F10x] 从零开始创建一个基于标准库的工程
硬件:STM32F103C8T6 平台:MDK-AMR V4.70 1.创建一个Keil uVision 的工程 要点:相同类型的源文件放在一起以便于管理 2.添加标准库源文件 3.添加几 ...
- 创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
这个手册描述了使用Qt Quick面访的方式在Android和ios设备上开发QtQuick应用程序的方法.我们使用Qt Creator实现一个QtQuick应用程序,这个应用程序基于加速器的值 ...
- 创建一个OpenGL窗口
在上节课Windows10+VS2017 用GLFW+GLAD 搭建OpenGL开发环境 中,我们搭建好了OpenGL开发环境.这节课编写代码去测试开发环境. 还是用上节课创建的OpenGL项目,右击 ...
随机推荐
- 谈谈 rm -rf * 后的几点体会(年轻人得讲码德)
事情始末 平时经常开玩笑,删库跑路.删库跑路,今天我真的rm -rf *了.早上来,一个同事说要查日志,但是日志我又备份到云磁盘了,我就想着把那一天的日志wget下来看看,然后分析.本来是想放在/va ...
- 第15.34节 PyQt(Python+Qt)入门学习:containers容器类部件QStackedWidget堆叠窗口部件详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 StackedWidget堆叠窗口部件为一系列窗口部件的堆叠,对应类为QStackedWi ...
- Python匹配对象的groups、groupdict和group之间的关系
匹配对象的groups()方法返回一个包含所有参与匹配的子组(不含组0)的匹配到的搜索文本子串的元组,groupdict返回一个包含所有匹配到的命名组的组名为键值和命名组匹配到的搜索文本子串为值作为元 ...
- PyQt(Python+Qt)学习随笔:QTableView的标题表头相关属性
老猿Python博文目录 老猿Python博客地址 一.概述 在Qt Designer中,对于表视图QTableView,在属性在下面有专门一栏列出了跟标题相关的属性,如图: 这些属性并不是QTabl ...
- RedHat操作指令第2篇
六.RPM包管理命令 主要功能 查询RPM软件.包文件的相关信息 安装.升级.卸载RPM软件包 维护RPM数据库信息 查询RPM软件信息 查询已安装的RPM软件信息 格式:rpm -q[子选项] [软 ...
- hugegraph 数据存取数据解析
hugegraph 是百度开源的图数据库,支持hbase,mysql,rocksdb等作为存储后端.本文以EDGE 存储,hbase为存储后端,来探索是如何hugegraph是如何存取数据的. 存数据 ...
- vue props默认值国际化报错
未做国际化处理 tabLabel: { type: Array, default: () => (["a", "b", "c"]) } ...
- H5相关知识点整理
01-HTML5基础 了解HTML5 ☞HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体!!! 例如: video 标签和 audio 及 canvas ...
- element ui中循环出来的表格勾选问题
需求是这样的,一个房主屋里面有多个电表,每一个表是一个账户,一次只能给一个账户缴费,在点击go按钮进行缴费,这个时候判断是否跨表勾选,跨表格勾选则弹窗提示,反之符合需求,走缴费逻辑 上代码 <! ...
- 返回sourceString 中出现的第一个 searchString 的索引
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...