QT界面编辑

这篇博客介绍了如何使用QT进行游戏登录界面的设计,包括新建QT界面工程、设计界面元素、设置文字样式、隐藏密码、美化界面以及插入图片和动图的方法。还提到了在QT中创建子界面的操作步骤,以及如何通过槽链接实现界面间的跳转。此外,博客还讨论了在QT中播放音频、插入动图和处理文件路径等问题。
摘要由CSDN通过智能技术生成
**

QT界面编辑

**
QT建立游戏登录界面
1、新建一个界面(app)工程

在这里插入图片描述
点击 “欢迎” 选项,点击 “New Project” 弹出新建项目界面,在项目中选择 Application -> QT Widgets Application 选项,再点击 choose ,在弹出的新界面中修改工程名称,点击下一步 -》kit selection 界面默认点击下一步-》类信息界面中进行类名选择:Widget,下一步 -》新界面点击完成;工程建立完毕。
在这里插入图片描述

2、对游戏界面进行设计
2.1打开设计界面
在这里插入图片描述
点击“ 编辑” ,打开Forms 目录下的 .ui文件,弹出如下框图
在这里插入图片描述

2.2 设计界面的编辑
line Edit托选账号框;placeholder设置文字背景
在这里插入图片描述
在这里插入图片描述
设置文字类型和大小
在这里插入图片描述

设置文字颜色
选中目标,右键打开列表,选择:改变目标样式,点击箭头处,选择color。
在这里插入图片描述
隐藏密码:设置密码为隐藏模式

在这里插入图片描述
规范化、美化界面
在这里插入图片描述

利用上述六大工具可对界面进行美化。美化结果如下图

在这里插入图片描述

2.3插入图片和动图
如何将图片放置于工程中?
(1)将图片放到工程文件目录下,如下图
在这里插入图片描述

(2)创建工程资源文件
在工程新建一个资源文件

在这里插入图片描述
在这里插入图片描述
填写资源文件的名称:hh

在这里插入图片描述

点击完成即可获取资源文件:hh.qrc

(3)添加文件进入工程的资源文件
在这里插入图片描述
首先要添加前缀,才能添加外部的资源进入资源文件,只有新建的资源文件第一次添加外部资源时才需要先添加前缀,否则只需添加文件就好了。点击Open With-》资源编辑器即可进入添加前缀、文件页面。

3、建立子界面
选中工程 点击右键 添加新文件
在这里插入图片描述
在这里插入图片描述

进行界面模板选择,一般选择 Widgei 模式(考虑模态:Dialog with Buttons和非模态:Widgei的选择)
在这里插入图片描述
修改类名,只用修改它。改成你想要的名字,英文名,下一步---->完成。成功在工程中创建子界面。

4、界面链接
在这里插入图片描述
例如:点击登录后进入子界面;操作步骤:
右键点击登录,在弹出框中选择转到槽——>
在这里插入图片描述
点击ok后对应界面程序文件.cpp会生成槽链接函数,如下:
在这里插入图片描述
在函数中写入跳转函数,即可通过槽链接函数跳转至指定界面。

设计页面过程中遇到的问题
1、怎样输入文件路径
以字符串形式输入:即“ D:/qt/qt.c/Game_Login/dnfmusic.WAV ”
目录之间以斜杠隔开。
2、添加头文件注意事项
有时候不是添加一个 #include 就行了
在这里插入图片描述

有一些头文件需要在.pro文件中添加QT += ****;如上图,不然的话头文件就回添加不成功。
3、定义全局变量
在对应的头文件的类中的public:
在这里插入图片描述

4、自定义函数怎么写?
自定义函数要在.h文件中进行编写
在这里插入图片描述
5、如何使用connect 函数实现返回上一层界面?
QMessageBox::information(this,“提示”,“登录成功”);
Yugame *w = new Yugame(); //建立类指针,指向构建的新界面(即子界面)
//建立信号和槽的连接,connect(mediaObject,signal(finish(),this,slot(MusicOn()))) ;
//connect(w, SIGNAL(my_type()), this, SLOT(show())); //若是my_type() 被W界面的触发 ,则会触发connect函数,执行this下的show();

w->setGeometry(this->geometry());  //geometry是子界面的尺寸还有位置信息
w->show(); //显示子界面

sound->stop(); //关闭音频
connect(w, SIGNAL(my_type()), this, SLOT(show()));
connect(w, SIGNAL(my_type()), sound, SLOT(play()));
this->hide();   //隐藏登录界面;

connect(w, SIGNAL(my_type()), this, SLOT(show()));

由程序可知,在connect函数中:
W:子界面的指针,Yugame 为创建子界面时的申请的类名;Yugame *w = new Yugame(); 即为创建一个类指针,且指针链接到构建的子界面。

my_type():自定义函数

connect(w, SIGNAL(my_type()), sound, SLOT(play()));
意思就是:在W界面中,如果my_ttype()函数被使用,则会返回上一界面执行sound->play();
子界面应用自定义函数触发connect函数的做法:
emit my_type(); // emit引用my_type(),触发connect函数

