QT作业3

1、思维导图

2、聊天界面

//头文件1
#ifndef MYWIDGET_H
#define MYWIDGET_H#include <QWidget>
#include<QIcon> //图标类
#include<QLabel> //标签类
#include<QMovie> //动图类
#include<QLineEdit> //行编辑器类
#include<QPushButton> //按钮类
#include <QDebug> //信息调试类
#include <QMessageBox>//对话框class MyWidget : public QWidget
{Q_OBJECTQPushButton *btn;QLineEdit *edit1;QLineEdit *edit2;QLabel *lab1;QLabel *lab2;QLabel *lab3;QMovie *mv;
public:MyWidget(QWidget *parent = nullptr);~MyWidget();
signals:void jump();
public slots:void btn_clicked();void edit_changed();};#endif // MYWIDGET_H
//头文件2
#ifndef SECOND_H
#define SECOND_H#include <QWidget>namespace Ui {
class Second;
}class Second : public QWidget
{Q_OBJECTpublic:explicit Second(QWidget *parent = nullptr);~Second();
public slots:void on_jump();private:Ui::Second *ui;
};#endif // SECOND_H
//源文件1
#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent)
{this->resize(540,415);this->setFixedSize(540,415);this->setWindowTitle("盗版QQ");this->setWindowIcon(QIcon("D:\\yans\\color\\pictrue\\qq.png"));this->setStyleSheet("background-color:white");this->setWindowFlag(Qt::FramelessWindowHint);this->lab1 = new QLabel(this);lab1->resize(540, 160);lab1->setStyleSheet("background-color:pink");this->mv = new QMovie("D:\\yans\\color\\pictrue\\zz.gif");lab1->setMovie(mv);mv->start();lab1->setScaledContents(true);this->lab2 = new QLabel(this);lab2->resize(30,30);lab2->move(120,210);lab2->setPixmap(QPixmap("D:\\yans\\color\\pictrue\\wodepeizhenshi.png"));lab2->setScaledContents(true);this->lab3 = new QLabel(this);lab3->resize(30,30);lab3->move(120, 260);lab3->setPixmap(QPixmap("D:\\yans\\color\\pictrue\\passwd.jpg"));lab3->setScaledContents(true);this->edit1 = new QLineEdit(this);edit1->resize(275,30);edit1->move(155,210);edit1->setPlaceholderText("QQ号/手机号/邮箱");this->edit2 = new QLineEdit(this);edit2->resize(275,30);edit2->move(155,260);edit2->setPlaceholderText("密码");edit2->setEchoMode(QLineEdit::Password);this->btn = new QPushButton("登录",this);btn->resize(300,45);btn->move(120,345);//样式函数setStyleSheet()btn->setStyleSheet("background-color:yellow;border-radius:5px;color:white");QObject::connect(btn,&QPushButton::clicked,this,&MyWidget::btn_clicked);QObject::connect(edit1,&QLineEdit::textChanged,this,&MyWidget::edit_changed);QObject::connect(edit2,&QLineEdit::textChanged,this,&MyWidget::edit_changed);
}MyWidget::~MyWidget()
{}
void MyWidget::btn_clicked()
{if(this->edit1->text()=="123456"&&this->edit2->text()=="123456"){QMessageBox btn1(QMessageBox::Information,"信息对话框","登录成功",QMessageBox::Ok,this);int res = btn1.exec();emit jump();this->close();}else {QMessageBox btn2(QMessageBox::Information,"错误对话框","登录失败,是否重新登录",QMessageBox::Yes |  QMessageBox::No,this);int res1 = btn2.exec();if(res1== QMessageBox::Yes){this->edit1->clear();this->edit2->clear();}else if(res1==QMessageBox::No){this->close();}}
}
void MyWidget::edit_changed()
{if(this->edit1->text().length()>=5&&this->edit2->text().length()>=5){this->btn->setStyleSheet("background-color:blue");}else{this->btn->setStyleSheet("background-color:yellow");}
}
//源文件2
#include "second.h"
#include "ui_second.h"Second::Second(QWidget *parent) :QWidget(parent),ui(new Ui::Second)
{ui->setupUi(this);this->resize(800,500);this->setFixedSize(800,500);}
Second::~Second()
{delete ui;
}
void Second::on_jump()
{this->show();
}
//源文件3
#include "mywidget.h"
#include "second.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MyWidget w;Second s;w.show();QObject::connect(&w,&MyWidget::jump,&s,&Second::on_jump);return a.exec();
}

