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;
先包含一个按钮的头文件,再实例化这个按钮.按钮的实例化有两种: 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#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#includeclass 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"#includeint main(int argc, char *argv[]){ QApplication a(argc, argv); MainWidget w; w.show(); return a.exec();}
转载地址:https://www.cnblogs.com/cnleika/p/10536551.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月05日 06时34分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C#读写INI文件
2019-04-27
写一个通用数据访问组件
2019-04-27
理解C#中的string类型
2019-04-27
ASP.NET中使用多个runat=server form
2019-04-27
C#利用钩子控制鼠标【月儿原创】
2019-04-27
asp.net千奇百怪的日历【月儿原创】
2019-04-27
asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】
2019-04-27
asp.net2.0导出pdf文件完美解决方案【月儿原创】
2019-04-27
asp.net的Ajax学习进阶
2019-04-27
ADO.NET 2.0中的SqlCommand.ExecutePageReader
2019-04-27
2.0中获取数据库连接统计数据
2019-04-27
CSS滤镜详解
2019-04-27
HTA的简单应用
2019-04-27
C#的6种常用集合类大比拼【月儿原创】
2019-04-27
ASP.NET里的事务处理
2019-04-27
xml操作类(转载)
2019-04-27
用C#操纵IIS(代码)
2019-04-27
SQL注入
2019-04-27
在SQL Server中保存和输出任意类型的文件
2019-04-27
ASP.NET 配置节架构
2019-04-27