Qt:使用Qt Creator创建Qt Widget程序

1059 篇文章 279 订阅

本教程介绍如何使用Qt Creator创建一个小型Qt应用程序Text Finder。它是Qt UI工具文本查找器示例的简化版本。应用程序用户界面是使用UI设计器从Qt小部件构建的,应用逻辑使用代码编译器以C++方式编写
在这里插入图片描述

创建文件查找器项目

  1. File > New File or Project > Application (Qt) > Qt Widgets Application > Choose
    在这里插入图片描述

打开了Introduction and Project Location对话框

  • 在Name字段中,键入TextFinder
  • 在Create in字段中,选择项目文件的路径
    在这里插入图片描述
  1. 选择Next,打开构建系统对话框
    在这里插入图片描述
    然后选择用于构建和允许项目的构建系统:qmake,cmake,Qbs

  2. 选择Next类信息对话框打开
    在这里插入图片描述

  • Class name字段中,将TextFinder作为类名称
  • Base name字段中,选择QWidget作为基础类类型

注意:会自动更新标题文件、源文件和窗体文件字段以匹配类的名称。

  1. 选择Next套件选择对话框打开
    在这里插入图片描述
    为您的项目选择构建和允许套件

  2. 选择Next项目管理对话框打开
    在这里插入图片描述

  3. 查看项目设置,然后选择完成来创建项目

注意:项目在编辑模式下打开,这些说明被隐藏起来。要返回到这些说明,请打开"帮助"模式。

文本查找器项目现在包含以下文件:

  • main.cpp
  • textfinder.h
  • textfinder.cpp
  • textfinder.ui
  • textfinder.pro
    在这里插入图片描述

填写缺失部分

首先设计用户界面,然后继续填写缺失的代码。最后,添加查找功能。

设计用户界面

在这里插入图片描述

  1. Editor模式下,双击项目视图中的textfinder.ui以启动集成的Qt 设计器
  2. 将以下小部件拖放到窗体中
  • Label (QLabel)
  • Line Edit (QLineEdit)
  • Push Button (QPushButton)
    在这里插入图片描述
    注意:要轻松定位小部件,请使用侧边栏顶部的搜索框。例如,要查找"Label"小部件,则开始键入"lab"一词。
    在这里插入图片描述
  1. 双击Label小部件并输入文件 keyword

  2. 双击Push Button小部件然后输入文本 Find

  3. 在**属性(Properties)**视图,更改对象名以查找按钮
    在这里插入图片描述

  4. 按Ctrl+A(或Cmd+A)选择小部件,并选择水平布局(或在 Linux 或 Windows 上按Ctrl+H,或在 macOS 上按 Ctrl+Shift+H),应用水平布局(QHBoxLayout)。
    在这里插入图片描述

  5. Text Edit小部件(QTextEdit)拖放到表单中。

  6. 选择屏幕区域,然后选择“垂直布局”(或按Ctrl+L)以应用垂直布局(QVBoxLayout)
    在这里插入图片描述
    应用水平布局和垂直布局可确保应用 UI 缩放到不同的屏幕尺寸。

  7. 要在用户选择find按钮时调用find函数,可以使用Qt信号和插槽机制。当特定事件发生时,会发出信号,插槽是响应特定信号时调用的函数。Qt小部件有预定义的信号和插槽,您可以直接从Qt designer使用,要为查找功能添加插槽:
    (1)右键单击find按钮以打开上下文菜单
    (2)选择Go to Slot > clicked(),然后选择ok
    一个私有插槽,on_findButton_clicked()被添加到头文件textfinde.h,一个私有函数,TextFinder::on_findButton_clicked()被

  8. 按Ctrl+S (或Cmd+S)以保存您的更改。

有关使用Qt Designer设计Form的更多信息,请参阅Qt Designer手册

完成头文件

textfinder.h文件已经包含必要的#includes、构造函数、析构函数和Ui对象。您需要添加一个私有函数loadTextFile(),以读取和显示QTextEdit中输入文本文件的内容。

  • 在"Edit"视图中的"Project"视图中,双击textfind.h文件以打开它进行编辑
  • private部分也就是Ui::TextFinder 后面添加一个私有函数,如下代码片段所示:
private slots:
    void on_findButton_clicked();

private:
    Ui::TextFinder *ui;
    void loadTextFile();

完成源文件

现在头文件已经完成了,请转到源文件textfinder.cpp

  • 在"Edit"视图中的"Project"视图中,双击textfind.cpp文件以打开它进行编辑
  • 添加代码,用QFile加载文本文件,用QTextStream读取它,然后使用QTextEdit::setPlainText在textEdit上显示它。下面的代码片段说明了这一点:
void TextFinder::loadTextFile()
{
    QFile inputFile(":/input.txt");
    inputFile.open(QIODevice::ReadOnly);

    QTextStream in(&inputFile);
    QString line = in.readAll();
    inputFile.close();

    ui->textEdit->setPlainText(line);
    QTextCursor cursor = ui->textEdit->textCursor();
    cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1);
}
  • 要使用QFileQTextStream,请在textfinder.cpp中添加下面的#include
