看了一眼博客,感觉自己好像学的东西好多,挺杂。哈哈,一部分是因为兴趣,一部分是因为工作。
不知不觉QT基础篇已经学完了,联想到上次到某家公司技术面,还是觉得,总结真的很有必要。这里就对基础篇做一个总结。
学习的网站:http://www.qter.org/portal.php?mod=list&catid=6&page=2
随便嘛,写给自己看的。
QT基础知识:
一:
- 在设计模式下,可以很轻松建立各种 布件 像button, label等等
- ui->pushButton->setText("新窗口"); //将界面上按钮的显示文本更改为“新窗口” 可以用代码的方式在构造函数里面更改部件属性
- 信号和槽:可把他们都看作是函数,单击按钮后会发射信号,如Clicked();对话框接收到信号后会作出反应,accept();
- 设计模式下,作出Button,然后点击右键,转到槽函数,然后添加参函数,例如:
-
void MainWindow::on_pushButton_clicked() { QDialog *dlg = new QDialog(this); dlg->show(); }
- 创建时指定的this参数表明这个对话框的父窗口是MainWindow。
二:设计模式下与纯代码实现的信号与槽步骤
- 设计模式:(按钮为例,登录与退出)
- 新建项目,类名和基类保持MainWindow和QMainWindow不变;
-
创建Buttons,登录按钮为loginBtn,退出按钮为exitBtn ;
- 在属性编辑器中可以更改objectName等属性;
- 在设计模式下方有“信号和槽编辑器”,可以选择发送者和接受者,可以选择信号函数与槽函数;例如发送者为exitBtn,信号为clicked(),接收者为LoginDialog,槽为close();
- 右击登录按钮,在弹出的菜单中选择“转到槽…”,然后选择clicked()信号并确定。转到相应的槽以后,添加函数调用: 在槽函数中加入(accept()),相当于你一单机登录按钮,就会执行LoginDialog就会执行(accept())函数
void LoginDialog::on_loginBtn_clicked(){accept();}
- 在main.cpp加入以下代码 ,当accept执行时,弹出主窗口w。
#include#include"mainwindow.h"#include"logindialog.h"intmain(int argc, char *argv[]){QApplicationa(argc,argv);MainWindow w;LoginDialog dlg;if(dlg.exec() == QDialog::Accepted){w.show();return a.exec();}else return0;}
- 代码模式
- 首先在Main函数中加入上述第6步骤的代码;
- 在头文件中加入槽函数声明:
privateslots:void login();
- 在.cpp文件的构造函数添加connect(),第一个参数就是发射信号的部件,比如这里的loginBtn按钮;第二个参数是发射的信号,比如这里是QPushButton类的单击clicked()信号;第三个参数是接受信号的部件,比如这里是this即本部件也就是LoginDialog;第四个参数是要执行的槽,比如这里是LoginDialog类的login()。使用connect()函数就相当于以前在设计模式进行的关联设置。
- 在.cpp文件最后添加槽的定义 ,实现一些功能。
三:添加资源文件
- Qt中可以使用资源文件将各种类型的文件添加到最终生成的可执行文件中,这样就可以避免使用外部文件而出现的一些问题。而且,在编译时Qt还会将资源文件进行压缩,我们可能发现生成的可执行文件比我们添加到其中的资源文件还要小。
- 我们向项目中添加新文件,模板选择Qt分类中的Qt资源文件(Qt Resource File)。
- 添加完文件后会自动打开该资源文件,需要先添加前缀,点击“添加”按钮,然后选择“添加前缀”,默认的前缀是“/new/prefix1”,这个可以随意修改(不要出现中文字符),我们这里因为要添加图片,所以修改为“/myimages”。然后再按下添加按钮来添加文件,这里最好将所有要用到的图片放到项目目录中。
- 也可以使用纯代码来添加文件:
四:添加菜单图标
Qt中的一个菜单被看做是一个Action,我们在下面的Action编辑器(Action Editor)中可以看到刚才添加的“新建”菜单,如下图所示。
五:布局管理,这个怎么说,多用就好
后面的实现文本查找功能,重新开一篇了,再重新过一遍。