学习之路

学习之路1

1、编辑tab顺序(焦点顺序)

视图中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pPhYi7ep-1617633520142)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617623949411.png)]

return a.exec();程序进入消息循环,等待可能的输入进行响应。这里就是main()函数将控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候,exec()函数的值就会返回,在exec()函数中,Qt接收并处理用户和系统的事件并且将他们传递给适当的窗口部件

2、概念解释

1、伙伴编辑模式

    QLineEdit *ageLineEdit = new QLineEdit(this);
    ageLineEdit->setGeometry(100,100,100,100);
    QLabel *ageLabel = new QLabel("&Age",this);
    ageLabel->setBuddy(ageLineEdit);
    ageLabel->setFocus();

2、信号和槽

1、类型安全;2、松散耦合
一个类若要支持信号和槽,就必须从QObject或其子类继承,信号和槽不支持对模板的使用
效率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uUeMWD4P-1617633520146)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617625180860.png)]

3、字符串类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mzf6wxKR-1617633520148)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617625396773.png)]

操作字符串

QString str1 = "Welcome";
str1=str1+"to you";
QString str2="hello";
str2+="World";

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMs6Lk5X-1617633520150)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617625571712.png)]

屏蔽
QT_CAST_FROM_ASCII
操作
QString::append()
格式化字符串
QString::sprintf();类似
重要操作
QString str;
str=QString("%1 was born in %2.").arg("John").arg(1982);
这种字符串组合方式,可以处理很多的数据类型,类型安全,完全支持Unicode,并且允许改变%n参数的顺序
2、insert()
3、prepend()
4、replace()

使用场景

掐头去尾
QString::trimmed()
QString::simplified():溢出字符串两端的空白字符,使用单个空格字符代替字符串中出现的空白字符
例如
QString str=" Welcome \t to \n you! ";
str=str.simplified();
查询字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bzQf7HWL-1617633520151)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617626255862.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OoQdLLGD-1617633520152)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617626323988.png)]

3、字符串转换
QString::toInt();

QByteArray
QByteArray::toAscii();
QByteArray::toLatin1();
QByteArray::toLocal8Bit();系统本地编码

NULL字符串和空(empty)字符串的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XR8EoMfj-1617633520153)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617626563155.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BbQ8bYbE-1617633520154)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617626598709.png)]

4、容器类

声明:QObject及其子类是不能够存储在容器中的,
代替方案:存指针
QList
append()
prepend()
insert()
QLinkedList
QVector

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bUh5rXgz-1617633520154)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617626969534.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hHfd6yUY-1617633520155)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617627052538.png)]

在使用Qt编写应用程序时,如果是控制台应用程序,则建议初始化一个QCoreApplication对象;如果是GUI图形用户界面程序,则建议初始化QApplication对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2xLzM1qf-1617633520156)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617627539957.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmziZRFD-1617633520156)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617627597252.png)]

5、QVariant类

QVariant类似于C++的联合(union)数据类型,它不仅能偶保存很多Qt类型的值,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLwvLGGo-1617633520157)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617628096671.png)]

6、常用算法

1、qAbs()绝对值
2、qMax()
3、qRound():函数返回一个与浮点数最接近的整数值
4、qSwap()交换
5、

正则表达式

正则表达式由表达式(expressions)、量词(quantifiers)和断言(assertions)组成
例子
[AEIOU]
[^AEIOU]
[a-z]:表示匹配所有的小写英文字母
2、两次说明表达式出现的次数
x[1,2]表示x至少由一个,至多两个
计算机语言案例,标识符通常要求以字母或下划线开头,后面可以是字母、数字和下划线
"[A-Za-z_]+[A-Za-z_0-9]*"
其中+表示至少出现依次,可以出现多次
*号表示可以出现零次或多次

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XXsjbQxX-1617633520158)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617628608088.png)]

断言:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLNGZjRW-1617633520158)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617628663197.png)]

例子,若要只有using后面是namespace时才匹配using则可以使用
"using(?=E\s+namespace)
此处\s表示匹配一个空白字符"

7、控件

1、按钮组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z4oFAQyh-1617633520159)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617628884744.png)]

Command Link Button:命令链接按钮
Button Box:按钮盒

2、输入控件组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EL8wTXs2-1617633520160)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617629011975.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x46tdpzZ-1617633520161)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617629040927.png)]

    QLabel *datalabel = new QLabel();
    QDateTime *datatime = new QDateTime(QDateTime::currentDateTime());
    datalabel->setText(datatime->date().toString());
    datalabel->setParent(this);

QTimer
    QTimer *time_clock = new QTimer(this);
    static int count = 0;
    connect(time_clock,&QTimer::timeout,this,[=](){
        datalabel->setText(QString::number(count+=1,10));
    });

//开启定时器,并设定始终周期
    time_clock->start(1000);

