Qt的基本语法及其使用(一)

  1. Qt的概念:Qt是通用的C++开发界面框架(C++图形用户界面 应用程序开发框架),既可以开发GUI程序也可以开发开发非GUI程序,Qt是面向对象的框架,使用特殊的代码生成扩展。

  1. Qt的历史:1991由QT公司研发,2008年被诺基亚收购,2012年被Digia收购。

  1. Qt模块:

  • Qt Core模块: 是QT类库的核心,所有其他模块都依赖这个模块

  • Qt Gui模块: 提供GUI程序的基本功能

  • Qt Network模块:提供跨平台的网络功能

  • Qt Widgets模块:提供创建用户界面的功能

  1. Qt的基本使用:

Qt包含代码区和ui设计区

  1. ui设计区包含:

  • 控件区

  • 按钮类---QPushButton

  • 行输入框------QLineEdit

  • 标签显示类 --QLabel

每一个控件在被拉到设计框中都会在ui_mywin.h显示(执行后显示),而每一个控件都有槽操作,意思是对这个控件生成对应的代码块从而操纵这个控件。(比如buttons控件,如果想要对buttons按下所产生的信号进行操作,则转到槽后会自动创建一块代码区,即可在里面操作).

  1. Qt的函数:

Qstring的使用方式

#include<QDebug>        //输出头文件
qDebuf()<<text;         //速出text
//Qstring的用法
//初始化字符串
QString s1;
s1 = "hello;            //赋值
QString s2("hello");    //赋值
s2.clear();             //清空s2
QString s3("123456");    
s3.size();              //计算s3的长度
s3.append(“789”);            //追加数据“789”

//字符串拼接加转换
int h=9,m=34,s=20;
QString s4 = Qstring::fromUtf8("当前时间是 %1:%2:%3").arg(h).arg(m).arg(s);
qDebug()<<s4;           //输出是:当前时间是 9:34:20
                        //fromLocal8Bit 字符串转换为本地编码 也就是可以汉字显示
//字符串切割
QString str5("2023/3/1");
QStringList list = str5.split("/");        //List容器
for(int i = 0; i<list.size(); i++)
{
    qDebug()<<list[i];            
}

//判断字符串是否以指定的字符串结尾,判断后缀名
str6 = "1.bmp";
if(str6.endsWith(".bmp")
    qDebug()<<"is bmp";

//字符串转换
//整形转换为字符串
int val = 123;
QString s7 = QString::number(val);
//将字符串转换为整数
int data = s7.toInt();
qDebug()<<data;
//字符串QString 与 char *之间的转换
QString s8("hello");
char *str = s8.toLocal8Bit().data();
qDebug()<<str;
//字符串QString 转换成 C++中的string
std::string s9 = s8.toStdString();
qDebug()<<s9.c_str();                //QT没有做C++的string的重载,所以要.c_str();

//迭代器进行遍历
for(QString::iterator it = s9.begin(); it!=s9.end(); it++)
{
    qDebug()<<*it;
}

//字符串查找或包含
QString str10 = hello 123;
QRegExp re([0-9]{3,});    //使用正则表达式 需要头文件#include<QRegExp>
if(str4.contains(re))
    qDebug()<<yes;
else 
    qDebug()<<no;

点击按钮弹出对话框/提示框

//这样的话当你点击按钮发送信号的时候会弹出一个提示框,提示内容就是括号里面内容
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec();
//扩展
QMessageBox msgBox;
msgBox.setText(QString::fromUtf8("注册成功"));
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec();

自定义对话框/提示框

右击项目名->add new->Qt->Qt设计师界面类->Dialog with Buttons Botton(前三个可选)->一直点下一步->自动生成对话框ui界面

模态和非模态:

模态:模态的方式调用对话框,指的是必须要关闭了对话框之后,原来的界面才能操作

非模态:与模态相反,可以任意操作

//自定义对话框
Dialog *msgDialog = new Dialog(this);
msgDialog->exec();     //模态
//msgDialog->exec();    //非模态
  1. 多界面编程的思路:

  • 实例化 另一个界面的对象

  • 显示你要跳转的界面

  • 关闭当前界面或者隐藏当前界面

void MyWindow::on_pushButton_2_clicked()      //父窗口
{
    //把当前父窗口指针this传递给 子窗口
    MainWindow *sy = new MainWindow(this);
    //窗口关闭的时候自动销毁
    sy->setAttribute(Qt::WA_DeleteOnClose);
    //2、显示你要跳转的界面
    sy->show();
    //3、关闭当前界面或者隐藏当前界面
    //关闭指的是 当前界面 已经关闭了,无法返回
    //隐藏指的是 当前界面 只是被隐藏起来了,后面还可以进行返回
    this->hide();
}

void MainWindow::on_pushButton_clicked()    //子窗口
{
    //1、先获取 父窗口 (Loginwidget) 的对象指针ss
    QWidget *ss = this->parentWidget();
    //2、显示
    ss->show();
    //3、关闭当前文件
    this->close();
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值