文档库 最新最全的文档下载
当前位置:文档库 › QT知识点

QT知识点

1、QPallete
调色板类QPallete提供了颜色角色(color roles)概念,是指当前GUI界面中颜色的职责,通过枚举变量QPalette::ColorRole来定义,比较常用的颜色角色有:

QPalete::Window,通常指窗口部件的背景色;
QPalette:WindowText,通常指窗口不见的前景色;
QPalette::Base,指文本输入窗口部件(比如QtextEdit,QLinedit等)的背景色.
QPalette::Text,与QPalette::Base一块使用,指文本输入窗口部件的前景色;
QPalette::Button,指按钮窗口部件的背景色;
QPalette::ButtonText,指按钮窗口部件的前景色.

setPalette( QPalette( QColor( 250, 250, 200) ) );
QColor( 250, 250, 200)会生成一个QColor对象作为QPalette构造参数,于是又生成一个QPalette对象作为setPalette的参数.
QColor( 250, 250, 200)是实例化对象,编译器会自动调用构造函数,而”C++中是不允许直接调用构造函数的”是指一个类不能调用其构造函数;比如:
QColor color(250, 250, 200);这时也调用了构造函数,是对的,但color.QColor(250,250,200)就错了.

2、QtCreator 断点
所谓断点,就是程序开发者设定的一系列条件,但程序以调试方式运行时,一旦符合引发断点的条件,程序便中断执行,程序员便可检视程序运行时的状态,继而控制程序的运行,直至找出问题的所在。
设置断点的规则:
在某一行代码设置断点--在行号左边缘点击鼠标或按下F9;
在断点视图中选择某个断点,按下Delete键;
在断点视图内点击鼠标右键,在弹出的上下文窗口中选择【Delete Breakpoint】
Shift + F5 结束调试状态;F10 进入逐行调试状态。
F11 进入逐过程调试状态
按下F5键可以使程序运行到下一个断点处。

3、载入文件
void textfinder::loadTextFile()
{
QFile inputFile(":/input.txt");
inputFile.open(QIODevice::ReadOnly);
QTextStream in(&inputFile);
QString line = in.readAll();
inputFile.close();
ui->textEdit->setPlainText(line);
QTextCursor cursor = ui->textEdit->textCursor();
cursor.movePosition(QTextCursor::Start,QTextCursor::MoveAnchor,1);
}

4、IsNull
测试是否为有效数据 ;测试是否为空值 ;判断对象是否为空
options 选项 iterator 迭代器 ;const_iterator 不允许对遍历的数据进行修改


5,更新函数
QTimer *timer = new QTimer(this);
timer->start(6000);
connect(timer,SIGNAL(timeout()),this,SLOT(update()));

6,覆盖和重载
覆盖或重写(override):子类重新定义父类虚函数的做法,重写的函数必须有一致的参数表和返回值 ----动态的
重载(overload):编写一个与已有函数同名但是参数表不同的函数。即指允许存在多个同名函数,而这些函数的参数表不同。 ---静态的 ,重载只是一种语言特性,与多态无关,与面向对象无关。

7,封装、继承和多态
封装可

以隐藏功能的实现细节,使得代码模块化;
继承可以扩展已存在的代码模块。实现代码重用;
多态则实现了接口重用。

8,头文件
使用哪个类时就必须包含该类的头文件
int main(int argc,char *argv[])
应用程序的入口,argc是命令行变量的参数,argv是命令行变量的数组。

9,中文显示
#include
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());


10,操作字符串
+
+= 操作符
将一个字符串追加到另一个字符串的末尾
QString str = “Hello”;
str += “world”; //str = “Hello world”

QString::append()
具有同+=操作符一样的功能,实现在一个字符串的末尾追加另一个字符串
QString str1 = "Welcome";
QString str2 = "to ";
str1.append(str2);//str1 = "Welcome to"
str1.append("you");//str1 = "Welcome to you"

QString::sprinf() : 格式定义符和c++相同

QString::arg() :函数重载可以处理很多的数据类型
QString str;
str = QString("%1 was born in %2.").arg("paul").arg(1000);//str = "paul was born in 1000."

