Qt学习基础使用示例

学习Qt最主要的需求就是,可以实现一个界面,其中包含比较丰富的组件(如按钮、编辑框、滑动条等等),然后就是相应的组件能够实现所需的功能(如点击按钮可以弹出一个对话框,或者可以保存结果等等),目前呢,这对这些基本而且刚性的需求我将接下来的学习过程分为3个部分:

1、会用命令语句创建组件;

2、会用信号和槽机制实现对组件的响应;

3、关于文件方面的功能拓展;

* 然后就是对组建的扩充,使用QT Designer实现更多的功能了。

(针对上面3点内容,我抛砖引玉的进行基本的程序操作,希望对大家有帮助:)



1、创建基本的组件:

          头文件:Myclasstext.h

#ifndef _MYCLASSTEST_H_
#define  _MYCLASSTEST_H_

#include <QtWidgets/QApplication>

#include <QtWidgets/QLabel>//标签类
#include <QtWidgets/QPushButton>//按钮类
#include <QtWidgets/QTextEdit>//文本编辑框
#include <QtWidgets/QVBoxLayout>//垂直排列
#include <QtWidgets/QGridLayout>//网格布局类

/************************************************************************//*
  功能:类MyclassT的主要功能就是建立一个窗口,
	其中包括一个标签,一个可编辑框,以及三个
	按钮。并且所有组件按照网格形式来布局。     */                                                        
/************************************************************************/

class MyclassT : public QWidget
{
public:
	MyclassT();

private:
	    QLabel               *label ;
		QTextEdit           *text  ;
		QPushButton *button1;
		QPushButton *button2;
		QPushButton *button3;
};

#endif

         Myclasstext.cpp

#include "Myclasstext.h"

MyclassT::MyclassT()
{
	//初始化基本的组件
	label  = new QLabel("Name");
	text   = new QTextEdit;
	button1 = new QPushButton("Button1");
	button2 = new QPushButton("Button2");
	button3 = new QPushButton("Button3");
	QVBoxLayout *layout    = new QVBoxLayout;	

	text->setReadOnly(false);//设置text为非只可读
	button1->setEnabled(true);//按钮可以点击
	button2->setEnabled(false);//
	button3->hide();//隐藏按钮
	layout->addWidget(button1);
	layout->addWidget(button2);
	layout->addWidget(button3);
	layout->addStretch();	//

	QGridLayout *mainLayout = new QGridLayout;
	mainLayout->addWidget(label,0,0,Qt::AlignTop);//将标签置顶
	mainLayout->addWidget(text,0,1);	
	mainLayout->addLayout(layout,0,2);
	setLayout(mainLayout);	
	setWindowTitle(tr("MY TEST CLASS"));//改变主题

	/*QWidget *window1 = new QWidget;
	window1->setLayout(mainLayout);
	window1->show();*/
}


main函数

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	
	MyclassT *classTest = new MyclassT;
	classTest->show();
	
	return a.exec();
}

得到结果如图:


2.这一步主要就是实现如何响应操作;

connect(addbutton,SIGNAL(clicked()),button,SLOT(addContact()));

上面就是一个基本的链接函数,即对于addbutton,他发出clicked()信号,button作出响应addContact()。大体思想都是基于此,详细的解释可以参看其他的文档。

这里为了响应,设计如下:当点击上图中Button1是弹出一个对话框,这就实现了一个对基本的响应过程。

新建一个类Dialogclasstest:

头文件Dialogclasstest.h

#ifndef _DIALOGCLASSTEST_H_
#define _DIALOGCLASSTEST_H_

#include <QtWidgets/QApplication>
#include <QDialog>
#include <QtWidgets/QPushButton>

class DialogclassT:public QDialog
{
public:
	DialogclassT();

private:
	QPushButton *button;
};
#endif

Dialogclasstest.cpp

#include "Dialogclasstest.h"

DialogclassT::DialogclassT()
{
	button = new QPushButton("DIA BUTTON");
	button->resize(200,60);
	button->show();
}

这时对于Myclasstext.h的修改如下:

class MyclassT : public QWidget
{
	Q_OBJECT
public:
	MyclassT();

	public slots:
		void buttonClick();

private:
	    QLabel               *label ;
		……
};
这时对于Myclasstext.cpp的修改如下:
MyclassT::MyclassT()
{
	……

	connect(button1,SIGNAL(clicked()),this,SLOT(buttonClick()));
	
}

void MyclassT::buttonClick()
{
	DialogclassT * Dial = new DialogclassT;
}
得到的结果为:

到这里基本的Qt可以实现了,剩下的文件实现明天再弄吧。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为了使更多的Qt初学者能尽快入门Qt,也为了QtQt Creator的快速普及,我们花费大量精力写出了这一系列教程。虽然教程的知识可能很浅显,虽然教程的语言可能不规范,但是它却被数十万网友所认可。我们会将这一系列教程一直写下去,它将涉及Qt的方方面面 一、Qt Creator的安装和hello world程序的编写 二、Qt Creator编写多窗口程序 三、Qt Creator登录对话框 四、Qt Creator添加菜单图标 五、Qt Creator布局管理器的使用 六、Qt Creator实现文本编辑 七、Qt Creator实现文本查找 八、Qt Creator实现状态栏显示 九、Qt Creator中鼠标键盘事件的处理实现自定义鼠标指针 十、Qt Creator中实现定时器和产生随机数 十一、Qt 2D绘图(一)绘制简单图形 十二、Qt 2D绘图(二)渐变填充 十三、Qt 2D绘图(三)绘制文字 十四、Qt 2D绘图(四)绘制路径 十五、Qt 2D绘图(五)显示图片 十六、Qt 2D绘图(六)坐标系统 十七、Qt 2D绘图(七)Qt坐标系统深入 十八、Qt 2D绘图(八)涂鸦板 十九、Qt 2D绘图(九)双缓冲绘图简介 二十、Qt 2D绘图(十)图形视图框架简介 二十一、Qt数据库(一)简介 二十二、Qt数据库(二)添加MySQL数据库驱动插件 二十三、Qt数据库(三)利用QSqlQuery类执行SQL语句(一) 二十四、Qt数据库(四)利用QSqlQuery类执行SQL语句(二) 二十五、Qt数据库(五)QSqlQueryModel 二十六、Qt数据库(六)QSqlTableModel 二十七、Qt数据库(七)QSqlRelationalTableModel 二十八、Qt数据库(八)XML(一) 二十九、Qt数据库(九)XML(二) 三十、Qt数据库(十)XML(三) 三十一、Qt 4.7.0及Qt Creator 2.0 beta版安装全程图解 三十二、第一个Qt Quick程序(QML程序) 三十三、体验QML演示程序 三十四、Qt Quick Designer介绍 三十五、QML组件 三十六、QML项目之Image和BorderImage 三十七、Flipable、Flickable和状态与动画 三十八、QML视图 三十九、QtDeclarative模块 四十、使用Nokia Qt SDK开发Symbian和Maemo终端软件 四十一、Qt网络(一)简介 四十二、Qt网络(二)HTTP编程 四十三、Qt网络(三)FTP(一) 四十四、Qt网络(四)FTP(二) 四十五、Qt网络(五)获取本机网络信息 四十六、Qt网络(六)UDP 四十七、Qt网络(七)TCP(一) 四十八、Qt网络(八)TCP(二)
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值