当前位置: 首页 > wzjs >正文

下载了网站源码动态网站的制作与设计

下载了网站源码,动态网站的制作与设计,如花建站,天津网站建设兼职创建主窗口 MainWindow,添加 QTableView 显示任务 步骤 创建 MainWindow 类,继承自 QMainWindow。在 MainWindow 的构造函数中,创建 TaskModel 和 QTableView,并将 TaskModel 设置为 QTableView 的模型。 头文件 #pragma once…

创建主窗口 MainWindow,添加 QTableView 显示任务

步骤

  • 创建 MainWindow 类,继承自 QMainWindow。
  • 在 MainWindow 的构造函数中,创建 TaskModel 和 QTableView,并将 TaskModel 设置为 QTableView 的模型。

头文件

#pragma once#include <QtWidgets/QMainWindow>
#include "ui_MainWindow.h"
#include"Task.h"
#include<qtableview.h>class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindowClass ui;QTableView* taskTableView; TaskModel* taskModel;
};

为什么成员变量不使用智能指针,因为Qt有自己的一套资源回收机制,通过指定父窗口实现当父窗口销毁时,子窗口一同销毁。

源文件

#include "MainWindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);taskModel = new TaskModel(this);taskTableView = new QTableView(this);taskTableView->setModel(taskModel);setCentralWidget(taskTableView);
}MainWindow::~MainWindow()
{}

实现任务的增删改查功能

步骤

  • 在 MainWindow 中添加按钮用于添加、删除、修改和查询任务。
  • 连接按钮的点击信号到相应的槽函数,在槽函数中调用 TaskModel 的方法实现任务的增删改查。

头文件


class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_addButton_clicked();void on_deleteButton_clicked();void on_updateButton_clicked();void on_searchButton_clicked();private:Ui::MainWindowClass ui;QTableView* taskTableView; TaskModel* taskModel;
};

源文件


void MainWindow::on_addButton_clicked()
{bool ok;QString title = QInputDialog::getText(this, "Add Task", "Title:", QLineEdit::Normal, "", &ok);if (ok && !title.isEmpty()){Task task(-1, title, "", Task::Medium, QDate(), false);if (taskModel->addTask(task)){QMessageBox::information(this, "Success", "Task added successfully.");}else{QMessageBox::critical(this, "Error", "Failed to add task.");}}
}void MainWindow::on_deleteButton_clicked()
{QModelIndexList selectedRows = taskTableView->selectionModel()->selectedRows();if (!selectedRows.isEmpty()){int taskId = taskModel->data(taskModel->index(selectedRows.first().row(), TaskModel::IdColumn)).toInt();if (taskModel->deleteTask(taskId)){QMessageBox::information(this, "Success", "Task deleted successfully.");}else{QMessageBox::critical(this, "Error", "Failed to delete task.");}}
}void MainWindow::on_updateButton_clicked()
{QModelIndexList selectedRows = taskTableView->selectionModel()->selectedRows();if (!selectedRows.isEmpty()){int taskId = taskModel->data(taskModel->index(selectedRows.first().row(), TaskModel::IdColumn)).toInt();bool ok;QString title = QInputDialog::getText(this, "Update Task", "Title:", QLineEdit::Normal,taskModel->data(taskModel->index(selectedRows.first().row(), TaskModel::TitleColumn)).toString(), &ok);if (ok && !title.isEmpty()){Task task(taskId, title, "", Task::Medium, QDate(), false);if (taskModel->updateTask(task)){QMessageBox::information(this, "Success", "Task updated successfully.");}else{QMessageBox::critical(this, "Error", "Failed to update task.");}}}
}void MainWindow::on_searchButton_clicked()
{bool ok;QString searchText = QInputDialog::getText(this, "Search Task", "Search:", QLineEdit::Normal, "", &ok);if (ok){taskModel->setSearchText(searchText);}
}我先创建对应的槽函数,为后面按键信号与槽链接做准备。
http://www.dtcms.com/wzjs/283158.html

相关文章:

  • 自己创建网站赚钱视频号广告推广
  • 国内优秀个人网站百度下载免费安装
  • wordpress网站备案北京百度推广代理
  • 南阳做网站优化哪家好百度关键词怎么刷上去
  • 孟坤WordPress博客主题模板seo网站快速排名外包
  • 用vs2013做网站案例百度推广网站
  • 请人做网站要平台推广是什么
  • 自己做的网站怎么推广百度关键词seo年度费用
  • 镇江百度关键词优化优化英语
  • 医疗网站建设讯息英语培训机构前十名
  • 北京做网站的人新的营销方式有哪些
  • 局域网组网方案关键词推广优化排名如何
  • 国办网站建设规范企业网站营销的实现方式
  • 如何做网站建设方案品牌运营包括哪些内容
  • win2003 做网站服务器营销和销售的区别在哪里
  • 苏州哪家做网站好些搜索引擎营销题库和答案
  • 网站推广实施计划怎么推广公众号让人关注
  • 成都网站建设scyiyou网络营销工具的特点
  • 做网站业务员如何跟客户沟通佣金高的推广平台
  • 中小企业建网站多少钱百度热线
  • 如何做网站新手引导seopc流量排行榜企业
  • 长春网站建设排名函数rank怎么用
  • 网博士自助建站系统下载app搜索优化
  • 网站asp代码网络营销心得体会300字
  • 国产服务器前三强百度移动端优化
  • 龙华专业做网站公司英文seo是什么意思
  • 中国建设行业信息网站信息流广告案例
  • 微信平台app网站建设站长之家网站
  • 上海工程建设交易信息网站网络服务
  • 如何做网站内部优化淘宝权重查询入口