#include <QFile>
#include <QTextStream>
  • 对于on_findButton_clicked()插槽,添加代码以提取搜索字符串,并使用QTextEdit::find函数在文本文件中查找搜索字符串。下面的代码片段说明了这一点:
void TextFinder::on_findButton_clicked()
{
    QString searchString = ui->lineEdit->text();
    ui->textEdit->find(searchString, QTextDocument::FindWholeWords);
}
  • 完成上述两个功能后,在构造体中添加一行调用loadTextFile(),如下代码片段示例所示:
TextFinder::TextFinder(QWidget *parent)
    : QWidget(parent), ui(new Ui::TextFinder)
{
    ui->setupUi(this);
    loadTextFile();
}

在uic生成的ui_textfinder.h文件,通过下面代码行自动调用on_findButton_clicked()插槽

QMetaObject::connectSlotsByName(TextFinder);

创建资源文件

您需要一个资源文件(.qrc),在其中嵌入输入文本文件。输入文件可以是任何带有一段文本的.txt文件。创建一个名为输入.txt并将其存储在textfinder文件夹中。

要添加资源文件:

  • 选择File > New File or Project > Qt > Qt Resource File > Choose.
    在这里插入图片描述

  • 打开了一个”文章位置“对话框

    • 在Name字段,输入textfinder
    • 在Path字段,输入”C:\Qt\examples\TextFinder“
      在这里插入图片描述
  • 选择下一步,打开了一个**项目管理(Project Management)**对话

    • 添加到项目(Add to project)字段中,选择TextFinder.pro并选择Finish以打开代码编辑器中的文件
      在这里插入图片描述
  • 选择Add > Add Prefix
    • Prefix字段中,将默认前缀替换为’/’
  • 选择Add > Add Files,定位&添加input.txt
    在这里插入图片描述

编译和运行你的文件

现在,您拥有所有必要的文件,请选择按钮来编译和运行您的程序。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是更详细的步骤: 1. 打开QT Creator,点击 File -> New File or Project,选择 QT Widgets Application,然后点击 Choose。 2. 在项目命名和保存路径的界面,你可以选择自己喜欢的项目名和路径,然后点击 Next。 3. 在类选择界面,选择 Main Window,然后点击 Next。 4. 在项目设置界面,可以选择 QT 版本、C++版本等,然后点击 Next。 5. 最后,点击 Create Project,QT Creator 会为你自动生成一个基本的 QT 窗口应用程序。 现在,你需要在 QT 窗口中添加一个温湿度标签,以及一个定时器。下面是具体的步骤: 1. 在 QT Designer 中打开 MainWindow.ui 文件。QT Designer 是一个可视化的 UI 设计工具,你可以使用它来很方便地创建 UI 界面。 2. 从左侧的 Widget Box 中拖动一个 Label 控件到窗口中,然后在右侧的 Property Editor 中修改它的文本和字体大小等属性。 3. 在左侧的 Widget Box 中选择 QTimer 控件,并将它拖动到 MainWindow.ui 窗口中。然后在右侧的 Property Editor 中修改它的间隔时间等属性。 4. 保存 MainWindow.ui 文件并返回 QT Creator,然后在左侧的项目视图中选择 mainwindow.h,打开它并添加以下代码: ``` private: QLabel *tempLabel; // 温度标签 QLabel *humidLabel; // 湿度标签 QTimer *timer; // 定时器 ``` 5. 在 mainwindow.cpp 中添加以下代码: ``` MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); // 创建温度和湿度标签 tempLabel = new QLabel(this); tempLabel->setText("Temperature: 0"); tempLabel->setGeometry(50, 50, 200, 20); humidLabel = new QLabel(this); humidLabel->setText("Humidity: 0"); humidLabel->setGeometry(50, 80, 200, 20); // 创建定时器 timer = new QTimer(this); timer->setInterval(1000); // 每隔一秒钟更新一次 connect(timer, SIGNAL(timeout()), this, SLOT(updateTempHumid())); // 将定时器的 timeout 信号连接到 updateTempHumid 槽函数 timer->start(); // 启动定时器 } void MainWindow::updateTempHumid() { // 这里需要调用 C/C++ 代码读取温湿度传感器的数据,并将它们更新到 tempLabel 和 humidLabel 标签中 // 例如:tempLabel->setText(QString("Temperature: %1").arg(temp)); // humidLabel->setText(QString("Humidity: %1").arg(humid)); } ``` 在 updateTempHumid 函数中,你需要调用 C/C++ 代码来读取传感器数据,并将它们更新到 QT 窗口中的温度和湿度标签中。 希望这些步骤对你有所帮助。如果你需要更详细的解释或其他问题,请随时问我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值