qtday02 qt做简单的加法器和模拟登陆功能

//在3t2目录下

//adder.h

/*

qt简单加法计算器

*/

#ifndef ADDER_H

#define ADDER_H

#include<QDialog>

#include<QLineEdit>

#include<QtWidgets/QPushButton>

#include<QtWidgets/QLabel>

class Adder:public QDialog{

Q_OBJECT//让自定义的槽函数生效

private:

QLineEdit * add1;

QLabel * oper;

QLineEdit *add2;

QPushButton * equ;

QLineEdit * res;

QPushButton * bclose;

public:

Adder();

~Adder();

/*自定义槽函数*/

public slots:

void getres();

};

#endif

//adder.cpp

#include "adder.h"

/*#include<QDialog>

#include<QLineEdit>

#include<QtWidgets/QPushButton>

#include<QtWidgets/QLabel>

*/

Adder::Adder(){

this->resize(400,300);

add1=new QLineEdit(this);

add1->resize(80,20);

add1->move(0,20);

oper=new QLabel("+",this);

oper->resize(20,20);

oper->move(80,20);

add2=new QLineEdit(this);

add2->resize(80,20);

add2->move(100,20);

equ=new QPushButton("=",this);

equ->resize(20,20);

equ->move(180,20);

res=new QLineEdit(this);

res->resize(80,20);

res->move(200,20);

bclose=new QPushButton("close",this);

bclose->resize(80,20);

bclose->move(160,160);

connect(bclose,SIGNAL(clicked()),this,SLOT(close()));

connect(equ,SIGNAL(clicked()),this,SLOT(getres()));

}

Adder::~Adder(){

delete add1;

delete oper;

delete add2;

delete equ;

delete res;

delete bclose;

}

void Adder::getres(){

int c=add1->text().toInt()+add2->text().toInt();

/*

QString qa=add1->text();

QString qb=add2->text();

int a=qa.toInt();

int b=qb.toInt();

int c=a+b;

*/

res->setText(QString::number(c));

}

//qq.h

/*模拟qq登陆*/

#ifndef QQ_H

#define QQ_H

#include<QDialog>

#include<QLineEdit>

#include<QtWidgets/QPushButton>

#include<QtWidgets/QLabel>

class QQ:public QDialog

{

Q_OBJECT

private:

QLineEdit * username;

QLineEdit* userpwd;

QPushButton * login;

QPushButton* cancel;

public:

QQ();

~QQ();

/*函数,登陆和退出*/

public slots:

void loginAndcancel();

};

#endif

//qq.cpp

#include "qq.h"

QQ::QQ()

{

this->resize(400,300);

username=new QLineEdit(this);

username->resize(80,20);

username->move(60,20);

userpwd=new QLineEdit(this);

userpwd->resize(80,20);

userpwd->move(60,50);

userpwd->setEchoMode(QLineEdit::Password);

login=new QPushButton("login",this);

login->resize(60,20);

login->move(20,80);

cancel=new QPushButton("cancel",this);

cancel->resize(60,20);

cancel->move(100,80);

connect(login,SIGNAL(clicked()),this,SLOT(loginAndcancel()));

connect(cancel,SIGNAL(clicked()),this,SLOT(loginAndcancel()));

}

QQ::~QQ()

{

delete username;

delete userpwd;

delete login;

delete cancel;

}

#include<QMessageBox>

void QQ::loginAndcancel()

{

/**/

QPushButton *b=(QPushButton*)sender();

if(b->text()=="login"){

if(username->text()=="admin"&& userpwd->text()=="123"){

qDebug("login success!");

}

else{

qDebug("login failed");

}

}

else if(b->text()=="cancel"){

QMessageBox msg;//退出时提示

msg.setText("要退出吗?");

msg.setStandardButtons(QMessageBox::Yes|QMessageBox::No);

if(msg.exec()==QMessageBox::Yes){

this->close();

}

}

}

//gettime.h

/*界面显示获取的当前时间 */

#ifndef GETTIME_H

#define GETTIME_H

#include<QDialog>

#include<QLineEdit>

#include<QtWidgets/QPushButton>

#include<QtWidgets/QLabel>

class GetTime:public QDialog{

Q_OBJECT

private:

QLabel *res;

QPushButton *gettime;

public:

GetTime();

~GetTime();

public slots:

void settime();

//方案2,信号连接

public:signals:

void ssettime(QString par);

};

#endif

//gettime.cpp

#include "gettime.h"

GetTime::GetTime()

{

this->resize(400,300);

res=new QLabel("Cur Time",this);

gettime=new QPushButton("gettime",this);

gettime->move(0,50);

connect(gettime,SIGNAL(clicked()),this,SLOT(settime()));

connect(this,SIGNAL(ssettime(QString)),res,SLOT(setText(QString)));

//connect(this);

}

GetTime::~GetTime()

{

delete res;

delete gettime;

}

#include<QTime>

/*

#include<time.h>

#include<stdio.h>

*/

void GetTime::settime(){

/*

struct tm *tm1=localtime(time(0));

char buf[200];

sprintf(buf,"%4d-%2d-%2d %2d:%2d:%2d",tm1->tm_year+1700,

tm1->tm_mon+1,tm1->tm_mday,

tm1->tm_hour,tm1->tm_min,tm1->tm_sec);

res->setText(buf);

*/

/*

//1 直接调用res槽函数,设置值

res->setText(QTime::currentTime().toString("HH:mm:ss"));

*/

/*方案2,发送带参数的信号,再由信号参数去触发res的槽函数 emit */

emit ssettime(QTime::currentTime().toString("HH:mm:ss"));

}

