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

20242817-李臻-课下作业:Qt和Sqlite

实验内容

阅读附件内容,编译运行附件中第一章,第三章的例子。

实验过程

第一章

  • t1实践
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个QWidget窗口QWidget window;window.setWindowTitle("t1"); // 设置窗口标题// 创建一个QPushButton按钮QPushButton hello("Hello, world!");hello.resize(100, 30);// 创建一个垂直布局管理器QVBoxLayout layout;// 将按钮添加到布局中layout.addWidget(&hello);// 设置窗口的主布局window.setLayout(&layout);// 显示窗口window.show();return app.exec();
}

在这里插入图片描述

  • t2实践
#include <QApplication>
#include <QFont>
#include <QPushButton>int main(int argc, char *argv[])
{QApplication app(argc, argv);QPushButton quit("Quit");quit.resize(75, 30);quit.setFont(QFont("Times", 18, QFont::Bold));QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));quit.show();return app.exec();
}

在这里插入图片描述

  • t3实践
#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QWidget>int main(int argc, char *argv[])
{QApplication app(argc, argv);QWidget window;window.resize(200, 120);QPushButton quit("Quit", &window);quit.setFont(QFont("Times", 18, QFont::Bold));quit.setGeometry(10, 40, 180, 40);QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));window.show();return app.exec();
}

在这里插入图片描述

  • t4实践
#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QWidget>class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = 0); // 确保参数是指针类型
};MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{setFixedSize(200, 120);QPushButton *quit = new QPushButton(tr("Quit"), this);quit->setGeometry(62, 40, 75, 30);quit->setFont(QFont("Times", 18, QFont::Bold));connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}

在这里插入图片描述

  • t5实践
#include <QApplication>
#include <QFont>
#include <QLCDNumber>
#include <QPushButton>
#include <QSlider>
#include <QVBoxLayout>
#include <QWidget>class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = 0);};
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{QPushButton *quit = new QPushButton(tr("Quit"));quit->setFont(QFont("Times", 18, QFont::Bold));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(quit);layout->addWidget(new QLCDNumber(2));layout->addWidget(new QSlider(Qt::Horizontal));layout->addWidget(new QSlider(Qt::Horizontal));connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));connect(layout, SIGNAL(valueChanged(int)), this, SLOT(display(int)));setLayout(layout);
}int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}

在这里插入图片描述

  • t6实践
#include <QApplication>
#include <QFont>
#include <QGridLayout>
#include <QLCDNumber>
#include <QPushButton>
#include <QSlider>
#include <QVBoxLayout>
#include <QWidget>class LCDRange : public QWidget
{
public:LCDRange(QWidget *parent = 0);};
LCDRange::LCDRange(QWidget *parent) : QWidget(parent)
{QLCDNumber *lcd = new QLCDNumber(2);lcd->setSegmentStyle(QLCDNumber::Filled);QSlider *slider = new QSlider(Qt::Horizontal);slider->setRange(0, 99);slider->setValue(0);connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(lcd);layout->addWidget(slider);setLayout(layout);
}class MyWidget : public QWidget
{
public:MyWidget(QWidget *parent = 0);
};MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{QPushButton *quit = new QPushButton(tr("Quit"));quit->setFont(QFont("Times", 18, QFont::Bold));connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));QGridLayout *grid = new QGridLayout;for (int row = 0; row < 3; ++row) {for (int column = 0; column < 3; ++column) {LCDRange *lcdRange = new LCDRange;grid->addWidget(lcdRange, row, column);}}QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(quit);layout->addLayout(grid);setLayout(layout);
}int main(int argc, char *argv[])
{QApplication app(argc, argv);MyWidget widget;widget.show();return app.exec();
}

在这里插入图片描述

  • t7实践

lcdrange.h

#ifndef LCDRANGE_H
#define LCDRANGE_H#include <QWidget>class QSlider;class LCDRange : public QWidget
{Q_OBJECTpublic:LCDRange(QWidget *parent = 0);int value() const;public slots:void setValue(int value);signals:void valueChanged(int newValue);private:QSlider *slider;
};#endif

lcdrange.cpp

#include <QLCDNumber>
#include <QSlider>
#include <QVBoxLayout>
#include "lcdrange.h"LCDRange::LCDRange(QWidget *parent) : QWidget(parent)
{LCDNumber *lcd = new LCDNumber(2);lcd->setSegmentStyle(LCDNumber::Filled);slider = new QSlider(Qt::Horizontal);slider->setRange(0, 99);slider->setValue(0);connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));connect(slider, SIGNAL(valueChanged(int)), this, SIGNAL(valueChanged(int)));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(lcd);layout->addWidget(slider);setLayout(layout);
}int LCDRange::value() const
{return slider->value();
}void LCDRange::setValue(int value)
{slider->setValue(value);
}

lcdmain.cpp

#include <QLCDNumber>
#include <QSlider>
#include <QVBoxLayout>
#include "lcdrange.h"LCDRange::LCDRange(QWidget *parent) : QWidget(parent)
{LCDNumber *lcd = new LCDNumber(2);lcd->setSegmentStyle(LCDNumber::Filled);slider = new QSlider(Qt::Horizontal);slider->setRange(0, 99);slider->setValue(0);connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));connect(slider, SIGNAL(valueChanged(int)), this, SIGNAL(valueChanged(int)));QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(lcd);layout->addWidget(slider);setLayout(layout);
}int LCDRange::value() const
{return slider->value();
}void LCDRange::setValue(int value)
{slider->setValue(value);
}
  • t8实践

