Qt的概念:Qt是通用的C++开发界面框架(C++图形用户界面 应用程序开发框架),既可以开发GUI程序也可以开发开发非GUI程序,Qt是面向对象的框架,使用特殊的代码生成扩展。
Qt的历史:1991由QT公司研发,2008年被诺基亚收购,2012年被Digia收购。
Qt模块:
Qt Core模块: 是QT类库的核心,所有其他模块都依赖这个模块
Qt Gui模块: 提供GUI程序的基本功能
Qt Network模块:提供跨平台的网络功能
Qt Widgets模块:提供创建用户界面的功能
Qt的基本使用:
Qt包含代码区和ui设计区
ui设计区包含:
控件区
按钮类---QPushButton
行输入框------QLineEdit
标签显示类 --QLabel
每一个控件在被拉到设计框中都会在ui_mywin.h显示(执行后显示),而每一个控件都有槽操作,意思是对这个控件生成对应的代码块从而操纵这个控件。(比如buttons控件,如果想要对buttons按下所产生的信号进行操作,则转到槽后会自动创建一块代码区,即可在里面操作).
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(); //非模态
多界面编程的思路:
实例化 另一个界面的对象
显示你要跳转的界面文章来源:https://www.toymoban.com/news/detail-745272.html
关闭当前界面或者隐藏当前界面文章来源地址https://www.toymoban.com/news/detail-745272.html
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();
}
到了这里,关于Qt的基本语法及其使用(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!