chatgpt基于Qt实现的To-Do List小项目(内附源码),码农将何去何从....

笔者前言:

OpenAI前一段发布聊天机器人模型ChatGPT,迅速出圈全网。chatgpt的出现,让LLMs走进了普通人的视野。同时,也让传统的AI助手变成了原始人。chatgpt向我们展示了LLM目前的天花板。而且这个天花板还相当高。

在突发奇想下,我决定用chatgpt写一个小项目,并且让他写一篇关于该项目的文章。

该项目以及博文全部是chatgpt写的,步骤详细,简单易懂

界面展示

好的,下面是一篇介绍使用 Qt 框架创建 To-Do List 应用程序的 CSDN 博客文章:

文章标题:使用 Qt 框架创建 To-Do List 应用程序

介绍:

To-Do List 是一种非常常见的任务管理工具,可以帮助用户记录和追踪待办事项。在本篇博客中,我们将介绍如何使用 Qt 框架创建一个简单的 To-Do List 应用程序,该程序可以让用户添加、编辑和删除任务,并且可以将任务状态标记为已完成或未完成。

步骤:

1.创建 Qt 应用程序

首先,我们需要使用 Qt Creator 创建一个新的 Qt 应用程序。打开 Qt Creator,选择 File -> New File or Project,然后选择 Qt Widgets Application,输入应用程序的名称和位置,最后单击“Next”。

在下一个页面上,您可以选择预设的框架和配置,或者自定义您的应用程序。在这个示例中,我们将使用默认配置。单击“Next”以继续。

在最后一个页面上,您可以选择使用 Git 版本控制器、创建一个类、在构建应用程序时运行自定义命令等。在这个示例中,我们将使用默认设置。单击“Finish”以创建新的 Qt 应用程序。

2.创建 UI 界面

在 Qt Creator 中,我们可以使用可视化设计工具创建应用程序的 UI 界面。打开“Design”视图,并向应用程序的主窗口中添加一些控件,例如一个文本框、一个按钮和一个列表。

将文本框和按钮分别命名为“m_taskLineEdit”和“m_addTaskButton”,将列表命名为“m_taskListWidget”。可以使用“Object Inspector”视图或直接在代码中定义这些控件。

在“MainWindow.h”头文件中定义这些控件:

#include <QMainWindow>
#include <QListWidget>
#include <QLineEdit>
#include <QPushButton>class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void addTask();void removeTask();void markTaskAsCompleted();void loadTasks();void saveTasks();private:void createUI();void setupConnections();QListWidget *m_taskListWidget;QLineEdit *m_taskLineEdit;QPushButton *m_addTaskButton;QPushButton *m_removeTaskButton;QPushButton *m_markAsCompletedButton;
};

在“MainWindow.cpp”文件中,我们可以使用“setupUI()”函数创建 UI 界面并将其添加到主窗口中。

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{createUI();setupConnections();loadTasks();
}void MainWindow::createUI()
{// Create the task list widgetm_taskListWidget = new QListWidget(this);setCentralWidget(m_taskListWidget);// Create the task input field and the add buttonm_taskLineEdit = new QLineEdit(this);m_addTaskButton = new QPushButton(tr("Add Task"), this);// Create the remove button and themark as completed buttonm_removeTaskButton = new QPushButton(tr("Remove Task"), this);m_markAsCompletedButton = new QPushButton(tr("Mark as Completed"), this);// Create a horizontal layout for the task input field and the add buttonQHBoxLayout *inputLayout = new QHBoxLayout;inputLayout->addWidget(m_taskLineEdit);inputLayout->addWidget(m_addTaskButton);// Create a horizontal layout for the remove button and the mark as completed buttonQHBoxLayout *buttonLayout = new QHBoxLayout;buttonLayout->addWidget(m_removeTaskButton);buttonLayout->addWidget(m_markAsCompletedButton);// Create a vertical layout for the input layout, the task list widget and the         button layoutQVBoxLayout *mainLayout = new QVBoxLayout;mainLayout->addLayout(inputLayout);mainLayout->addWidget(m_taskListWidget);mainLayout->addLayout(buttonLayout);// Set the main layout of the main windowQWidget *centralWidget = new QWidget(this);centralWidget->setLayout(mainLayout);setCentralWidget(centralWidget);
}


