快速入门实验

  • 实验1 创建登录对话框
    ① QString 类的trimmed()函数实现保证用户名输入正确,去除字符串前后的空格。
    ②登录失败后,希望可以清空用户名和密码信息,并将光标定位到用户名输入框中,可以用如下代码实现:
    ui->usrLineEdit->clear();
    ui->pwdLineEdit->clear();
    ui->usrLineEdit->setFocus();
    实现代码:
void LoginDialog::on_loginBtn_clicked()
{
	// 判断用户名和密码是否正确,如果错误则弹出警告对话框
	if(ui->usrLineEdit->text().trimmed() == tr("yafeilinux") && ui->pwdLineEdit->text() ==tr("123456"))
	{
		accept();
	} 
	else 
	{
		QMessageBox::warning(this, tr("Waring"), tr("user name or password error!"), QMessageBox::Yes);
	// 清空内容并定位光标
	ui->usrLineEdit->clear();
	ui->pwdLineEdit->clear();
	ui->usrLineEdit->setFocus();
	}
}
  • 实验2 定时器和随机数
    ①这里使用了QTime类的secsTo()函数,它表示两个时间点之间所包含的秒数,比如代码中就是指从零点整到当前时间所经过的秒数。
    ②使用qrand()%5 产生5 以内的随机数,并使用这个随机数来获取图片名称。
    ③右击“开始”按钮和“停止”按钮,选择转到槽,然后选择clicked()
    信号。将对应的槽函数修改如下:
    // 开始按钮
    void Widget::on_pushButton_clicked()
    {
    timer->start(1000);
    }
    // 停止按钮
    void Widget::on_pushButton_2_clicked()
    {
    timer->stop();
    }
    /*
    使用start()来启动定时器,其中参数用来指定溢出时间间隔,单位为毫秒。这里设置
    为1000,表明每隔1 秒发射一次timeout()信号。如果要停止定时器,可以调用stop()函
    数。
    */
    实现代码:
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
    ui->setupUi(this);
    //关联定时器溢出信号和相应的槽函数
    timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this && Widget::timerUpdate);
    qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::timerUpdate()
{
	//获取系统现在的时间
	QDateTime time = QDateTime::currentDateTime();
	//设置系统时间显示格式
	QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");
	//在标签上显示时间
	ui->lineEdit->setText(str);
	int rand = qrand() % 5; // 产生5 以内随机整数即0-4
	ui->label>setPixmap(QString(":/images.qrc/%1.png").arg(rand));
	}
	void Widget::on_pushButton_clicked()
	{
	    timer->start(1000);
	}
}
void Widget::on_pushButton_2_clicked()
{
    timer->stop();
}

  • 实验3 使用MySQL数据库
    ①如何在MySQL中创建数据库?
    (1)首先到MyQSL 的安装目录C:\MySQL\bin 目录下运行mysqld.exe 程序,该程序运行完成后会自动关闭。
    (2)运行cmd。
    (3)cd C:\MySQL\bin,跳转到安装目录下。
    (4)然后输入下面的命令:mysql –uroot –p,使用root 用户来登陆MySQL,因为默认密码是空的,所以这里不用设置密码。运行这行代码会提示Enter password,这时敲回车即可。
    (5)登录MySQL 以后,使用面的命令来查看现有的数据库:show databases;注意后面有个分号。
    (6)可以看到,这里现在已经有几个数据库了,它们是MySQL 需要的。
    在这里插入图片描述
    (7)这里不使用已经有的数据库,而是新建自己的数据库,下面新建名为mydata 的数据库:create database mydata;
    (8)再次查看已经存在的数据库,发现显示出了刚才创建的数据库。
    在这里插入图片描述
    (9)完成后,输入exit 命令退出MySQL。
    ② 如何测试MySQL程序?
    实现核心代码:
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QStringList>
#include <QSqlQuery>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    // 输出可用数据库
    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
    qDebug() << driver;
    // 打开MySQL
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("mydata");
    db.setUserName("root");
    db.setPassword("");
    if (!db.open())
        qDebug() << "Failed to connect to root mysql admin";
    else 
        qDebug() << "open";
    QSqlQuery query(db);
    //注意这里varchar 一定要指定长度,不然会出错
    query.exec("create table student(id int primary key,name varchar(20))");
    query.exec("insert into student values(1,'xiaogang')");
    query.exec("insert into student values(2,'xiaoming')");
    query.exec("insert into student values(3,'xiaohong')");
    query.exec("select id,name from student where id >= 2");
    while(query.next())
    {
        int value0 = query.value(0).toInt();
        QString value1 = query.value(1).toString();
        qDebug() << value0 << value1 ;
    }
    return a.exec();
}

然后记得把C:\MySQL\lib中的libmysql.dll复制到工程实现目录下,在运行程序,结果如下:
在这里插入图片描述
大功告成!!

  • 实验4 程序的发布
    发布程序时,要使用release 版本。在桌面新建一个文件夹,将release版本中的exe复制过来,再去Qt 安装目录的bin 目录中将libgcc_s_dw2-1.dll 、libstdc+±6.dll、libwinpthread-1.dll、Qt5Core.dll、Qt5Gui.dll 和Qt5Widgets.dll 这6 个文件复制过来,另外,还需要将C:\Qt\Qt5.6.1\5.6\mingw49_32\plugins 目录中的platforms 文件夹复制过来(不要修改该文件夹名称),里面只需要保留qwindows.dll 文件即可。
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值