ui——mydialog.h

#ifndef UI_MYDIALOG_H
#define UI_MYDIALOG_H#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QGridLayout>
#include <QtGui/QLineEdit>
#include <QtGui/QPushButton>
#include <QtGui/QTextBrowser>class Ui_MyDialog
{
public:QGridLayout *gridLayout;QTextBrowser *textBrowser;QLineEdit *lineEdit;QPushButton *pushButton;void setupUi(QDialog *MyDialog){if (MyDialog->objectName().isEmpty()){MyDialog->setObjectName(QString::fromUtf8("MyDialog"));}QSize size(328, 217);size = size.expandedTo(MyDialog->minimumSizeHint());MyDialog->resize(size);gridLayout = new QGridLayout(MyDialog);gridLayout->setObjectName(QString::fromUtf8("gridLayout"));textBrowser = new QTextBrowser(MyDialog);textBrowser->setObjectName(QString::fromUtf8("textBrowser"));gridLayout->addWidget(textBrowser, 0, 0, 1, 2);lineEdit = new QLineEdit(MyDialog);lineEdit->setObjectName(QString::fromUtf8("lineEdit"));gridLayout->addWidget(lineEdit, 1, 0, 1, 1);pushButton = new QPushButton(MyDialog);pushButton->setObjectName(QString::fromUtf8("pushButton"));gridLayout->addWidget(pushButton, 1, 1, 1, 1);retranslateUi(MyDialog);QObject::connectSlotsByName(MyDialog);} // setupUivoid retranslateUi(QDialog *MyDialog)
{MyDialog->setWindowTitle(QApplication::translate("MyDialog", "My_Dialog", 0, QApplication::UnicodeUTF8));pushButton->setText(QApplication::translate("MyDialog", "Enter", 0, QApplication::UnicodeUTF8));Q_UNUSED(MyDialog);
} // retranslateUi};namespace Ui {class MyDialog: public Ui_MyDialog {};
} // namespace Ui#endif // UI_MYDIALOG_H

mydialog.h

#ifndef MYDIALOG_H
#define MYDIALOG_H#include <QDialog>
#include "ui_mydialog.h"class MyDialog : public QDialog, public Ui_MyDialog
{Q_OBJECTpublic:MyDialog(QWidget *parent = 0);private slots:void enter();private:QString buf;
};#endif

mydialog.cpp

#include "mydialog.h"MyDialog::MyDialog(QWidget *parent) : QDialog(parent)
{setupUi(this);connect(pushButton, SIGNAL(clicked()), this, SLOT(enter()));
}void MyDialog::enter()
{buf += lineEdit->text() + '\n';lineEdit->clear();textBrowser->setText(buf);textBrowser->moveCursor(QTextCursor::End);
}

mydialogmain.cpp

#include <QApplication>
#include "mydialog.h"int main(int argc, char *argv[])
{QApplication app(argc, argv);MyDialog d;d.show();return app.exec();
}

第三章

实践截图
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>int rscallback(void *p, int argc, char **argv, char **argvv)
{int i;*(int *)p = 0;for(i=0; i<argc; i++)printf("%s=%s_", argv[i], argv[i]?argv[i]:"NULL");putchar('\n');return 0;
}int main(void)
{sqlite3 *db;char *err = 0;int ret = 0;int empty = 1;ret = sqlite3_open("./test.db", &db);if(ret != SQLITE_OK) {fputs(sqlite3_errmsg(db), stderr);fputs("\n", stderr);exit(1);}ret = sqlite3_exec(db, "select * from employee;", rscallback, &empty, &err);if(ret!=SQLITE_OK) {fputs(err, stderr);fputs("\n", stderr);sqlite3_close(db);exit(1);}if(empty) {fputs("table_employee_is_empty\n", stderr);exit(1);}sqlite3_close(db);return 0;
}

在这里插入图片描述

http://www.xdnf.cn/news/5313.html

相关文章:

  • 【vue】计算属性和属性传值以及监听属性
  • 【数据结构】线性表
  • Linux 常用命令集合
  • 开源字体设计工具字玩 FontPlayer
  • 【Bluedroid】HID DEVICE 连接的源码分析
  • MIT XV6 - 1.5 Lab: Xv6 and Unix utilities - xargs
  • Qt—多线程基础
  • 医药研发加速器!AI如何助力新药问世?
  • Unity中AssetBundle使用整理(一)
  • 模型过拟合是什么?
  • 【东枫科技】使用LabVIEW进行NVIDIA CUDA GPU 开发
  • AI智慧公园管理方案:用科技重塑市民的“夜游体验”
  • 【C++】内存管理 —— new 和 delete
  • Lora原理及实现浅析
  • 【C++】特殊类设计
  • 支持向量机与逻辑回归的区别及 SVM 在图像分类中的应用
  • matlab中的积分函数
  • 【Java学习日记34】:this关键字和成员变量
  • armv7 backtrace
  • LoRA(Low-Rank Adaptation)原理详解
  • 【ajax基础】
  • 深入理解深度Q网络DQN:基于python从零实现
  • OB Cloud 云数据库V4.3:SQL +AI全新体验
  • redis主从同步于对象模型
  • 【基于 LangChain 的异步天气查询2】GeoNames实现地区实时气温查询
  • EDITPLUS配置CTags实现函数跳转
  • 技术方案模型需要兼顾战略规划、技术实现与落地可行性
  • 《操作系统真象还原》第十三章——编写硬盘驱动程序
  • SQL注入问题
  • powerbuilder9.0中文版