#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "user.h"
#include <QButtonGroup>
#include <QFontDialog>
MainWindow::MainWindow(QString name,QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle("我的邮箱");
//连接listWidget和stackedWidget
connect(ui->listWidget,SIGNAL(currentRowChanged(int)),ui->stackedWidget,SLOT(setCurrentIndex(int)));
user = new User(name);
init_sendLetter();
//tableWidget布局
init_tableWidget();
init_person();
timer = new QTimer();
timer->start(10000);
connect(timer, SIGNAL(timeout()),this, SLOT(updateTime()));
//添加表内信息
display(user->username);
}
/**
* 刷新tableWidget
*/
void MainWindow::updateTime()
{
display(user->username);
init_person();
}
MainWindow::~MainWindow()
{
delete ui;
}
/**
* 个人信息
*/
void MainWindow::init_person()
{
QSqlQuery qry;
qry.prepare( "SELECT * from user WHERE userid = '"+user->username+"' " );
if( !qry.exec() )
qDebug() << qry.lastError();
else
qDebug( "SELECT!" );
qry.next();
ui->label_person_id->setText(user->username);
ui->label_person_name->setText(qry.value(4).toString());
ui->label_person_address->setText(qry.value(5).toString());
ui->label_person_phone->setText(qry.value(6).toString());
ui->label_person_time->setText(qry.value(7).toString());
if(qry.value(8).toString()!="") ui->label_18->setStyleSheet("\nborder-image: url("+qry.value(8).toString()+");");
if(qry.value(4).toString()!=""){
ui->label_firstPage_name->setText(qry.value(4).toString()+",您好");
}
else{
ui->label_firstPage_name->setText(user->username+",您好");
}
}
void MainWindow::init_sendLetter()
{
MainLayout = new QVBoxLayout(this);
toplayout = new QHBoxLayout();
toplayout->addWidget(ui->Btn_send);
toplayout->addWidget(ui->Btn_preview);
toplayout->addWidget(ui->Btn_draft);
toplayout->addWidget(ui->Btn_cancel);
toplayout->addStretch();
toplayout->addWidget(ui->Btn_resend);
toplayout->addWidget(ui->Btn_sendsecret);
toplayout->addWidget(ui->Btn_qfdx);
toplayout->addWidget(ui->Btn_invite);
middlelayout = new QGridLayout;
middlelayout->addWidget(ui->label_reciever,0,0);
middlelayout->addWidget(ui->Editor_reciever,0,1);
middlelayout->addWidget(ui->label_theme,1,0);
middlelayout->addWidget(ui->Editor_theme,1,1);
Buttonlayout = new QHBoxLayout();
fontLabel1 = new QLabel(tr("字体:"));
fontComboBox = new QFontComboBox;
fontComboBox->setFontFilters(QFontComboBox::ScalableFonts);
fontLabel2 = new QLabel(tr("字号:"));
sizeComboBox = new QComboBox;
QFontDatabase db;
foreach(int size, db.standardSizes())
{
sizeComboBox->addItem(QString::number(size));
}
QSize size(24,24);
boldBtn = new QToolButton;
boldBtn->setIcon(QIcon(":/res/bold.PNG"));
boldBtn->setCheckable(true);
boldBtn->setIconSize(size);
boldBtn->setAutoRaise(true);
italicBtn = new QToolButton;
italicBtn->setIcon(QIcon(":/res/italic.PNG"));
italicBtn->setCheckable(true);
italicBtn->setIconSize(size);
italicBtn->setAutoRaise(true);
underlineBtn = new QToolButton;
underlineBtn->setIcon(QIcon(":/res/underline.PNG"));
underlineBtn->setCheckable(true);
underlineBtn->setIconSize(size);
underlineBtn->setAutoRaise(true);
colorBtn = new QToolButton;
colorBtn->setIcon(QIcon(":/res/color.PNG"));
colorBtn->setIconSize(size);
colorBtn->setAutoRaise(true);
Btgrp2 = new QButtonGroup;
//undo/redo Action
undoAction = new QToolButton;
undoAction->setIcon(QIcon(":/res/undo.PNG"));
undoAction->setIconSize(size);
undoAction->setAutoRaise(true);
Btgrp2->addButton(undoAction,1);
redoAction= new QToolButton;
redoAction->setIcon(QIcon(":/res/redo.PNG"));
redoAction->setIconSize(size);
redoAction->setAutoRaise(true);
Btgrp2->addButton(redoAction,2);
connect(Btgrp2,SIGNAL(buttonClicked(int)),this,SLOT(unredo(int)));
//排版
Btgrp = new QButtonGroup;
leftAction= new QToolButton;
leftAction->setIcon(QIcon(":/res/left.PNG"));
leftAction->setCheckable(true);
leftAction->setIconSize(size);
leftAction->setAutoRaise(true);
Btgrp->addButton(leftAction,1);
rightAction= new QToolButton;
rightAction->setIcon(QIcon(":/res/right.PNG"));
rightAction->setCheckable(true);
rightAction->setIconSize(size);
rightAction->setAutoRaise(true);
Btgrp->addButton(rightAction,2);
centerAction= new QToolButton;
centerAction->setIcon(QIcon(":/res/center.PNG"));
centerAction->setCheckable(true);
centerAction->setIconSize(size);
centerAction->setAutoRaise(true);
Btgrp->addButton(centerAction,3);
justifyAction= new QToolButton;
justifyAction->setIcon(QIcon(":/res/justify.PNG"));
justifyAction->setCheckable(true);
justifyAction->setIconSize(size);
justifyAction->setAutoRaise(true);
Btgrp->addButton(justifyAction,4);
connect(Btgrp,SIGNAL(buttonClicked(int)),this,SLOT(ShowAlignment(int)));
Buttonlayout->addWidget(boldBtn);
Buttonlayout->addWidget(italicBtn);
Buttonlayout->addWidget(underlineBtn);
Buttonlayout->addWidget(colorBtn);
Buttonlayout->addWidget(leftAction);
Buttonlayout->addWidget(centerAction);
Buttonlayout->addWidget(rightAction);
Buttonlayout->addWidget(justifyAction);
Buttonlayout->addWidget(fontLabel2);
Buttonlayout->addWidget(sizeComboBox);
Buttonlayout->addWidget(fontLabel1);
Buttonlayout->addWidget(fontComboBox);
// Buttonlayout->addWidget(action);
Buttonlayout->addWidget(undoAction);
Buttonlayout->addWidget(redoAction);
Buttonlayout->addWidget(ui->toolButton);
Buttonlayout->addWidget(ui->Btn_add);
Buttonlayout->addStretch();
buttomlayout = new QHBoxLayout();
buttomlayout->addWidget(ui->Btn_send_2);
buttomlayout->addWidget(ui->Btn_cancel_2);
buttomlayout->addStretch();
MainLayout->addLayout(toplayout);
MainLayout->addLayout(middlelayout);
MainLayout->addLayout(Buttonlayout);
MainLayout->addWidget(ui->textEdit);
MainLayout->addWidget(ui->label_sender);
MainLayout->addLayout(buttomlayout);
ui->page_Writeletter->setLayout(MainLayout);
connect(fontComboBox,SIGNAL(activated(QString)),this,SLOT(ShowFontComboBox(QString)));
connect(sizeComboBox,SIGNAL(activated(QString)),this,SLOT(ShowSizeSpinBox(QString)));
connect(boldBtn,SIGNAL(clicked()),this,SLOT(ShowBoldBtn()));
connect(italicBtn,SIGNAL(clicked()),this,SLOT(ShowItalicBtn()));
connect(underlineBtn,SIGNAL(clicked()),this,SLOT(showUnderlineButton()));
connect(colorBtn,SIGNAL(clicked()),this,SLOT(ShowColorBtn()));
connect( ui->textEdit, SIGNAL( currentCharFormatChanged( const QTextCharFormat & ) ), this, SLOT( ShowCurrentFormatChanged(const QTextCharFormat&)));
connect(ui->Btn_send,SIGNAL(clicked()),this,SLOT(button_send()));
connect(ui->Btn_send_2,SIGNAL(clicked()),this,SLOT(button_send()));
}
void MainWindow::ShowBoldBtn()
{
QTextCharFormat fmt;
fmt.setFontWeight(boldBtn->isChecked()?QFont::Bold:QFont::Normal);
ui->textEdit->mergeCurrentCharFormat(fmt);
}
void MainWindow::ShowItalicBtn()
{
QTextCharFormat fmt;
fmt.setFontItalic(italicBtn->isChecked());
ui->textEdit->mergeCurrentCharFormat(fmt);
}
void MainWindow::showUnderlineButton()
{
QTextCharFormat fmt;
fmt.setFontUnderline(underlineBtn->isChecked());
ui->textEdit->mergeCurrentCharFormat(fmt);
qDebug()<<"underline!!!";
}
void MainWindow::ShowColorBtn()
{
QColor color = QColorDialog::getColor(Qt::red,this);
if(color.isValid()){
QTextCharFormat fmt;
fmt.setForeground(color);
ui->textEdit->mergeCurrentCharFormat(fmt);
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源介绍】 基于c++和Qt开发的电子邮件系统源码+代码注释.zip 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 基于Qt的简易内部电子邮件系统 ### Dependency Qt 4.8.0 ### Usage 首先要先注册账号,然后登陆账号。 发送邮件后,可以在个人信息中点击切换账号按钮,或者直接退出,登陆另一个账号在收件箱内查看邮件。 运行后,会在当前目录生成一个data的文件,就是数据库的存储文件。 **目前已经实现的功能有:** - 注册账号 - 发邮件 - 收邮件 - 删邮件 - 标记星标邮件 - 查看邮件信息 - 更改个人信息 **需要改进的地方:** - 程序是单机版,不能两台电脑互发邮件。 - 有一些按钮仅仅留作一个接口,没有实现功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于c++和Qt开发的电子邮件系统源码+代码注释.zip (99个子文件)
说明.md 695B
img
img2.png 39KB
img1.png 179KB
email
login.cpp 3KB
verificationcodelabel.cpp 3KB
mainwindow.h 4KB
newuser.ui 16KB
user.cpp 909B
personinfo.h 552B
buttondelegate.h 787B
newuser.cpp 6KB
user.h 354B
mainwindow.cpp 51KB
receiver.cpp 924B
receiver.ui 8KB
receiver.h 571B
buttondelegate.cpp 3KB
login.ui 8KB
res
cut.PNG 487B
rotate90.png 484B
bcolor.png 448B
zoomin.PNG 2KB
exit.PNG 398B
redo.PNG 574B
new.png 609B
italic.PNG 226B
fontsize.png 441B
paste.PNG 1KB
send.PNG 617B
bold.PNG 305B
Logo.PNG 18KB
Logo2.PNG 58KB
copy.PNG 476B
underline.PNG 229B
add.png 182B
center.PNG 242B
open.png 562B
zoomout.PNG 2KB
rotate180.png 562B
mirrorHorizontal.png 351B
splash2.gif 498KB
printText.PNG 2KB
mirrorVertical.png 337B
rotate270.png 453B
right.PNG 234B
justify.PNG 305B
time.JPG 8KB
save.png 520B
undo.PNG 555B
brush.png 211B
color.PNG 375B
left.PNG 245B
printImage.PNG 1KB
splash.gif 1017KB
main.cpp 811B
mainwindow.ui 47KB
img
passwd.png 4KB
unread.png 382B
login.png 4KB
red_star.png 375B
gray_star.png 325B
email.pro 2KB
personinfo.ui 3KB
icon.ico 4KB
newuser.h 840B
res.qrc 3KB
verificationcodelabel.h 1KB
background
icon_4_.jpg 60KB
background1.jpg 83KB
icon_3_.jpg 134KB
icon_6.jpg 75KB
bg_receivertoum.png 226KB
bg_login.jpg 15KB
icon_4.jpg 15KB
Homepage_4.png 25KB
icon_8_.jpg 138KB
Homepage_3.png 23KB
bg_login3.jpg 16KB
icon_7_.jpg 59KB
icon_7.jpg 23KB
Homepage_2.png 32KB
icon_3.jpg 29KB
bg_login2_.jpg 65KB
bg_login3_.jpg 74KB
bg.jpg 5KB
icon_2.jpg 72KB
icon_5.jpg 44KB
bg_icon.jpg 71KB
bg_receiver.jpg 93KB
icon_1.jpg 18KB
icon_2_.jpg 336KB
icon_6_.jpg 294KB
icon_5_.jpg 179KB
icon_8.jpg 32KB
icon_1_.jpg 57KB
Homepage_1.png 31KB
bg_login2.jpg 14KB
personinfo.cpp 1021B
login.h 525B
共 99 条
- 1
资源评论
- zw_Loneranger2024-04-15感谢资源主的分享,这个资源对我来说很有用,内容描述详尽,值得借鉴。
- m0_572294822024-04-08超赞的资源,感谢资源主分享,大家一起进步!
manylinux
- 粉丝: 4452
- 资源: 2494
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享Stm32寄存器与库函数概览(摘自固件库使用手册)很好的技术资料.zip
- 技术资料分享STM32固件库使用手册的中文翻译版很好的技术资料.zip
- 技术资料分享STM32的USB详解很好的技术资料.zip
- 技术资料分享STM32的IAP方案很好的技术资料.zip
- 技术资料分享STM32F107-Errata-CH-V1很好的技术资料.zip
- 技术资料分享STM32F103ZET6很好的技术资料.zip
- 技术资料分享STM32F103xCDE-DS-CH-V5很好的技术资料.zip
- 技术资料分享STM32F103x46-DS-CH-V2很好的技术资料.zip
- 技术资料分享STM32F103x8B-DS-CH-V10很好的技术资料.zip
- 技术资料分享STM32F102x46-DS-CH-V2很好的技术资料.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功