3、显示控件组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WPEj5RIM-1617633520162)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617629695618.png)]

QTextBrowser提供了几种比较有用的槽
backward()
forward()
home()
可以通过链接这个槽来达到人们常说的翻页效果

4、空间间隔组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uIgmuj5a-1617633520163)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617629904639.png)]

5、布局管理组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BklRUrRb-1617633520163)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617629965995.png)]

6、容器组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SU6ZBztc-1617633520164)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617630008285.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iJVu63wj-1617633520165)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617630083430.png)]

7、项目视图组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BL9Acw4e-1617633520165)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617630150791.png)]

mvc

简单实例

    QSqlTableModel *model = new QSqlTableModel(4,2);
    model->setTable("employee");
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->select();
    model->removeColumn(0);//不显示id
    model->setHeaderData(0,Qt::Horizontal,QObject::tr("Name"));
    model->setHeaderData(1,Qt::Horizontal,QObject::tr("Salary"));
    QTableView *view = new QTableView();
    view->setModel(model);
    view->show();

8、项目控件组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VgJU1tmh-1617633520166)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617630859471.png)]

9、限制输入字元的范围

QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
ui->lineEdit->setValidator(new QRegExpValidator(regExp,this));
要求只允许第一个字元输入大小写英文字母,后面接一位非0的数字,再接0~2位可为0的数字

10、parent-child

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oHik3oU2-1617633520166)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617631767854.png)]

8、隐式共享

写诗复制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zEOKgnR3-1617633520167)(C:\Users\11066\AppData\Roaming\Typora\typora-user-images\1617632004799.png)]

9、WindowFlag枚举类型

Qt::Widget:构造函数默认值,如果新的窗口部件没有父窗口部件,则它是一个独立的窗口,否则就是一个子窗口部件
Qt::Window:无论是否有父窗口部件,新窗口都是一个窗口,通常有一个窗口边框和一个标题栏
Qt::Dialog:新窗口是一个对话框,
Qt::Sheet:新窗口是一个Macintosh表单
Qt::Drawer:新窗口部件是一个Macintosh抽屉
Qt::Popup:新窗口是一个弹出式顶层窗口
Qt::Tool:新窗口是部件是一个工具窗口,通常是一个用于显示工具按钮的小窗口,如果一个工具窗口有父窗口部件,则它将显示在父窗口部件的上面,否则,将相当于使用了Qt::WindowStaysOnTopHint提示
Qt::ToolTip:新窗口部件是一个欢迎窗口(splash screen),它是QSplashScreen构造函数的默认值
Qt::Desktop:新窗口部件是桌面,它是QDesktopWidget构造函数的默认值
Qt::SubWindow:新窗口部件是一个子窗口,而无论该窗口部件是否有父窗口部件,此外,Qt::还定义了一些控制窗口外观的窗口提示(仅对顶层窗口有效)
Qt::MSWindowsFiredSizeDialogHint:为Windows系统上的窗口装饰一个窄的对话边框,通常这个提示用于固定大小的对话框。
Qt::MSWindowsOwnDC:为Windows系统上的窗口添加自身的显示上下文(display context)
Qt::X11BypassWindowManagerHint:完全忽视窗口管理器,它的作用是产生一个根本不被管理无窗口边框的窗口(此事,用户无法使用键盘进行输入,除非手动调用QWidget::activateWindow()函数)
Qt::FramelessWindowHint:产生一个无窗口边框的窗口,此时用户无法移动该窗口和改变它的大小
Qt::CustomzeWindowHint:光比默认的窗口标题提示。
Qt::WindowTitleHint:为窗口装饰一个标题栏。
Qt::WindowSystemMenuHints:为窗口添加一个窗口系统菜单,并尽可能的添加一个关闭按钮。
Qt::WindowMinimizeButtonHint:为窗口添加一个最小化按钮。
Qt::WindowMaximizeButtonHint:为窗口添加一个最大化按钮
Qt::WindowMinMaxButtonsHint:
Qt::WindowContextHelpButtonHint:为窗口添加一个上下文帮助按钮
Qt::WindowStaysOnTopHint:告知窗口系统,该窗口应该停留在所有其他窗口的上面。

Hint:光比默认的窗口标题提示。
Qt::WindowTitleHint:为窗口装饰一个标题栏。
Qt::WindowSystemMenuHints:为窗口添加一个窗口系统菜单,并尽可能的添加一个关闭按钮。
Qt::WindowMinimizeButtonHint:为窗口添加一个最小化按钮。
Qt::WindowMaximizeButtonHint:为窗口添加一个最大化按钮
Qt::WindowMinMaxButtonsHint:
Qt::WindowContextHelpButtonHint:为窗口添加一个上下文帮助按钮
Qt::WindowStaysOnTopHint:告知窗口系统,该窗口应该停留在所有其他窗口的上面。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值