3、完整文本编辑器

头文件:
#ifndef WIDGET2_H
#define WIDGET2_H#include <QWidget>
#include<QIcon> //图标类
#include<QLabel> //标签类
#include<QMovie> //动图类
#include<QLineEdit> //行编辑器类
#include<QPushButton> //按钮类
#include <QDebug> //信息调试类
#include <QMessageBox>//对话框
#include <QMessageBox>
#include <QFontDialog>
#include <QFont>
#include <QColorDialog>
#include <QColor>
#include <QFile>
#include <QFileDialog>
#include <QInputDialog>
#include <QTextEdit>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget2; }
QT_END_NAMESPACEclass Widget2 : public QWidget
{Q_OBJECTQTextEdit *text;QPushButton *btn1;QPushButton *btn2;QPushButton *btn3;QPushButton *btn4;QPushButton *btn5;QPushButton *btn6;
public:Widget2(QWidget *parent = nullptr);~Widget2();private slots:void pushButton_clicked();void pushButton_2_clicked();void pushButton_3_clicked();void pushButton_4_clicked();void pushButton_5_clicked();void pushButton_6_clicked();
private:Ui::Widget2 *ui;
};
#endif // WIDGET2_H
源文件:
#include "widget2.h"
#include "ui_widget2.h"Widget2::Widget2(QWidget *parent): QWidget(parent), ui(new Ui::Widget2)
{ui->setupUi(this);this->resize(800,600);this->setFixedSize(800,600);this->text=new QTextEdit(this);text->resize(481,111);text->move(20,200);this->btn1=new QPushButton("对话1",this);btn1->resize(93,28);btn1->move(30,150);this->btn2=new QPushButton("对话2",this);btn2->resize(93,28);btn2->move(380,150);this->btn3=new QPushButton("字体",this);btn3->resize(93,28);btn3->move(20,320);this->btn4=new QPushButton("颜色",this);btn4->resize(93,28);btn4->move(150,320);this->btn5=new QPushButton("文件选择",this);btn5->resize(93,28);btn5->move(280,320);this->btn6=new QPushButton("附件输入",this);btn6->resize(93,28);btn6->move(410,320);QObject::connect(btn1,&QPushButton::clicked,this,&Widget2::pushButton_clicked);QObject::connect(btn2,&QPushButton::clicked,this,&Widget2::pushButton_2_clicked);QObject::connect(btn3,&QPushButton::clicked,this,&Widget2::pushButton_3_clicked);QObject::connect(btn4,&QPushButton::clicked,this,&Widget2::pushButton_4_clicked);QObject::connect(btn5,&QPushButton::clicked,this,&Widget2::pushButton_5_clicked);QObject::connect(btn6,&QPushButton::clicked,this,&Widget2::pushButton_6_clicked);
}Widget2::~Widget2()
{delete ui;
}void Widget2::pushButton_clicked()
{QMessageBox box(QMessageBox::Question,"对话框","我是个帅哥吧",QMessageBox::Yes | QMessageBox::No,this);int res=box.exec();if(res==QMessageBox::Yes){qDebug()<<"是";}else if(res==QMessageBox::No){qDebug()<<"不是";}
}void Widget2::pushButton_2_clicked()
{int btn=QMessageBox::warning(this,"警告","别跑",QMessageBox::Ok | QMessageBox::No,QMessageBox::Ok);if(btn==QMessageBox::Ok){qDebug()<<"就跑";}else if(btn==QMessageBox::No){qDebug()<<"不跑";}
}void Widget2::pushButton_3_clicked()
{bool ok=false;QFont f=QFontDialog::getFont(&ok,QFont("宋体",10,10,true),this,"选择字体");if(ok){this->text->setCurrentFont(f);}
}
void Widget2::pushButton_4_clicked()
{QColor c=QColorDialog::getColor(QColor("red"),this,"颜色选择");if(c.isValid()==true){this->text->setTextBackgroundColor(c);}
}void Widget2::pushButton_5_clicked()
{QString fileName=QFileDialog::getOpenFileName(this,"选择文件","./","all(*.*)::images(*.png *.jpg *.gif);;源文件(*.cpp)");QFile file(fileName);if(file.open(QFile::ReadOnly)==false){QMessageBox::information(this,"提示","文件打开失败");return;}QByteArray msg=file.readAll();this->text->setText(msg);file.close();
}void Widget2::pushButton_6_clicked()
{bool ok=false;QString msg=QInputDialog::getText(this,"请输入文本","姓名",QLineEdit::Normal,"理想",&ok);if(ok){//使用输入的文本内容this->text->setText(msg);}
}

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

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

相关文章

《Fundamentals of Power Electronics》——示例:Buck-Boost转换器模型变为正则形式

为了说明正则电路模型推导的步骤&#xff0c;让我们将buck-boost转换器的等效电路操作成规范形式。buck-boost转换器的一个小信号交流等效电路如下图所示。 为了将上图所示网络转换成正则形式&#xff0c;需要将所有独立源d(t)转换到左侧&#xff0c;而将所有电感转换到右侧与变…

Linux——基础IO2

引入 之前在Linux——基础IO(1)中我们讲的都是(进程打开的文件)被打开的文件 那些未被打开的文件呢&#xff1f; 大部分的文件都是没有被打开的文件&#xff0c;这些文件在哪保存&#xff1f;磁盘(SSD) OS要不要管理磁盘上的文件&#xff1f;(如何让OS快速定位一个文件) 要…

华为数据之道第二部分导读

目录 导读 第二部分 第4章 面向“业务交易”的信息架构建设 信息架构的四个组件 数据资产目录 数据标准 数据模型 数据分布 信息架构原则&#xff1a;建立企业层面的共同行为准则 信息架构建设核心要素&#xff1a;基于业务对象进行设计和落地 按业务对象进行架构设…

CSS3新增特性

新增属性选择器 <style>/* 必须是input但是同时具有value这个属性选择这个元素 [] */input[value] {color: red;}input[typetel] {color: blue;}/* 选择首先是div然后具有cLass属性并且属性值必须是 icon开头的这些元素 ^ */div[class^icon] {color: pink;}section[c…

113721-87-2,7-AMCANHS活化酯可用于蛋白质印迹和免疫测定

一、产品概述 7-AMCA NHS ester是一种重要的荧光标记试剂&#xff0c;广泛应用于生物分子研究、细胞成像以及蛋白质标记等领域。 结构式如图所示 中文名称&#xff1a;7-AMCA NHS 活化酯 英文名称&#xff1a;7-AMCA NHS ester&#xff0c;AMCA-OSu CAS号&#xff1a;11372…

芸众商城电商专业版400+插件源码+搭建教程

介绍&#xff1a; 芸众商城社交电商系统SAAS平台前端基于vue开发&#xff0c;后端基于研发积分商城系统源码 php&#xff0c;本文安装芸众商城全插件&#xff08;400多个&#xff09;商业版平台源码&#xff0c;可同时支持多端口部署运行&#xff1b;使用宝塔面板一键部署的形…

汽车软件研发工具链丨怿星科技新产品重磅发布

“创新引领未来”聚焦汽车软件新基建&#xff0c;4月27日下午&#xff0c;怿星科技2024新产品发布会在北京圆满举行&#xff01;智能汽车领域的企业代表、知名大企业负责人、投资机构代表、研究机构代表齐聚现场&#xff0c;线上直播同步开启&#xff0c;共同见证怿星科技从单点…

MySql表的增删查改(CRUD)

对表中的数据操作分为4大类&#xff0c;增加数据&#xff0c;删除数据&#xff0c;查找数据&#xff0c;修改数据。对表中的数据进行增删查改操作简称为CRUD。Create(增),Retrieve(查找),Updata(修改&#xff09;,Delete(删除)CRUD的操作是对表中的数据进行操作的&#xff0c;是…

MinimogWP WordPress 主题下载——优雅至上,功能无限

无论你是个人博客写手、创意工作者还是企业站点的管理员&#xff0c;MinimogWP 都将成为你在 WordPress 平台上的理想之选。以其优雅、灵活和功能丰富而闻名&#xff0c;MinimogWP 不仅提供了令人惊叹的外观&#xff0c;还为你的网站带来了无限的创作和定制可能性。 无与伦比的…

分类任务的基础学习

1.什么是分类&#xff1f; 2.局限性&#xff1a; 当样本量逐渐变大的时候&#xff0c;准确率会下降——>因为线性回归曲线距离我们的原点越远&#xff0c;预测就会开始不准确&#xff0c;因为 x前面的倍数就会越来越小&#xff0c;这就导致了样本量变大&#xff0c;但是那些…

Activiti7 开发快速入门【2024版】

记录开发最核心的部分&#xff0c;理论结合业务实操减少废话&#xff0c;从未接触工作流快速带入开发。假设你是后端的同学学过JAVA和流程图&#xff0c;则可以继续向后看&#xff0c;否则先把基础课程书准备好先翻翻。 为什么要工作流 比起直接使用状态字段&#xff0c;工作…

vue 语法2

【5】条件渲染和列表渲染 &#xff08;1&#xff09;条件渲染v-if v-else-if v-else 条件渲染根据表达式的真假值来渲染不同的元素或组件。 v-if&#xff1a;当表达式的值为真时&#xff0c;渲染该元素或组件。 v-else-if&#xff1a;当前面的 v-if 或 v-else-if 的表达式为假…

基于springboot实现公交线路查询系统项目【项目源码+论文说明】计算机毕业设计

基于SpringBoot实现公交线路查询系统演示 摘要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜爱。本…

JavaScript数字分隔符

● 如果现在我们用一个很大的数字&#xff0c;例如2300000000&#xff0c;这样真的不便于我们进行阅读&#xff0c;我们希望用千位分隔符来隔开它&#xff0c;例如230,000,000; ● 下面我们使用_当作分隔符来尝试一下 const diameter 287_266_000_000; console.log(diameter)…

网络层协议之 IP 协议

IP 协议格式 4 位版本&#xff1a;此处的取值只有两个&#xff0c;4&#xff08;IPv4&#xff09;和 6&#xff08;IPv6&#xff09;&#xff0c;即指定 IP 协议的版本。 4 位首部长度&#xff1a;描述了 IP 报头多长&#xff0c;IP 报头是变长的&#xff0c;因为报头中的选项部…

“人工智能+”推进新质生产力发展论坛暨工作室实践实训基地授牌仪式圆满结束

4月27日&#xff0c;由江西财经大学现代经济管理学院主办的“人工智能”推进新质生产力发展论坛暨“江财现经管泰迪数智技术”校企工作室实践实训基地授牌仪式在江西财经大学现代经济管理学院共青城校区举行&#xff0c;学院院长王金海&#xff0c;副院长丁美东&#xff0c;副院…

Day2 | Java基础 | 2 数据类型

Day1 | Java基础 | 2 数据类型 基础版staticstatic的用法static修饰内部类static修饰方法static修饰变量static修饰代码块 深入分析static小结 问题回答版参数传递形参和实参的区别是什么&#xff1f;Java是值传递还是引用传递&#xff1f;值传递和引用传递的区别是什么&#x…

引用数据类型 栈内存 堆内存

let m { a: 10, b: 20 }; let n m; n.a 15; console.log(m.a) // 15 原因&#xff1a;基本数据类型存储在栈内存中&#xff0c;引用数据类型存储在堆内存中 &#xff0c;引用数据类型存储在堆内存中会在栈内存中创建一个指针&#xff0c;栈内存中的这个指针指向堆内存中的地…

Blender材质,纹理,UV

1.材质Material&#xff0c;用于描述物体的表面性质&#xff0c;包含以下基本属性 -基础色 -金属/非金属 -粗糙度 -透光度 -凹凸细节 添加材质步骤&#xff1a; 1&#xff09;切换到材质预览模式 2&#xff09;打开材质面板 3&#xff09;添加一个材质&#xff0c;包括材…

Windows 10 中使用 Montreal-Forced-Aligner (MFA) 实现音频和文本强制对齐

文章目录 一、实现目标二、安装 Montreal-Forced-Aligner1、使用 Anaconda 虚拟环境2、修改默认下载路径3、安装 montreal-forced-aligner 及相关第三方包4、验证是否安装成功 三、下载声学模型和发音词典1、命令行方式下载2、手动方式下载 四、强制对齐1、准备音频及对应文本2…