Qt第一课 第一个ui界面

发布于:2024-05-09 ⋅ 阅读:(26) ⋅ 点赞:(0)

首先新建一个项目

![qt左上角的文件,点击新建](https://img-blog.csdnimg.cn/direct/d1b8ff2a4132438fa6ab93e5d304087b.png)

选择qt窗口应用
路径选择
这里选择MinGW 64位
其他都保持默认

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//创建一个Qt应用程序对象的实例
    MainWindow w;//创建一个应用窗对象
    w.show();//进行展示
    return a.exec();//会启动应用程序的事件循环
}

运行结果这样,就代表环境就搭好了

然后进行ui设计

在这里插入图片描述
双击蓝色部分进入ui设计,ui(是User Interface的缩写,意思是用户界面)

在这里插入图片描述
拖这个进行设计,Label意为标签,下图一看便知
在这里插入图片描述
右下角的属性栏可以进行字体大小的修改在这里插入图片描述
这个是文本输入框
在这里插入图片描述

效果就成了这样
在这里插入图片描述

这些标签和输入框我们统一称之为控件,然后我们可以复制和粘贴进行批量控制部件。
在这里插入图片描述
然后咱们运行一下
在这里插入图片描述
这里就会出现一点问题,当然有的人可能不会出现这样的问题,这是为什么呢?明明我设计的好好的,运行出来就不一样了呢?
答案是你的分辨率太高了。

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    //这行代码是用来设置Qt应用程序启用高DPI缩放的属性。
    //在高分辨率屏幕上运行Qt应用程序时
    //启用高DPI缩放可以确保应用程序的界面元素和文本显示清晰和准确,适应屏幕的高分辨率
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

加上QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);代码后,运行结果就跟你设计的一样了。

在这里插入图片描述
然后我们再来添加一个按钮
在这里插入图片描述

这个注册按钮就添加好了
在这里插入图片描述

让按钮真正的有用

至此,我们的界面就差不多搞好了。这个按钮是确实可以点的,但是我们点了,什么用也没有,接下来我们就该想想怎么让它动起来呢?
可以右键注册按钮,点击转到。至于这个槽,咱们后面再讲,埋个坑在这里插入图片描述
选择clicked(),意思为点击嘛,相当于点击这个按钮以后会干什么
在这里插入图片描述

会自动给你生成一个函数,在mainwindow.cpp里面。在这个函数里面就可以写你点击后要执行什么
在这里插入图片描述
咋们这里就来个点击之后,出现一个提示框,写着欢迎您的汉字
这里要加一个提示框的头文件

#include <QMessageBox>
...
void MainWindow::on_pushButton_clicked()
{
    QString res="欢迎"+ui->lineEditName->text()+ui->lineEditJod->text()+"来到地球";
    QMessageBox::information(this,"welcome",res,QMessageBox::Ok);
}

先看效果:
在这里插入图片描述
想必你也运行出来了吧,现在咱们来讲讲为什么吧!
首先qt里面的字符串类型是QString 用法跟C++里面的string用法一样。
ui对象在Qt中起到了连接用户界面和代码逻辑的桥梁作用,是一个主窗口mainWindow的指针,可以指向各个控件进行操控。

到了这里我们就会想,那我怎么用ui去选择我想要控制的控件呢?
答案是每个部件都有一个属于自己的名字,在设计界面的右下角有一个属性栏,可以进行修改,也可以对着控件右键修改。
在这里插入图片描述

然后咱们就可以对自己想控制的控件为所欲为,我这里就用ui->lineEditName->text()去得到输入的文本内容。

然后再讲讲这个提示框:QMessageBox::information(this,“welcome”,res,QMessageBox::Ok);
首先需要包含头文件。
this表示是它的父类窗口就是mainWindow
welcome是信息框的名字
res就是刚刚我们自己定义的字符串,这里就是信息框输出的内容
最后一个参数是信息框的类型,就是确定类型

华丽的分割线!
cout<<---------------------------------------------------------------------<<endl

好了,就到这里吧,我也是一个新手,很多地方可能做的不好,还希望各位大佬,多多照应。
不急慢慢来,有问题可以直接发我,加油!