QT学习宝典笔记.docx

上传人:b****5 文档编号:7406611 上传时间:2023-05-11 格式:DOCX 页数:18 大小:26.90KB
下载 相关 举报
QT学习宝典笔记.docx_第1页
第1页 / 共18页
QT学习宝典笔记.docx_第2页
第2页 / 共18页
QT学习宝典笔记.docx_第3页
第3页 / 共18页
QT学习宝典笔记.docx_第4页
第4页 / 共18页
QT学习宝典笔记.docx_第5页
第5页 / 共18页
QT学习宝典笔记.docx_第6页
第6页 / 共18页
QT学习宝典笔记.docx_第7页
第7页 / 共18页
QT学习宝典笔记.docx_第8页
第8页 / 共18页
QT学习宝典笔记.docx_第9页
第9页 / 共18页
QT学习宝典笔记.docx_第10页
第10页 / 共18页
QT学习宝典笔记.docx_第11页
第11页 / 共18页
QT学习宝典笔记.docx_第12页
第12页 / 共18页
QT学习宝典笔记.docx_第13页
第13页 / 共18页
QT学习宝典笔记.docx_第14页
第14页 / 共18页
QT学习宝典笔记.docx_第15页
第15页 / 共18页
QT学习宝典笔记.docx_第16页
第16页 / 共18页
QT学习宝典笔记.docx_第17页
第17页 / 共18页
QT学习宝典笔记.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

QT学习宝典笔记.docx

《QT学习宝典笔记.docx》由会员分享,可在线阅读,更多相关《QT学习宝典笔记.docx(18页珍藏版)》请在冰点文库上搜索。

QT学习宝典笔记.docx

QT学习宝典笔记

**************光标库*********************

#include--------------------------头文件

WINDOW*initscr(void)

初始化屏幕,进入cureses模式

返回值:

成功则返回指向stdcur的结构,失败退出程序

intendwin(void)

退出curses模式

成功返回OK,失败返回ERR

intprintw(char*format,...)

向屏幕打印字符串,类似printf().

intrefresh(void)

刷新物理屏幕

intbeep(void)

终端发出一声嘀

interase(void)速度快,可靠性低

intclear(void)速度低,可靠性高,-----均使用这一种

intmove(intnew_y,intnew_x)

移动光标到指定坐标,参数就是屏幕的坐标

move()不发生物理移动,所以期望快速看到光标变位置应该立刻调用一次refresh(void)

intgetch(void)

功能:

从键盘取一个字符,类似于getchar()

intgetstr(char*string)

功能:

从键盘取字符串,类似于gets()

intscanw(char*format,...)

功能:

按指定格式取键盘输入,类似于scanf()

#include

intisatty(intfiledes)

功能:

判断描述符指向是否终端设备

返回值:

若为终端设备为1(真),否则为0(假)

#include

char*ttyname(intfd)

功能:

终端设备名

返回值:

返回指向一个字符串的指针,该字符串中含有以null结束的该文件描述字相连的终端文件名。

若些文件描述字不与终端相边

cddev

lstty?

int

intsetupterm(char*term,intfd,int*errret)

功能:

设备终端的类型

返回值:

成功,setupterm函数会返回常量OK,如果失败则会返回ERR。

如果erret设置为一个空指针,函数执行失败时就会输出一个诊断信息并且退出程序。

参数:

term:

终端类型。

fd:

写入终端所用的批开的文件描述

#include

inttigetnum(char*capname);

功能:

返回终端数值指标。

返回值:

成功返回指标值;失败返回-2

参数:

capname指标名。

例如lines,cols

注意:

调用该函数前应先调用下面的语句。

***********************************************************************************

密码如何删除

if(i>0&&password[i]==127)//字符是退格建,如不加i>0表示没有输入,就直接按空格

{

password[i]=0;//清空它

i--;

move(9,20+i);//光标移到上一次所在的位置

printw("\b");//退格,用空白覆盖*号

continue;//结束当前一次的循环.

}

a.out>temp/log------------------看箭头的方向,写入temp/log中

wc

*******************内存管理******************

#include

void*malloc(sizt_tsize)

分配长度为size字节的内存块

返回值:

如果分配成功则返回指向被分配内存的指针,否则返回空指针,当内存不再使用时,应使用free()函数将内存块释放

#include

voidfree(void*ptr_to_memory)

功能:

释放ptr_to_memory指向的内存

#include

char*getenv(constchar*name)

功能:

