Qt学习笔记312001.docx

上传人:b****6 文档编号:3327053 上传时间:2022-11-21 格式:DOCX 页数:7 大小:285.37KB
下载 相关 举报
Qt学习笔记312001.docx_第1页
第1页 / 共7页
Qt学习笔记312001.docx_第2页
第2页 / 共7页
Qt学习笔记312001.docx_第3页
第3页 / 共7页
Qt学习笔记312001.docx_第4页
第4页 / 共7页
Qt学习笔记312001.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

Qt学习笔记312001.docx

《Qt学习笔记312001.docx》由会员分享,可在线阅读,更多相关《Qt学习笔记312001.docx(7页珍藏版)》请在冰豆网上搜索。

Qt学习笔记312001.docx

Qt学习笔记312001

2018/10/24星期四

遇到的问题

1.问题

1.1如何开启QtCreator的代码自动补全功能

1.2qtparent表示父窗口为什么传入0

2.解决的办法

2.1如何开启QtCreator的代码自动补全功能

众所周知,在QtCreator里面编程,如果没有自动代码补全功能,是一件灰常灰常痛苦的事情啊,下面,我们就把这个该死的代码补全功能找出来。

步骤1.打开QtCreator(废话!

囧!

步骤2.在菜单栏上面选择工具(Tools),在下拉菜单中选择Options...

步骤3.找到环境,点击键盘,如下图黑圈中所示......

步骤4.在键盘快捷键的过滤器中键入:

completethis,(其实,只要键入comp就可以找到了),如图:

步骤5.注意到代码自动补全命令(CompleteThis)的快捷键是Ctrl+空格。

然后我们按下图的顺序将快捷键换成Tab,Tab就可以了。

特别注意的是,键位顺序里面的东东只要你点击键盘上相应的按钮就可以了,不用,也不能自己输入。

比如说我这里的Tab,Tab就是连续在键盘上按了两次Tab键而成滴~~~

OK,搞定,收工!

2.2qtparent表示父窗口为什么传入0

parent参数指定了父窗口部件,如果是0,意味着该窗口没有父对象。

当需要时可以指定父窗口,这样便于垃圾回收

新的知识和方法

1.Qt试用快捷键

F2      跳转到函数定义(和Ctrl+鼠标左键一样的效果)

Ctrl+2      编辑模式

Ctrl+3      图形模式

Ctrl+4     调试模式

Alt+0       显示或者隐藏侧边条,编辑模式下起作用(有时写的函数太长,屏幕不够大,就用这个)

ESc       切换到编辑模式

Alt+3      程序输出窗口

Alt+4       编译输出窗口

Ctrl+B       编译工程

Ctrl+R       运行工程

Ctrl+F     查找替换当前选中的内容,按下Ctrl+F,会列出所有和你选的内容一样的语句

Ctrl+Shift+F  查找内容

Ctrl+I       自动对齐

Ctrl+/       注释行,取消注释行

Ctrl+[       跳到代码块的头部

Ctrl+]       跳到代码块的尾部

Ctrl+Shift+<      折叠代码块

Ctrl+Shift+>      展开代码块

Ctrl+L      跳到某一行

F5        开始调试

Shift+F5  停止调试

F9        设置和取消断点

F10      单步前进

F11      单步进入函数

Shift+F11  单步跳出函数

2.setupUI(this)的意思

setupUi(this)是由.ui文件生成的类的构造函数,这个函数的作用是对界面进行初始化,它按照我们在Qt设计器里设计的样子把窗体画出来,把我们在Qt设计器里面定义的信号和槽建立起来。

也可以说,setupUi是我们画界面和写程序之间的桥梁

3.qt写的程序中,最后的returna.exec()做了哪些工作

程序进入消息循环,等待可能输入进行响应。

把程序运行交给Qt处理,进入程序的循环状态

4.SIGNAL和SOLT宏定义

1.#define signals public  

2.#define slots /* nothing */  

5.connect函数

QObject:

:

connect(&quit,SIGNAL(clicked()),&a,SLOT(quit()));

connect也许是Qt中最重要的特征了。

注意connect()是QObject中的一个静态函数。

不要把这个函数和socket库中的connect()搞混了。

这一行在两个Qt对象(直接或间接继承QObject对象的对象)中建立了一种单向的连接。

每一个Qt对象都有signals(发送消息)和slots(接收消息)。

所有窗口部件都是Qt对象。

它们继承QWidget,而QWidget继承QObject。

这里quit的clicked()信号和a的quit()槽连接起来了,所以当这个按钮被按下的时候,这个程序就退出了。

6.窗口部件的理解

窗口部件就是用户程序的一个可视化元素。

按钮、菜单、滚动条包括框架都是窗口部件。

窗口部件还可以包含其他窗口部件。

任意窗口部件都可以作为窗口。

在使用QLable标签(lable),创建窗口部件的时候标签通常是隐藏的,这就运行我们先进行设置然后再显示它们,从而避免了闪烁现象。

7.布局管理器

布局管理器就是一个能够对其所负责窗口部件的尺寸大小和位置进行设置的对象。

主要有三个布局管理类:

QHBoxLayout。

在水平方向上排列窗口部件,从左到右。

QVBoxLayout。

在竖直方向上排列窗口部件,从上到下。

QGridLayout。

把各个窗口部件排列在一个网格中。

8.布局自动设置父窗口

有个程序

QWidget*window=newQWidget;

QSpinBox*spinBox=newQSpinBox;

QSlider*slider=newQSlider(Qt:

:

Horizontal);

QSpinBox,QSlider这两个类都没有设置父窗口,但是为什么最后的布局系统是QWidget是父窗口。

原因是window->setLayout(layout);这个函数调用会在窗口上安装布局管理器(图8.1),从软件底层来说,这两个类会“自动重定义父对象”,它们会成为这个安装了布局的窗口部件的子对象。

也正是因为这个原因,当创建一个需要放入某个布局中的窗口部件时,就没有必要为其显式地指定父对象了。

图8.1

9.布局管理器自动为部件分配位置和大小

 

尽管没有明确的设置任何一个窗口的大小和位置,但是QSpinBox,QSlider还是能够非常好的一个挨着一个显示。

这是因为QHBoxLayout可根据负责的子对象的需要为它们分配所需的位置和大小。

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1