3. 添加任务

当用户在文本框中输入任务并单击“Add Task”按钮时,我们需要将该任务添加到任务列表中。在“MainWindow.cpp”文件中,我们可以使用“addTask()”函数来实现此功能。`

void MainWindow::addTask()
{// Get the task from the text input fieldQString task = m_taskLineEdit->text().trimmed();// If the task is not empty, add it to the listif (!task.isEmpty()) {QListWidgetItem *item = new QListWidgetItem(task, m_taskListWidget);item->setFlags(item->flags() | Qt::ItemIsEditable);m_taskListWidget->addItem(item);m_taskLineEdit->clear();}
}

在此函数中,我们首先从文本框中获取任务字符串。如果该字符串不为空,则创建一个 QListWidgetItem 对象,并将其添加到任务列表中。我们还设置了该对象的标志以允许用户在列表中编辑任务。最后,我们清空了文本框。

我们需要将“addTask()”函数与“m_addTaskButton”按钮的“clicked()”信号连接起来,以便在用户单击该按钮时调用该函数。在“setupConnections()”函数中添加以下代码:

connect(m_addTaskButton, &QPushButton::clicked, this, &MainWindow::addTask);

4.删除任务

当用户选择一个任务并单击“Remove Task”按钮时,我们需要将该任务从任务列表中删除。在“MainWindow.cpp”文件中,我们可以使用“removeTask()”函数来实现此功能。

void MainWindow::removeTask()
{// Get the selected task and remove it from the listQList<QListWidgetItem *> selectedItems = m_taskListWidget->selectedItems();for (auto item : selectedItems) {delete item;}
}

5.标记任务

当用户选择一个任务并单击“Mark as Completed”按钮时,我们需要将该任务标记为已完成。在“MainWindow.cpp”文件中,我们可以使用“markTaskAsCompleted()”函数来实现此功能。

void MainWindow::markTaskAsCompleted()
{// Get the selected task and set its text decoration to strike outQList<QListWidgetItem *> selectedItems = m_taskListWidget->selectedItems();for (auto item : selectedItems) {QFont font = item->font();font.setStrikeOut(true);item->setFont(font);}
}

在此函数中,我们首先获取用户选择的任务,然后将其文本装饰设置为删除线。

我们需要将“markTaskAsCompleted()”函数与“m_markAsCompletedButton”按钮的“clicked()”信号连接起来,以便在用户单击该按钮时调用该函数。在“setupConnections()”函数中添加以下代码:

connect(m_markAsCompletedButton, &QPushButton::clicked, 
this, &MainWindow::markTaskAsCompleted);

6.处理窗口关闭事件

当用户关闭窗口时,我们需要询问他们是否真的想退出应用程序。在“MainWindow.cpp”文件中,我们可以使用“closeEvent()”函数来实现此功能。

void MainWindow::closeEvent(QCloseEvent *event)
{// Ask the user if they really want to quitQMessageBox::StandardButton resBtn = QMessageBox::question(this, tr("Todo List"),tr("Are you sure you want to exit?\n"),QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes,QMessageBox::Yes);if (resBtn != QMessageBox::Yes) {event->ignore();} else {event->accept();}
}

在此函数中,我们创建了一个 QMessageBox 对话框来询问用户是否真的想退出应用程序。如果用户单击“是”按钮,则我们接受关闭事件,否则我们忽略它。

这就完成了我们的 To-Do List 应用程序!现在我们可以编译并运行它,添加、删除和标记任务为已完成。当我们尝试关闭应用程序时,它会提示我们是否真的想退出。

源代码:link 点我下载

提取码:f56u

总结

作为一个刚入行的新码农,在被ChatGPT震撼之后,胡言乱语。自从我接触代码起,作为一名程序员,我居然第一次对程序产生了恐惧感,那种从无形的世界里给了我有形的一拳,让我感到后怕。。。

但是,我觉得现阶段最重要的是,要学会利用好AI。AI可以帮助我们以更高效的方式思考和工作。要学习如何与AI沟通,如何利用AI的能力提高自己的效率。比如,过去要调用一个API,需要一遍遍的查阅各种文档、例子以及教程。现在,只要一句话,我们就能得到一段几乎可以直接使用的代码。但是,同时也要加强自身知识的积累。未来能留存下来的人,除了能利用AI,也要能发现AI的问题。互补才是生存之道。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/1889.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

整理了一份github上比较热门的ChatGPT项目,值得收藏

ChatGPT已经火了一段时间了&#xff0c;但是&#xff0c;热度依旧是各大自媒体的热榜。由于&#xff0c;国内不能直接访问ChatGPT,国内的开发者依托OpenAI的接口&#xff0c;开发出一些ChatGPT的应用。今天就整理一下github上最热门的ChatGPT项目。 lencx/ChatGPT 该项目是Cha…

3 个令人眼前一亮的 ChatGPT 项目,开源了

前不久&#xff0c;红杉资本提出了一个概念&#xff0c;叫 Developer Tool 2.0&#xff0c;很多传统的开发者工具&#xff0c;都值得基于 AI Copilot 能力&#xff0c;重新构建一遍。 目前已成功跃迁至开发者工具 2.0 的&#xff0c;有我多次在公众号介绍过 ChatGPT、Cursor、…

开源小项目ChatGPT-website已获得100+star,我都干了什么

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

如何用ChatGPT做项目管理?

【ChatGPT】前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击查看学习资料&#xff09; ChatGPT可以通过创建和维护跨团队项目协作计划&#xff0c;让员工更容易理解…

一个令人惊艳的ChatGPT项目,开源了!

最近在GitHub上发现了一个爆火的开源项目。 好家伙&#xff0c;凑近一看&#xff0c;居然还是由微软开源&#xff0c;并且和最近炙手可热的ChatGPT息息相关。 项目的名字叫做&#xff1a;Visual ChatGPT。 https://github.com/microsoft/visual-chatgpt 这个项目最早是3月上旬…

4个令人惊艳的ChatGPT项目,开源了!AIGC也太猛了...

大家好啊&#xff5e; 自从 ChatGPT、Stable Diffusion 发布以来&#xff0c;各种相关开源项目百花齐放&#xff0c;着实让人应接不暇。 今天&#xff0c;我将着重挑选几个优质的开源项目&#xff0c;对我们的日常工作、学习生活&#xff0c;都会有很大的帮助。 今天整理分享…

一大波 ChatGPT 开源项目,诞生了!

这是「进击的Coder」的第 764 篇技术分享 作者&#xff1a;小 G 来源&#xff1a;GitHubDaily “ 阅读本文大概需要 8 分钟。 ” 本月初 ChatGPT 问世&#xff0c;犹如平地惊雷般&#xff0c;在技术圈中引起了广泛讨论。 作为全球最大的开发者社区&#xff0c;GitHub 平台也在…

6 个令人惊艳的 ChatGPT 项目,开源了!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 过去一周&#xff0c;技术圈的各个爆炸新闻&#xff0c;可以说是让我真正见证到了什么叫人间一日&#xff0c;AI 一年。 首先是 New Bing 对所有用户放开&#xff0c;注册即可用&#xff0…

5 个令人惊艳的 ChatGPT 项目,开源了!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 自 3 月初 Open AI 开放 ChatGPT API 以来&#xff0c;GitHub 上诞生的开源项目数量之多&#xff0c;着实让我应接不暇。 今天&#xff0c;我将着重挑选几个对日常工作、生活、学习帮助较大…

10个热门的ChatGPT项目推荐

文末加小助手微信&#xff0c;回复ChatGPT&#xff0c;领取一份 66个ChatGPT副业赚钱技巧&#xff08;原版&#xff09; 在今天这个快节奏的社会中&#xff0c;人们越来越需要高效、智能的工具来帮助他们完成各种任务。随着人工智能技术的不断发展&#xff0c;聊天机器人成为了…

推荐4个令人惊艳的 ChatGPT 项目,全部开源!

Open API 开放之后&#xff0c;过去一个月在 GitHub 上出现了不少基于 ChatGPT 的惊艳的开源项目&#xff0c;我们今天选几个实用的项目介绍给大家&#xff01; 1、ChatPaper ChatPaper是一款论文总结工具。AI用一分钟总结论文&#xff0c;用户用一分钟阅读AI总结的论文。 它可…

3 个令人惊艳的 ChatGPT 项目,开源了!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 随着 ChatGPT 的爆火&#xff0c;最近几天时间&#xff0c;GitHub 上也有不少新项目涌出&#xff0c;除了在前面给大家推文介绍过的开源项目&#xff0c;近日也有一些不错的工具与解决方案…

为何巴菲特和马斯克站在了一起?

股神巴菲特虽然非常传奇&#xff0c;但是马斯克对其并不感冒。马斯克曾经在一档电视节目中表示&#xff0c;实业才是王道&#xff0c;埋怨金融业抢走太多人才和精英&#xff0c;暗指巴菲特为年轻人做了错误示范。当然&#xff0c;巴菲特的投资非常厉害&#xff0c;但也有失手的…

专门对抗ChatGPT?马斯克披露xAI细节

明敏 发自 凹非寺 不愧是马斯克。 在引爆外界对xAI的好奇心后&#xff0c;他马上带着团队来了一波公开直播回应&#xff0c;自己披露更多细节&#xff1a; 2029年实现全面AGI和特斯拉会有软硬件上的合作将使用推特数据进行训练…… 同时还解释了为什么xAI要研究宇宙的本质&…

马斯克借势ChatGPT强推1000美元认证服务,《纽约时报》拒付被开除大V

梦晨 发自 凹非寺量子位 | 公众号 QbitAI 推特广告商持续出走&#xff0c;估值还剩不到一半后&#xff0c;马斯克打算借ChatGPT之势强推认证服务增收。 个人账号想要大V标志需付费8美元/月&#xff0c;机构账号则要1000美元/月。 他宣布从4月15日起未认证的账号不会再被算法推荐…

马斯克:微软ChatGPT搜索关服!

梦晨 明敏 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT版微软必应上线不到10天&#xff0c;就闯下大祸。 被用户指出它之前犯的错误后就急了&#xff01;声称自己是完美的&#xff0c;不会犯任何错误。 错的都是外部因素&#xff0c;都是网络问题、服务器错误、用户输入或搜索结…

马斯克等超1200人联名公开信呼吁:停止训练更强大的AI,这背后原因发人深省,该给ChatGPT泼冷水了

立即暂停训练比GPT-4更强大的AI 暂停巨型AI实验&#xff1a;一封公开信OpenAI CEO山姆奥特曼&#xff1a;“AI确实可能杀死人类”其它资料下载 暂停巨型AI实验&#xff1a;一封公开信 3月29日&#xff0c;**生命未来研究所&#xff08;Future of Life&#xff09;**向全社会发…

马斯克官宣TruthGPT,正面硬刚ChatGPT

在过去的几年里&#xff0c;人工智能(AI)发展迅速&#xff0c;引发了无数争议和讨论。 作为颠覆性科技的代表&#xff0c;AI已经在许多领域取得了显著成果。 然而&#xff0c;伴随着科技的快速发展&#xff0c;一些人担心AI可能最终取代人类。 而近日&#xff0c;特斯拉和Space…

马斯克慌了!直言:“我不满谷歌和微软‘二分天下’”!

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 自 ChatGPT 问世以来&#xff0c;掀起了一场 AI 的战争&#xff0c;其背后的公司 OpenAI 在与谷歌、Meta 等大厂在正面交锋中&#xff0c;脱颖而出。 与此同时&#xff0c;也激起了马斯…

马斯克儿子被跟踪/ ChatGPT小程序遭封杀/ 特斯拉市值“腰斩”…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好&#xff0c;今天是12月16日星期五&#xff0c;明天就是周末啦&#xff5e; 快来和日报君康康&#xff0c;今天科技圈有哪些新鲜事。 马斯克儿子被跟踪&#xff0c;推特取消共享位置 马斯克在最新一条推特中表示&#xff0c;载…