取指定环境变量name对应的内容。

返回值:

成功则返回变量内容,失败返回NULL

#include

intputenv(constchar*string)

功能:

设置环境变量。

格式为"name=value"

成功返回0,失败返回-1

intmain()

{

char*ss=getenv("PATH");

printf("%s\n",ss);

inta=putenv("tanjie=ami");

printf("%d\n",a);

printf("%s\n",getenv("tanjie"));

uid_tuid=getuid();

printf("UID:

%d\n",uid);

char*login=getlogin();

printf("LOGIN:

%s\n",login);

}

#include

#include

uis_tgetuid(void)

功能:

返回当前用户的UID

char*getlogin(void)

功能:

返回当前用户登录名

#include

#include

structpasswd*getpwuid(uid_tuid);

取口令数据库结构

成功返回口令数据库的结构,失败返回NULL

structpasswd*pw=getpwuid(getuid());

pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_shell;

结果:

name=hfsd1006,uid=1002,gid=1002,home=/home/hfsd1006,shell=/bin/bash

rootpasswdentry:

structpasswd*getpwnam(constchar*name)

功能:

取口令数据库结构

成功返回口令数据库结构,失败返回NULL

structpasswd*pw=getpwuid("root");

pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_shell;

结果:

name=root,uid=0,gid=0,home=/root,shell=/bin/bash

#include

intgethostname(char*name,size_tnamelen);

功能:

获取计算名。

#include

intuname(structutsname*name);

功能:

获得计算机详细信息

charcomputer[256];

structutsnameuts;

gethostname(computer,255)

uname(&uts)

日志管理

#include

voidsyslog(intpriority,stringmessage,...);

功能:

函数将message字符串写到系统记录中,参数priority为优先级和用户标识码

priority的内容可以是:

LOG_EMERG:

紧急情疻。

LOG_ALERT:

应该被立即改正的问题,如系统数据库被破坏

LOG_CRIT:

重要情况,如硬盘错误

LOG_ERR:

错误

LOG_WARNING:

警告信息

LOG_NOTICE:

不是错误情况,是可能需要处理

LOG_INFO:

普通信息

LOG_DEBUG:

包含情报信息,通常只在调试一个程序时

LOG_USER:

来自于用户

################编程规范####################

排版:

缩进4格

程序块之间,变量说明之后必须加空行

一行的代码太长了(>80),下一行要空开多个TAB。

要在低优先级的操作符处划分。

低优先级的操作符放在下一行首

循环,判断也同上。

func(fa()+fb()

fc()+fd()

fe()

);

函数或过程的开始要缩进

花括号上下对齐

逗号,分号后加一个空格如,inta,b,c;

说明性文件(.h.inc.def.cfg)头部应该注释,

addrenivebeginendcreatdestroy

insertdeletefirstlastgetrelease

incrementdecrementputget

*****************************QT第一天******************************************

QT类库,开发工具,开发环境(14年)

二十个左右的类

QT简介:

跨平台的应用程序和UI(用户接口)框架,完全基于C++,增加一些XML语言,之所以跨平台,因为它做了高度的抽象。

用固定的类与方法实现多线程,源码可移植(诺基亚收购了QT,缺点:

与以前的版本不兼容)

QT可以做什么:

桌面系统,嵌入式设备,消费的电子设备,高级的GUI开发,Linux设备开发

(EeePC上网本,及为省电可用十几个小时,)

(一些开源项目:

KDEKOFFIC,VLC媒体播入器,Amarok2Marble)

QTE,QTOPIA:

QT/Embedded:

QT嵌入版,

Qtopia:

可以认为是基于QT/E库的一个嵌入式Linux桌面环境,同时又为开发者为嵌入式设备编写程序提供了一个面向对象的API。

QTE是一个基础的类库,面QTOPIA是基于QTE基础上开发的一套应用程序(qtopia2应用基于qte2.3x的)

架构:

Qte是基于Linux系统的

Qtopia

Qt/Embedded

Framebuffer

LINUX

QT/QTE比较:

应用源代码

Qt的API(类库)

Qte

侦缓冲

Linux内核

Arm开发版上,只需要有一个内核,为方便测试可以有一个很小的文件(放QTE开发环境,和程序)

QTSDK完整的开发环境:

版本4.6.3需要一个框架

QTSDKforWindows下载Window的Q库t4.6.3

QTQTSDKforLinux/x11下载Linux/X11的Qt库4.6.3

下载嵌入式Linux的Qt库4.6.3

要在sdk中配置框架,

SDK的结构如下:

classlibrary如下:

Developmenttools(开发工具)

(corexml)cross-platformIDE

(GuiMultimedia)guihelp

(webkitdatabase)118nToolBuittools

(graphicvinetwork)

(scriptiingunitTests)

(OpenglBenchmarking)

交叉平台的支持:

(如WindowsLinux)

版权QTSERVICES(QT所类要的一些服务,就是一些库,简单的就在IDE中就可以)

项目名.pro文件:

是项目的管理文件

引用了哪些库,及所括文件

ui文件不能编译,它是XML配置文件

容器:

面象对象的的事件驱动

属性

objectName:

对象名,有一个默认的

改名方案pButton_类及功能是什么如pButton_ok,pButton_cancel

font字体

cursor光标

text:

显示按钮上的字

信号signal与槽slot

对象间通读分两种

1回调。

回调是指一个函数的指针,如果希望一个处理函数通知你做一些事件,可以把另一个函数的指针传递给处理函数。

处理函数在适当的时候调用了回调,回调不是类型安全的

2,信号和槽,一个事件发生时,信号被发身。

Qt的窗口部件有很多预定义的信号,槽就是一个可以被调用处理特定信号的函数。

Qt的窗口部件又很多预定义的槽,通常我们可以加入自已的槽(槽是类里的一个抽象方法)这样就可以处理感兴趣的信号,信号和槽的机制是类型安全的。

一个类中可以有对象,信号和槽

connect(Object1,signal1,Object2,slot1);对象1的信号发给了对象2的槽

connect(Object1,signal1,Object2,slot2);//一个信号可以连接到多个槽

//若干个对象也可以连接到一个槽

QT典型类

classFoo:

publicQObject//定义一个QT类继承整个QT类的一个基类

{

Q_OBJECT//这是一个宏

public:

Foo();//构造

intvalue()const{returnval;}//常成员函数

publicslots:

//槽

voidsetValue(int);

signals:

//信号

voidvalueChanged(int);//发射了一个信号

private:

intval;//这是一个信号的值

}

QT类中发送信号的方法

voidFoo:

:

setValue(intv)

{

if(v!

=val)//避免发给自已进入死循环

{

val=v;

emitvalueChanged(v);//发射信号

}

}

连接信号和槽-

Fooa,b;

connect(&a,SIGNAL(valueChanged(int)),&b,SLOT(setValue(int)));

//宏里边写一个信号valueChanged(int),宏里边有一个槽setValue(int)

b.setValue(11);//槽就是一个成员方法,可被这样调用此时b=11a里不知什么值

a.setValue(79);//a==79,b==79

b.Value();

注意参数可为各种类型,但信号与对应的槽要类型一致

槽的访问权限

publicslots:

区包含了任何信号都可以相连的槽。

这对于组件来说非常有用,你生成许多对象,它们互相并不知道,把它们的信号和槽连接起来。

这样信息就可以正确传递,并且就像一个铁咱模型。

把它打开然后让它跑起来。

protectslots:

区所含之后这个类和它的子类的信号才能连接槽。

这就是说这些槽只是类的实现的一部分,而不是它和外界的接口

privateslots:

区包含了之后这个类本身的信号可以连接的槽。

这就是说它和这个类是非常紧密的甚至它的子类都没有获得连接权利这样的信任。

QT类库

窗口部件,数据库,日期与时间,拖放环境,事件,非GUI的类,图形和打印,图像处理,布局管理,输入输出各网络主窗口和相关类,杂项,多媒体,插件类,标准对话框,线程类,窗口部件外观

QObject:

#include

QObject类是所有Qt对象的基类。

QObject是Qt对象模型的中心,这个模型的中心特征就是一种用于无缝对象通讯的被叫做信号和槽的非常强大的机制,你能够使用connect()信号和槽连接起来并且可以用disconnect()来破坏这种连接,为了避免从不结束的通知循环,

QObject继承关系

QCoreApplicationQWidgetQLayout

QApplicationQwidgetQB

....

可以

QObject*pb=newQPushButton("test");//不用是直接基类

QObject

boolQObject:

:

connect(constQObject*sender,constchar*signal,constQObject*receiver,constchar*method,Qt:

:

ConnectionTypetype=Qt:

:

AutoConnection)[static]

//static表示发送者

把从sender对象发送的signal和receiver对象中的method连接起来,并且如果连接成功返回真,否则返回假。

必须在说明signal和method的时候使用SIGNAL()和SLOT()两个宏

例如:

QLaber*laber=newQLabel;

QScrollBAR*scrollBar=newQScrollBar;

QObjectconnect(...);

QObject类

boolQObject:

:

disconnect(constOObject*sender,constchar*signal,constQObject*receiver,constchar*method)[static]

取消从sender对象发送的signal和对象receiver中的method

1,取消连接一个对象的信呈怕任何事物

disconnect(myObject,0,0,0);

2,取消连接一个特定信号的任何事物

disconnect(myObjectSIGNAL(mySignal()),0,0)

3,取消一个特定接收者的所有连接

disconnect(myObject,0,myReceiver,0)

QObject:

:

disconnect()

O可以用做一个通配符,意义可能分别为任何信号,任何接受对象“或者”一个接受对象中的任何槽

sender不能为O

signal为O,它取消所有和这个对象的信号连接的receiver和method,如果不是只由特定信号被取消联接。

receive为O,它取消连接到signal的任何事物,如果不是,只有receiver中的槽被取消连接

method为O,它取消连接reciver的任何事特,如果不是,只有名为method的槽被取消联接。

boolQObject:

:

inherits(constchar*clname)

如果这个对象是继承的clname的类的实例,并且clname继承QObject那么返回值真,否则返为假

实例

QTimer*t=newQTimer//QTimer;继承QObject

t->inherits("QTimer");//返回TRUE

t->inherits("QObject");//返回TRUE

t->inherits("QAbstractButton");//返回FALSE

boolQObject:

:

isA(constchar*clname)

如果这个对象是clname类的实例,返回真,否则返回假。

如:

QTimer*t=newQTimeer;//QTimer继承QObject

t->isA("QTimer");//返回TRUE

t->isA("QObject");//返回为FALSE

QObject

boolQObject:

:

isWidgetType()

如果这个对象是一个窗口部件,返回真,否则返回假

调用这个函数等于调用inherits("QWidget"),但这个函数要快很多

QString

floatQString:

:

toFloat(bool*ok=0)const

doubleQString:

:

toDouble(bool*ok=0)const

返回由这个字符串转化的double值

如果转化发生错识误,*ok被设置为假(除非ok为0,这是默认的)并且0被返回,否则*ok被设置为真

QStringstring("12345.6");

longQString:

:

toLong(bool*ok=0,intbase=10)const

shortQString:

:

toShort(bool*ok=0,intbase=10)cost

intQString:

:

toInt(bool*ok=0,intbase=10)const

返回由这个字符串转化的int值,是基于base的,默认为10并且必须由2到36之间

QStringstd("FF");

boolok;

inthex=str.toInt(&ok,16);//hex==255,ok=TRUE

intdec=str.toInt(&ok,10);//dec=0,ok==FALSE

作业:

******************************QT第二天****************************************

#include

QWidget类是所有用户界面对象的基类,

窗口部件是用户界面的一个原子。

它从窗口系统接鼠标,键盘和其它事件,并且在屏幕上绘制自已的表现。

每一个窗口部件者是矩形。

一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。

如果由操作系统或类库提供的不用重画,其它都用重画。

缺点是极度浪费资源,和内存。

速度很慢

QWidget被QAbstractButton,QFrame,QDialog,QComboBox,QDataBrowser,QDataView,QDateTimeEdit,QDesktopWidget,QDial,

.......等类继承

QWidget属性----------------属性名:

类型

acceptDrops:

bool窗口部件中放下事件是否有效

windowTitle:

QString窗口标题

cursor:

QCusrsor窗口部件的光标外形---------------类型是构造出来的

focus:

constbool窗口部件(或者它的焦点代理)是否得到键盘输入焦点(只读)

font:

QFont:

窗口部件当前的字体集

(如果是对容器设置字体或字体大小,它里面的子类会继承这个容器的设置)

height:

constint不包括窗口框架的窗口部件的高度(只读)----按象素来算

isActiveWindow:

constbool窗口部件或者它的一个子对象是否是活动窗口(只读)

不一定在最前面的对话框就有输入焦点

QWidget的其它属性

maximumHeight:

int窗口部件的最大高度

maximumSize:

QSize窗口部件的最大大小

maximumWidth:

int窗口部件的最大宽度

minimized:

constbool窗口部件是否是最小化的。

(变为图标了)(只读)

minimumHeight:

int窗口部件的最小高度

minimumSize:

窗口

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2