insert() :在原字符串特定位置插入另一个字符串;
prepend() :在原字符串的开头插入另一个字符串;
replace() : 用指定的字符串代替原字符串中的某些字符;
QString::trimmed() :移除字符串两端的空白字符;
QString::simplified() :移除字符串两端的空白字符,使用单个空白字符“”代替字符串中出现的空白字符。

11,使用NULL和empty的区别
一个NULL就是使用QString的默认构造函数或者使用(cnnst char* 0)作为参数的构造函数创建的QString字符串对象
而一个空字符串是一个大小为0的字符串。一个NULL一定是一个空字符串,而一个空字符串未必是一个NULL字符串。

12,QT功能模块
QtCore :Qt的基本模块,定义了其他模块使用的Qt核心的非GUI类
QtGUI : 定义了图形用户界面类
QtNetWork : 定义了Qt的网络编程类
QtOpenGL : 定义了OpenGl的支持类
QtSQL : 定义的了访问数据库的类
QtSvg : 定义了显示和生成SVG(可伸缩向量图形 Scalable Vector Graphics)类
QtXML : 定义了处理XML(eXtensible Markup Language)类
Qt3Surport : 定义了以前版本Qt3的兼容的类
QtTest : 定义了对应用程序和库惊醒单元测试的类
QtDBus : 提供了使用D-Bus进行进程间通信(Inter-Process Communication,IPC )的类
QtScript : 提供了对脚本的支持

13,Qt常用算法
模块提供了一些算法和函数
qAbs() :返回数值的绝对值
qMax(b,c) :返回两个数的最大值
qRound() :取四舍五入近似值
qSwap() :交换两数的值
正则表达式:
[A-Za-z][1-9][0-9]{0,2} : 第一个字元输入大小写字母,接着一位非0数字,接着0~2为可为0的数字

14,正则表达式
正则表达式由,表达式(expressions)、量词(qua

ntifiers)和断言(assertions)组成。

15,控件
1)、按钮组(Buttons)
PushButton:按钮 Tool Button:工具按钮 Radio Button:单选按钮 Check Box:复选框
Command Link Button:命令链接按钮 Button Box:按钮盒
2)、输入部件组(Input Widgets)
Combo Box:组合框 Font Combo Box:字体组合框 Line Edit:行编辑 Text Edit:文本编辑
Plain Text Edit:纯文本编辑 Spin Box:数字显示框(自旋盒) Double Spin Box:双自旋盒
Time Edit:时间编辑 Data Edit:日期编辑 Date/Time Edit:日期/时间编辑
Dial:拨号 Horizontal Scroll Bar:横向滚动条 Vertial Scroll Bar:垂直滚动条
Horizontal Slider:横向滑块 Vertial Slider:垂直滑块
3)显示控件组(Display Widgets)
Label:标签 Text Browser:文本浏览器 Graphics View:图形视图 Calendar:日历
LCD Number:液晶数字 Progress Bar:进度条 Horizontal Line:水平线
Vertial Iine:垂直线 QWebView :web视图
4)空间间隔组(Spacers)
Horizontal Spacer:水平间隔 Vertial Spacer:垂直间隔
5)布局管理组(Layout)
Vertial Layout:垂直布局 Horizontal Layout:水平布局 Grid Layout:网格布局 Form Layout:表格布局
6)容器组(Containers)
Group Box:组框 Scroll Area:滚动区域 Tool Box:工具箱 Tab Widget:标签小部件
Atacked Widget:堆叠部件 Frame:帧 Widget:小部件 MdiArea:MDI的地区 Dock Widget:码头部件
7)项目视图组(Item Views)
List View:清单视图 Tree View:树视图 Table View:表视图 Column View:专栏视图
8)项目控件组(Item Widgets)
List Widget:清单控件 Tree Widget:树形控件 Table Widget:表控件

16,QWidget(QWidget *parent=0,Qt::WindowFlags f=0)
参数parent:指定了窗口部件的父窗口部件,parent=0,新建的窗口部件是一个窗口,否则,新建的窗口部件是parent的子窗口部件。
参数f: 指定了窗口部件的窗口标志,默认值是0,即Qt::Widget
QWidget定义的窗口类型为Qt::WindowFlags 枚举类型,可用性依赖于窗口管理器是否支持他们。

