QT

1.工具

assistant  帮助文档

qtconfig  QT配置工具

qmake     QT的make与项目文件智能创建工具

uic          UI界面的设计文件的编译工具

moc        moc代码创建工具

designer  UI设计工具

2.QT 的模块

qtcore

qtgui

qtnetwork

qtsvg

qtopengl

3.第一个QT程序

1.QT编程模型

2.QT程序编译过程

3.QT的项目组织

1.      QT是C++程序

2.      QT程序启动QT的环境QApplication

代码:

#include<QApplication>

#include<QDialog>

int main(int args , char **argv)

{

QApplicationapp(args , argv);

QDialog dlg;

dlg.setVisible(true);

return  app.exec();//等待子线程结束

}

编译:1.qmake–project

生成一个.pro的文件(项目配置文件)

2.qmake xxx.pro

生成makefile文件

3.make

4.执行

4.*pro文件

TEMPLATE=

:app 表明为应用程序

:lib 表明是库

SOURCES=

:cpp文件1 cpp文件2 cpp文件3

:\续行符号

HEADERS=

:h头文件

CONFIG=   影响gcc的选项

:release (-o)|debug(-g调试)

:warn_on | warn_off  (-Wall   -w   警告)

: qt  (表示qt应用,会自动加      qt库)  | opengl

:shared| static动态,静态库,只有TEMPLATE指定为lib才管用

QT=(该变量在config=qt才有意义)

:core

:gui

:network

:opengl

:svg

:xml

:sql

TARGET=

:输出的文件名(-o 输出文件名)

LIBS=用户指定库(用户自己的库)

FORMS=ui文件

程序2:

#include<QApplication>

#include<QWidget>

int main(int args,char **argv)

{

QApplicationapp(args,argv);

QWidget win;

win.setVisable(true);

returnapp.exec();

}

创建文件2:demo.pro

TEMPLATE=app

SOURCES=main.cpp

HEADERS=

CONFIG=qt release

QT=core gui

TARGET=main

直观认识QT

封装与帮助文档的使用

文档的组成部分:

1.      模块

2.类作用简单描述

3.头文件

4.父类与派生类

5.构造器/析构器()

6.共有函数

7.属性

例子:QPushButton

#include<QApplication>

#include<QWidget>

#include<QPushButton>

int main(int  args,char  **argv)

{

QApplication  app(args,argc);

QWidget  win;

win.resize(400,300);

win.move( (1024-400)/2,(768-300)/2);   //设置窗体的大小和位置

win.setVisible(true);

QPushButton  btn(&win);  //pushbutton的构造函数参数为父窗体的指针

btn.resize(100,30);        //设置button大小

btn.move(10,10);

btn.setText(“ok”);

btn.setVisible(true);

app.exec();

}

2.      乱码处理-上个程序的button中text,如果是中文会出现乱码

QT提供翻译机制

QTTextCodec类

例子:

#include<QApplication>

#include<QDialog>

#include<QPushButton>

#include<QTextCodec>

int main(int  args, char **argv)

{

QApplication  app(args,argv);

QTextCodec *codec=QTextCodec::codecForName(“gb2312”);

//设置应用程序的编码:gb2312  codecForName静态成员函数

QTextCodec::setCodecForTr(codec); //把设置的编码设置到环境中

QDialog dlg;

dlg.resize(400,300);

dlg.move((1024-400)/2,(768-300)/2);

QPushButton  btn(&dlg);

btn.resize(100,30);

btn.move(100,100);

btn.setText(QObject::tr(“确定”));  //在使用中文的地方翻译

btn.setVisible(true);

dlg.setVisible(true);

return  app.exec();

}

例子:QLineEditS

#include<QApplication>

#include<QDialog>

#include<QLineEdit>

int main(int args,char ** argv)

