【Qt学习笔记】001 基础篇——多窗口&登录界面
来源:互联网 发布:linux网络接口详解 编辑:程序博客网 时间:2024/05/21 14:42
多窗口程序教程链接
登录对话框教程链接
由实例切入,打开新世界的大门,可能笔记做的不是很系统,但是是一个萌新不断发现的过程。
和VS的MFC的项目管理界面很类似,把各个类型的文件统一做了分类。
以main.cpp为例 因为其余的程序都还没能读懂
#include "mainwindow.h"#include <QApplication>#include "logindialog.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; LoginDialog dlg; if (dlg.exec() == QDialog::Accepted) { w.show(); return a.exec(); } else return 0;}/*在Qt中选中语句按F1就可以查阅该语句的功能,类似MATLAB的帮助文档
QApplication类管理GUI应用的所有控制流和主要设置。第一条新建了一个QApplication的对象a,此后对整个GUI的控制应该都可以通过a中的函数来实现。
MainWindow类 和 LoginDialog 类是实在头文件中.h文件中定义,随着新建一个对话框自动生成的一个类,同样建立对象w和dlg自动与对话框交互(具体机理并不是很清楚),初步断定这两个类都是基于QDialog派生出来的。
exec()函数,激活模态对话框,返回值Accepted或者Rejected(这里应该是一个“槽”的概念)
也就是说,在主界面中,首先激活登录界面dlg,等待其返回值为Accepted时才激活主界面。
在LoginDialog.cpp中,进行条件判断,满足条件即用户名密码匹配正确,则向信号槽中注入Accepted(姑且这么说,并没有考证)
#include "logindialog.h"#include "ui_logindialog.h"#include <QMessageBox>LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent), ui( ){ ui->setupUi(this);}LoginDialog::~LoginDialog(){ delete ui;}void LoginDialog::on_loginBtn_clicked(){ if(ui->usrLineEdit->text().trimmed() == tr("wanglingyu") && ui->pwdLineEdit->text() == tr("123456")) { accept(); } else{ QMessageBox::warning(this,tr("Waring"), tr("user name or password error!"), QMessageBox::Yes); ui->usrLineEdit->clear(); ui->pwdLineEdit->clear(); ui->usrLineEdit->setFocus(); }}这里ui应该是对话框类的对象,通过setupUi将当前对话框的指针指向该对象,再通过ui对象的函数操作对当前对话框中的元件进行定义。
ui->usrLineEdit->text().trimmed()这句话充分显示了ui的用法,usrLineEdit是LoginDialog对话框中的一个文本框,其ObjectName被修改为usrLineEdit,每个环节都是一个对象(具体哪个类有待深入学习),text()返回值是文本框中的字符串,trimmed()的作用是删除字符串前后的空白字符。当该语句通过时,则注入Accepted,进入主界面。
0 1
- 【Qt学习笔记】001 基础篇——多窗口&登录界面
- Qt学习笔记之一,登录界面。
- QT学习笔记(实现登录注册界面)
- Qt学习笔记——窗口
- QT学习笔记----QT多窗口编程
- qt登录界面及窗口跳转
- Qt5基础(三)Qt登录对话框学习笔记
- Qt学习笔记——窗口的布局
- JavaScript基础—仿千牛登录界面
- QT学习笔记:窗口部件
- QT学习笔记----登录对话框
- QT基础学习笔记
- QT基础学习笔记
- QT基础学习笔记
- Qt基础——自适应窗口大小
- Qt5基础(二)编写Qt多窗口程序笔记
- IOS学习笔记——基础界面 (一)
- IOS学习笔记——基础界面 (二)
- Bootstrap 按钮组
- android学习路线
- hive参数——深入浅出学Hive
- opencv2.4.9+VS2013+64位电脑,release出错问题
- 2015,会是这些CEO在任的最后一年吗?
- 【Qt学习笔记】001 基础篇——多窗口&登录界面
- 做一个简易的录音器
- map用法详解
- Error: could not open `C:\Java\jre7\lib\amd64\jvm.cfg';JAVA_HOME环境变量失效的解决办法
- HDOJ 1799 循环多少次? (排列组合+打表)
- IOS之开发者申请测试证书步骤
- Android 6.0(API级别23)包括各种系统变化和API的行为变化
- Linux的用户和用户组管理
- 每天深入一个linux命令