//main.cpp

/*测试上面三个功能 */

/*

qt做简单的加法计算器

*/

#include<QApplication>

#include "adder.h"

#include "qq.h"

#include "gettime.h"

int main(int argc,char * argv[])

{

QApplication app(argc,argv);

/*简单加法器

Adder add1;

add1.show();

*/

/*qq登陆框

QQ qq;

qq.show();

*/

/**/

GetTime t;

t.show();

//qDebug("output");//在控制台上输出信息

app.exec();

}

qtday02 qt做简单的加法器和模拟登陆功能,布布扣,bubuko.com

时间: 2024-10-10 00:24:20

qtday02 qt做简单的加法器和模拟登陆功能的相关文章

java模拟登陆功能

package test; import java.util.Scanner; public class Login { static Scanner sc=new Scanner(System.in); public static void login(){ boolean flag=true; for(int i=1;i<=3;i++){ System.out.println("你还有"+(4-i)+"次输入机会"); System.out.println

如何模拟登陆添加了CSRF保护的网站

上次写了篇文章,内容是如何利用WebClient模拟登陆CSRF控制的网站,回复中有人还是不理解,现在另开一篇,打算说说用Python如何来登陆. 开写之前,先说下为什么webrequest不行,常规情况下,我们在利用webrequest的时候,都是如下的形式: 1 string url = "loginurl"; 2 StringBuilder sb = new StringBuilder(); 3 sb.Append("username=un"); 4 sb.A

用H5+Boostrap做简单的音乐播放器

用H5+Boostrap做简单的音乐播放器 前言:这个是综合一下我最近在学的东西做的小Demo,到实际使用还有距离,但是用来练手巩固知识点还是不错的,最近在二刷JS书和Boostrap.css的源码,做完这个Demo也算是暂告一段落,接下来是jQuery的源码和Boostrap.js的源码,任务很艰巨呢,加油~在此就不整篇的贴代码了,如果感兴趣的小伙伴可以发消息给我,可以把代码传给你们~ 正文: 先上效果图 1.布局:Boostrap里的响应式和自适应布局是自然跑不掉的,container中嵌套

用angularjs做简单的tab切换

用angularjs做简单的tab切换: 页面部分 <div> <div id="tabs" ng-controller="TabsCtrl"> <ul> <li ng-repeat="tab in tabs" ng-class="{active:isActiveTab(tab.url)}" ng-click="onClickTab(tab)">{{tab.t

jQuery实现的简单文字提示效果模拟title(转)

来源 http://www.cnblogs.com/puzi0315/archive/2012/10/17/2727693.html 模拟title实现效果,可以修改文字的样式,换行等. 文件下载: 先看下效果截图: 代码分析: <!-- 引用jQuery --> <script src="jquery.js" type="text/javascript"></script> <style type="text/c

模拟登陆CSDN——就是这么简单

工具介绍 本篇文章主要是讲解如何模拟登陆CSDN,使用的工具是HttpClient+Jsoup 其中HttpClient主要是负责发送请求,而Jsoup主要是解析HTML 你可能对HttpClient的API不太了解,不过没关系,往下看就好了~ Jsoup的语法类似jQuery的选择器,相信有一定web基础的人都可以很快的掌握 其中select(String selector)就是最强大的选择器,另外还提供一系列的细化的方法,比如: getElementById(String id), getE

做简单直接的事情

回顾自己工作四年多的时间,很多时候都是在一个等待的状态,真的没有好好去认真的认识一下我们周围的世界,没有好好了解做人做事的方法和套路.从编程的角度来看,世间万物皆对象,那么更加抽象一层的概念就是万物发展皆套路,而身处局中的我们也是如此,"简单直接"的使用套路远胜过浑浑噩噩的等待和迷茫. 这里所说的套路是什么呢,并不是指一些投机取巧的方法,正好相反,使用这些套路之前,我们要了解我们周围的社会环境是如何运作的,就像在选择一种框架和语言时,我们需要知道软件的运用场景是怎样的,如果只是套用所谓

【简单思考】noip模拟赛 NTR酋长

NTR酋长 (ntr.pas/.c/.cpp) 黄巨大终于如愿以偿的进入了czy的后宫中……但是czy很生气……他要在黄巨大走到他面前的必经之路上放上几个NTR酋长来阻挡黄巨大. 众所周知,NTR酋长有一个技能是沟壑(F).它会在地图上产生一条长长的障碍物阻挡人前进.Czy打算在一个n*m的矩形(必经之路?)中放上NTR酋长.NTR酋长要一个一个放下去,而且每放一个都会向四角倾斜的方向放出无限长的沟壑,而已经被沟壑挡住的地方就不能再放NTR酋长了. 请注意:不会出现沟壑的路径挡住另一个沟壑的情况

Qt编程16:Qt向导简单使用(QWizard及QWizardPage)

关于Qt向导的使用,在Qt4.8.1以及4Q5.2.1中存在一个简单的例子,实现方式与我的方式有所不同. 在原有的例子中,使用了三个方法,分别定义了三个向导页:然后在main函数中将三个向导页通过addPage的方法加入向导. 如此比较简单实现,但是我觉得不够灵活.最后是将三个向导页分别继承QWizardPage,因为会涉及到每个向导页的一些操作.在这里也是基础. mywizard.h #ifndef MYWIZARD_H #define MYWIZARD_H #include <QWizard