{

QApplication  app(args,argv);

QTextCodec *codec=QTextCodec::codecForName(“gb2312”);

QTextCodec::setCodecForTr(codec);

QDialog  dlg;

dlg.resize(400,300);

dlg.move((1024-400)/2 , (768-300)/2);

QLineEdit edit;

edit.resize(100,30);

edit.move(100,100);

edit.setVisible(true);

dlg.setVisible(true);

return app.exec();

}

3.代码组织

以窗体为基本单位的封装

案例:

登陆

QDialog

QPushButton

QLabel

QLineEdit

代码:

main.cpp

#include<QApplication>

#include<QTextCodec>

#include “logindlg.h”

int main(int  args,char **argv)

{

QApplication  app(args , argv);

QTextCodec *codec=QTextCodec::codecForName(“gb2312”);

QTextCodec::setCodecForTr(codec);

LoginDialog  dlg;

dlg.resize(400,300);

dlg.setVisible(true);

return app.exec();

}

logindlg.h

#ifndef LOGIN_DLG_H

#define LOGIN_DLG_H

#include<QDialog>

#include<QLabel>

#include<QLineEdit>

#include<QPushButton>

class LoginDialog : public QDialog

{

public:

LoginDialog(QWidget * parent=NULL);

private:

QLabel *lbluser;

QLabel *lblpass;

QLineEdit *edtuser;

QLineEdit *edtpass;

QPushButton *btnlogin;

QPushButton *btncancel;

};

#endif

Logindlg.cpp

#include “logindlg.h”

LoginDialog::LoginDialog(QWidget * parent):QDialog(parent)

{

lbluser=new  QLablel(this);

lblpass=new  QLabel(this);

this->resize(400,300);

this->move((1024-400)/2,(768-300)/2);

lbluser->resize(100,30);

lbluser->move(50,40);

lblpass->resize(100,30);

lblpass->move(50,100);

lbluser->setText(QObject::tr(“用户:”));

lblpass->setText(QObject::tr(“口令:”));

edtuser=new  QLineEdit(this);

edtpass=new  QLineEdit(this);

edtuser->resize(200,30);

edtuser->move(150,40);

edtpass->resize(200,30);

edtpass->move(150,100);

btnlogin = new QPushButton(this);

btncancel=new QPushButton(this);

btnlogin->resize(60,30);

btnlogin->move(90,210);

btncancel->resize(60,30);

btncancel->move(250,210);

btnlogin->setText(Qobject::tr(“登录”));

btncancel->setText(QObject::tr(“取消”));

}

3.      QT的界面设计器

designer 可视化编辑器

3.1. 工具视图:

用户设计区

工具箱

资源管理器

属性编辑器(ctrl+i)

动作编辑器

信号槽编辑器

对象察看器(选择对象)

3.2. 保存文件

*.ui

3.3.编辑属性

1.文本属性

2.对象名属性

3.字体属性

3.4. 编辑组件

->  <-方向

shift+方向  大小改变

ctrl+

shift+ctrl+

3.5.打开ui文件

ui是xml文本文件

3.6.使用ui文件

自动使用

手工使用

uic编译ui文件 : 例如:uic login.ui –o login.h

产生:c++头文件

Ui_对象名的类

Ui::对象名的类 Ui命名空间

以上两种使用对象的方法

类的构造器:没有(缺省构造器)

类的方法:setUi(QDialog *);

3.7.使用UI类型

Main.cpp

#include<QApplication>

#include “dlglogin.h”

int main(int args, char ** argv)

{

QApplication  app(args,argv);

DlgLogin dlg;

dlg.setVisible(true);

return app.exec();

}

dlglogin.h

#ifndef MY_LOGINDLG_H

#define MY_LOGINDLG_H

#include<QDialog>

#include “login.h”

class DlgLogin : public QDialog

{

private;

Ui_LoginDialog *ui;

public:

DlgLogin(QDialog * parent=NULL);

~DlgLogin();

}

#endif

dlglogin.cpp

#include “dlglogin.h”

DlgLogin::DlgLogin(QDialog *parent):QDialog(parent)

{

ui = new Ui_LoginDialog;

ui->setupUi(this);

}

