Qt学习笔记1:初步认识控件
来源:互联网 发布:soap rest 知乎 编辑:程序博客网 时间:2024/06/05 20:30
初步学习Qt编程,做的第一个小例子,记录下来,鼓励自己
第一步,建立项目文件,基类选择“QDialog”。
第二步,采用自带的界面设计器来设计界面,双击dialog.ui,进入界面设计器Qt Designer编辑状态。具体内容不详细介绍了。
设计好的界面如下图所示:
第三步,“dialog.h”代码
#ifndef DIALOG_H#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QWidget *parent = 0); ~Dialog();private: Ui::Dialog *ui;private slots: void on_lineEdit_textChanged();};#endif // DIALOG_H
其中:void on_lineEdit_textChanged()表示信号和槽自动关联,由字符on和发射信号的部件lineEdit和信号函数textChanged组成,改变文本编辑框内容信号QLineEdit::textChange(QString)产生后,会与Dialog::on_LineEdit_textChange()槽关联起来。#include "dialog.h"#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog){ ui->setupUi(this); QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}"); ui->lineEdit->setValidator(new QRegExpValidator(regExp,this)); connect(ui->okButton,SIGNAL(clicked()),this,SLOT(accept())); connect(ui->cancelButton,SIGNAL(clicked()),this,SLOT(reject()));}Dialog::~Dialog(){ delete ui;}void Dialog::on_lineEdit_textChanged(){ ui->okButton->setEnabled(ui->lineEdit->hasAcceptableInput());}
其中:ui->setupUi(this);会自动建立下列的signal-slot的连接:connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(on_lineEdit_textChanged()));QRegExp regExp ("[A-Za-z][1-9][0-9]{0,2}");是正则表达式,括号内的内容描述的是“字符串”的特征,验证另一个“字符串”是否符合这个特征,此处的特征为第一个数必须为字母A-Z或者a-z,即大小写均可;第二个为1-9的数字;再接0-2位0-9范围内的数字。
on_lineEdit_textChanged()是实现槽函数,此槽函数会根据输入的文字是否有效来启用或停用“OK”按钮。
阅读全文
0 0
- Qt学习笔记1:初步认识控件
- Qt学习笔记02【初步认识信号槽】
- IOS学习笔记 1:IOS项目开发初步认识
- QT - NetWork 初步认识
- 初步认识qt
- C++ 学习笔记_0001_初步认识
- Hibernate学习笔记<一> 初步认识Hibernate
- C++学习 【1】 C++的初步认识
- tensorflow学习(1)初步认识tensorflow
- 一步一步学习:1、Spring-boot初步认识
- Vue学习记录-1-初步认识
- H264学习初步认识
- 初步认识机器学习
- 学习笔记<4>初步控件布局
- J2EE学习笔记--Struts初步认识
- FreeMarker学习笔记(一) 初步认识Freemarker的模板
- PowerPC-MPC603e内核学习笔记之初步认识
- FreeMarker学习笔记(一) 初步认识Freemarker的模板
- 最长公共子序列 java 代码实现
- leetcode 268r
- 「游族杯」上海市高校程序设计邀请赛暨华东师范大学第九届 ECNU Coder 程序设计竞赛 (重现)
- java各种类型占字节数
- QML ListView悬浮标题栏
- Qt学习笔记1:初步认识控件
- Java重写与重载
- PyQt5学习记录(2)---QMainWindow菜单栏、状态栏和工具栏
- VMware虚拟机三种网络模式详解-Host-Only(仅主机模式)
- 链队列的定义及相关操作
- 44. Struts2_表单的重复提交问题
- Eclipse实用快捷键个人总结
- Makefile中的死循环问题--学习李云《驾驭Makefile》中的疑惑解决
- jsp所需基础