17,隐式共享(copy on write)
深拷贝: 生成对象的一个完整的复制品,会占用更多的内存和cpu
浅拷贝: 生成一个引用复制(如仅仅复制指向共享数据的指针),效率很好
Qt中支持隐式共享的类:
所有的容器类;
QByteArray、QBrush、QPen、QPalette、QBitmap、QImage、QPixmap、QCursor、QDir(目录、方法)、QFont、QVariant。

18,读写文件
QFile file("textFile.txt");
if (file.open(QIODevice::ReadOnly))
{
char buffer[2048];
qint64 lineLen = file.readLine(buffer,sizeof(buffer));
if (lineLen != -1)
{
qDebug()<}
}

19,书写规则
变量与函数收单词首字母小写,后每个单词首字母大写
已有类名每个单词首字母全大写
宏名

全大写

20,const
1)定义常量 const double PI = 3.14
2) 表示常量 const int number = 1; const Teacher Mrchen; const int* pNumber; int const * pNumber;
int * const pNumber;
3)表示函数的输入输出参数
bool AutoResizeRect(CRect& destRect,const CRect& srcRect) //传出参数可修改,传入参数,不可以修改
4)修饰类成员函数
在声明类的成员函数时,如果在末尾加上const修饰,表示这个成员函数内不可修改,这种模式为“对象数据只读模式”。函数叫做查看函数。如果末尾没加const修饰,表示可以对对象的数据进行修改,这种函数叫做变更函数。

21,QWidegt及其派生类
一个Widget是不是一个Window,只取决于它的的WindowFlags中是否包含Qt::Window;
要改变一个Widget的大小,只有move()、resize()、setGeometry()这3个东西可用;

22,打乱序列
std::random_shuffle(mine_flag,mine_flag+totalBlockNum);//打乱序列random_shuffle(vi.begin(), vi.end()); /* 打乱元素 */ random_shuffle()的第二个参数要指向数组上界的下一个元素位置:

23,static_cast<>()
Block* current_block=static_cast(mainLayout->itemAtPosition(i,j)->widget());这句话,是获取布局中位于(i,j)位置处的widget*,将其转换为Block*,static_cast是C++关键字,这里执行一个下行转换动作。

24,Qt 中,对话框的打开具有三种方式:

QDialog::show(): 非模态
QDialog::exec(): 模态
QDialog::open(): 窗口模态

25,T qobject_cast
类型转换,将类型的对象指针转换为的对象指针,返回对象指针,T必须是直接或间接继承自QObject的类

26,QLabel标签和伙伴(buddy)
一个标签和一个窗口部件有伙伴关系,指当用户激活标签的快捷键时,鼠标键盘的焦点会转移到它的伙伴部件上,只有QLabel标签对象才可以有伙伴

27,QAction(const QIcon& icon,const QString& text,QObject* parent)
形参icon和text都是对常量对象的引用,可以传入不具名的QIcon(路径)对象作为实参和临时QString对象tr("文本")作为实参。对应非常量对象的引用,不具名的对象,临时对象,和具体数值不能作为实参。

28,QWidget窗口部件的构造函数QWidget(QWidget* parent = 0,Qt::WindowFlags flag=0)
参数parent: 指定了窗口部件的父窗口部件,如果等于0(默认值),新建的窗口部件将是一个窗口,否则新建的窗口部件是parent的子窗口部件(是否是一个窗口要看flag),如果新窗口部件不是一个窗口的话,它将会出现在父窗口部件的界面内部。
参数flag: 指定新窗口部件的窗口标志,默认值0,即Qt::Widget
QWidget定义的窗口类型(为Qt::WindowFlags枚举类型)可用性依赖于窗口管理器是否支持他们:有
Qt::Widget 如果新窗口部件没有父窗口部件,那么它

是一个独立窗口,否则是子窗口
Qt::Window 不管是否具有父窗口,都会是一个窗口
Qt::Dialog 新窗口部件是一个对话框
Qt::Sheet 新窗口部件是一个表单
Qt::Drawer 新窗口部件是一个抽屉
Qt::Popup 弹出式顶层窗口
Qt::Tool 工具窗口
。。。。。

29,QTextEdit
在QTextEdit中已经提供撤销,剪切,复制,粘贴,全选的函数

相关文档