DlgLogin::~DlgLogin()

{

delectui;

}

QT 入门 -QApplication QPushButton QDialog Ui类型的手工使用的更多相关文章

  1. Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

    转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...

  2. Qt入门-layout布局

    开发一个图形界面应用程序,界面的布局影响到界面的美观.在设计一个界面之前,应该考虑到开发的界面可能给不用的用户使用,而用户的屏幕大小.纵横比例.分辨率可能不同,界面还可能是可缩放的,程序应该可以适应这 ...

  3. Qt入门(5)——用Qt控件创建一个电话本界面

    具体实现步骤: 一.首先用 Qt Designer 创建一个两张图的对话框,分别保存为listdialog.ui和editdialog.ui文件 要注意其中各个空间对应的名称修改好 二.新建一个Qt应 ...

  4. Qt入门(4)——Qt常见控件

    Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求.我们将对这些控件和对话框作一个大概的介绍. 1. QLabel 定义 QLabel* m_labelOrdered = newQLabe ...

  5. [QT]给QApplication安装事件过滤器 app.installEventFilter

    Qt的事件处理有5种级别: 1.      重写控件的事件处理函数:如重写keyPressEvent(),mousePressEvent()和paintEvent(),这是最常用的事件处理方法,我们已 ...

  6. QT入门学习

    第一个QT程序 #include<QApplication> #include<QDialog> #include<QLabel> #include<QTex ...

  7. 第15.25节 PyQt(Python+Qt)入门学习:Model/View开发实战--使用QTableView展示Excel文件内容

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 在前面的订阅专栏<第十九章.Model/View开发:QTableView的功能及属 ...

  8. 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解

    一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有四种布局部件,分别是垂直布局(Vertical Layout).水平布局(Horizontal La ...

  9. Qt入门学习——Qt 5 帮助文档的使用

    Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必 ...

随机推荐

  1. asp.net 连接access数据库方法

    在 Web.Config 中配置 Access 数据库驱动和数据库文件名称. 请看代码 <appSettings> <add key="DBDriver" val ...

  2. SQL SERVER 2008 R2 自动备份并删除过期备份数据

        我们的系统维护的过程中肯定需要对数据库进行定期的备份,但是如果定时手工备份的话,不但浪费时间,也不能保证每次都可以按时备份,所以自动备份成为了我们的不二选择,但是定时备份需要定期清理备份文件, ...

  3. JQuery中文本框获取焦点

    今天遇见这么一个小小的问题,就是文本框中需要输入内容才可以提交,如果没有输入就提示并使该文本框获得焦点! 这么一个简单的事情如果没有使用jQuery的话 是不是对象.focus()就可以了, 可是当我 ...

  4. centos7安装mysql5.6

    1.更新yum源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-communit ...

  5. cocos2d-x教程1 hello world

    HelloworldScene.h #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos ...

  6. 5.5 Function类型

    说起来ECMAScript中上面最有意思,我想那莫过于函数了,有意思的根源,则在于函数实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此 ...

  7. [LeetCode]题解(python):077-Combinations

    题目来源: https://leetcode.com/problems/combinations/ 题意分析: 给定一个n和k,输出1到n的所有k个数的组合.比如n = 4,k=2 [ [2,4], ...

  8. AngularJS Factory Service Provider

    先看看http://www.cnblogs.com/mbydzyr/p/3460501.html http://www.oschina.net/translate/angularjs-factory- ...

  9. 帝国cms7.2自定义列表建立tag效果 代码 教程

    统计记录:(如:select count(*) as total from phome_ecms_news where classid=1 and checked=1) 注:这句SQL的意思是查找统计 ...

  10. Qt之界面美化输入框(使用QSS确实非同凡响)

    我们先看下酷狗音乐的输入框效果图: 这里我们需要实现在输入框里面添加一个按钮(多个也一样),并且提供一个默认时候的文字..直接上代码好了. QHBoxLayout *lay = new QHBoxLa ...