6、如何播放音频?
在.pro中加入:QT += multimedia
在程序中添加头文件 :#include or #include “QMovie”
在父界面程序中添加:(在声明全局变量:QSound *sound;的情况下)
#if 1 //动态播放模式,且设为无线循环播放
sound = new QSound(“D:/qt/qt.c/Game_Login/dnfmusic.WAV”,this); //构建 QSound 对象,即构建播放对象
//sound->setLoops(-1); //设置为无限循环播放,注意:要先把播放次数设置放在sound->play();前
sound->play(); //播放
sound->setLoops(10); //设置循环播放次数 为10次
注:dnfmusic.WAV 为资源文件内的音频

7、如何插入动图?
在程序中添加头文件 :#include or #include “QMovie”
在父界面程序中添加:
ui->label_4->setScaledContents(true);
QMovie *movie = new QMovie(":/dnffengshen.gif");
ui->label_4->setMovie(movie);
movie->start();
注::/dnffengshen.gif 为资源文件内的动图
8、如何在跳转进入下一界面时关闭当前界面背景音乐?
首先,一定要设置QSound 的全局变量,不然没法引用stop()函数关闭音频;
其次,要将stop()函数放在槽链接函数里头,最好放在子界面类指针的后面。
最后,是否在析构函数中删除音频对象,取决于是否会返回界面。

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

<

好的,下面我将为您详细介绍如何在Qt界面编辑一个GPIO检测界面。 1. 创建Qt项目 首先,您需要打开Qt Creator,创建一个新的Qt Widgets应用程序项目。在新建项目对话框中,选择“Qt Widgets应用程序”模板,并设置项目的名称和路径。然后,点击“下一步”按钮,选择您需要的桌面系统和编译器,最后点击“完成”按钮创建项目。 2. 添加界面元素 在Qt Creator的“设计”模式下,您可以向界面中添加各种元素,例如按钮、标签、文本框等。在本例中,我们需要添加一个按钮和一个标签。 首先,选择“按钮”元素,拖动到界面中。然后,选择“标签”元素,同样拖动到界面中。您可以通过属性编辑器来设置这两个元素的属性,例如名称、大小、位置等。 3. 添加槽函数 接下来,我们需要为按钮添加一个槽函数,用于触发GPIO检测功能。在Qt Creator的“槽”模式下,选择您刚才添加的按钮,然后右键单击选择“添加槽函数”。在弹出的对话框中,输入槽函数的名称,然后点击“确定”按钮。 在槽函数中,您需要调用GPIO检测的代码。例如,您可以编写以下代码: ``` #include "gpio.h" void MainWindow::on_btn_check_clicked() { // 调用GPIO检测代码 int status = gpio_check(); // 更新标签的文本 ui->label_status->setText(QString("GPIO状态:%1").arg(status)); } ``` 在这个例子中,我们调用了名为gpio_check()的函数来检测GPIO的状态。检测完成后,我们将状态值更新到标签的文本中。 4. 处理线程安全问题 最后,我们需要处理线程安全问题。因为GPIO检测是一个耗时的操作,我们需要将其放在一个单独的线程中进行,以避免阻塞界面的主线程。 在这里,我们可以使用Qt的信号和槽机制来实现线程间通信。具体地,我们可以将GPIO检测的代码放在一个单独的线程中运行,并通过信号来将结果传递给主线程。 例如,您可以编写以下代码: ``` #include <QThread> class GpioThread : public QThread { Q_OBJECT public: GpioThread(QObject* parent = nullptr) : QThread(parent) {} signals: void gpioChecked(int status); protected: void run() override { // 在这里运行GPIO检测代码 int status = gpio_check(); // 发送信号,将结果传递给主线程 emit gpioChecked(status); } }; ``` 在这个代码中,我们创建了一个名为GpioThread的类来运行GPIO检测代码。在run()函数中,我们调用gpio_check()函数来检测GPIO的状态,并通过信号gpioChecked()将结果传递给主线程。 接下来,在槽函数中,我们可以创建一个GpioThread对象,并启动它来执行GPIO检测代码。在GpioThread对象的gpioChecked()信号中,我们更新标签的文本。 例如,您可以编写以下代码: ``` void MainWindow::on_btn_check_clicked() { // 创建GpioThread对象 GpioThread* thread = new GpioThread(this); // 连接gpioChecked()信号到槽函数 connect(thread, &GpioThread::gpioChecked, this, &MainWindow::on_gpio_checked); // 启动线程 thread->start(); } void MainWindow::on_gpio_checked(int status) { // 更新标签的文本 ui->label_status->setText(QString("GPIO状态:%1").arg(status)); } ``` 在这个代码中,我们在槽函数on_btn_check_clicked()中创建了一个GpioThread对象,并连接它的gpioChecked()信号到槽函数on_gpio_checked()。然后,我们启动线程来执行GPIO检测代码。 在槽函数on_gpio_checked()中,我们更新标签的文本,显示GPIO的状态。 至此,您已经完成了Qt界面编辑形成GPIO检测界面的过程。希望以上内容对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值