#include "mainwindow.h"
#include "ui_mainwindow.h"
#pragma execution_character_set("utf-8")
#include"formlog.h"
#include"pasbarwokerthreaad.h"
#include"mypasbarupdateth.h"
#include"switchcontrol.h"
#include<QMouseEvent>
#include<QPainter>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(this,&MainWindow::cliekedMe,this,&MainWindow::ShowClickedMsg);
UseToolBar();
InitStatusBarMsg();
InitINICommoBox();
InitSerialPortUI();
m_SerialPort = new QSerialPort(this);
initClient();
InitServer();
InitMyDesignControl();
}
MainWindow::~MainWindow()
{
if(m_SerialPort->isOpen())
{
m_SerialPort->close();
}
delete m_SerialPort;
delete ui;
}
void MainWindow::on_pushButton_5_clicked()
{
emit cliekedMe();
}
void MainWindow::ShowClickedMsg()
{
this->m_cliekedButtonTimes++;
ui->lineEdit->setText("You CLick Me!小王");
ui->textEdit_2->setText("You Have Clieck Button Times is "+ QString::number(this->m_cliekedButtonTimes));
}
void MainWindow::UseToolBar()
{
ui->toolBtn_Use->setText("用户");
ui->toolBtn_Use->setFont(QFont("微软雅黑"));
ui->toolBtn_Use->setIcon(QIcon(":/images/用户.png"));
ui->toolBtn_Use->setMinimumSize(60,60);
ui->toolBtn_Use->setIconSize(QSize(48,48));
ui->toolBtn_Use->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonTextUnderIcon);
ui->toolBtn_Project->setText("项目");
ui->toolBtn_Project->setFont(QFont("微软雅黑"));
ui->toolBtn_Project->setIcon(QIcon(":/images/项目.png"));
ui->toolBtn_Project->setMinimumSize(60,60);
ui->toolBtn_Project->setIconSize(QSize(48,48));
ui->toolBtn_Project->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonTextUnderIcon);
ui->toolBtn_Log->setText("日志");
ui->toolBtn_Log->setFont(QFont("微软雅黑"));
ui->toolBtn_Log->setIcon(QIcon(":/images/日志.png"));
ui->toolBtn_Log->setMinimumSize(60,60);
ui->toolBtn_Log->setIconSize(QSize(48,48));
ui->toolBtn_Log->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonTextUnderIcon);
ui->toolBtn_Camera->setText("图像");
ui->toolBtn_Camera->setFont(QFont("微软雅黑"));
ui->toolBtn_Camera->setIcon(QIcon(":/images/图像.png"));
ui->toolBtn_Camera->setMinimumSize(60,60);
ui->toolBtn_Camera->setIconSize(QSize(48,48));
ui->toolBtn_Camera->setToolButtonStyle(Qt::ToolButtonStyle::ToolButtonTextUnderIcon);
}
void MainWindow::on_pushButton_3_clicked()
{
ui->pushButton_4->setVisible(false);
ui->pushButton_2->setEnabled(false);
}
void MainWindow::on_pushButton_clicked()
{
ui->pushButton_4->setVisible(true);
ui->pushButton_2->setEnabled(true);
}
void MainWindow::InitStatusBarMsg()
{
//端口设备1
_ComDeviceStatus = new QLabel(this);
// _ComDeviceStatus->setStyleSheet("font-size:18px;color:rgb(0,255,0);background-color:rgb(255,255,255)");
_ComDeviceStatus->setStyleSheet("font-size:18px;color:rgb(255,0,0)");
_ComDeviceStatus->setAttribute(Qt::WA_TranslucentBackground, true); //设置背景颜色为透明
ui->statusBar->addWidget(_ComDeviceStatus);
QString strCOM1 = "串口";
_ComDeviceStatus->setText(strCOM1);
//当前用户
_curUser = new QLabel(this);
_curUser->setStyleSheet("font-size:18px");
_curUser->setAttribute(Qt::WA_TranslucentBackground, true); //设置背景颜色为透明
ui->statusBar->addPermanentWidget(_curUser);
QString strUser = "用户:作业员";
_curUser->setText(strUser);
//版本信息
_versionMsg = new QLabel(this);
_versionMsg->setStyleSheet("font-size:18px");
// _versionMsg->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
_versionMsg->setAttribute(Qt::WA_TranslucentBackground, true); //设置背景颜色为透明
ui->statusBar->addPermanentWidget(_versionMsg);
QString dateTime;
dateTime += __DATE__;
dateTime += __TIME__;
dateTime.replace(" "," 0");
QString strVerEditTime = QLocale(QLocale::English).toDateTime(dateTime,"MMM dd yyyyhh:mm:ss").toString("yyMMdd");
QString strVersion =" 版本:"+ _VersionNo + strVerEditTime + " ";
_versionMsg->setText(strVersion);
//跟新当前时间
_curTime = new QLabel();
_curTime->setParent(this);
_curTime->setStyleSheet("font-size:18px");
_curTime->setAttribute(Qt::WA_TranslucentBackground, true); //设置背景颜色为透明
ui->statusBar->addPermanentWidget(_curTime);
QTimer *timer = new QTimer(this);
timer->start(1000);
connect(timer,&QTimer::timeout,[=](){UpdateTimeBySecond();});
}
void MainWindow::UpdateTimeBySecond()
{
QString strcurDateTime = "时间:" + QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")+ " ";
_curTime->setText(strcurDateTime);
}
void MainWindow::closeEvent(QCloseEvent *event)
{
QMessageBox::StandardButton result = QMessageBox::question(this,"提示","确定要退出当前软件吗?",QMessageBox::Yes | QMessageBox::No,QMessageBox::No);
if(result == QMessageBox::Yes)
{
event->accept();
}
else
{
event->ignore();
}
}
// 打开只有关闭按钮的窗口
void MainWindow::on_pushButton_6_clicked()
{
frmLoG = new FormLOG(this);
frmLoG->setWindowModality(Qt::ApplicationModal);//设置阻塞类型
frmLoG->setAttribute(Qt::WA_ShowModal,true); //设置是否为模态类型
frmLoG->setWindowFlags(Qt::WindowCloseButtonHint | Qt::Dialog);//设置只有关闭按钮,
frmLoG->setAttribute(Qt::WA_DeleteOnClose);//设置窗口关闭时销毁
frmLoG->show();
}
/*文本文件读取方式
QIODevice::ReadOnly //以只读方式打开文件,用于载入文件。
QIODevice::WriteOnly //以只写方式打开文件,用于保存文件。
QIODevice::ReadWrite //以读写方式打开。
QIODevice::Append //以添加模式打开,新写入文件的数据添加到文件尾部。
QIODevice::Truncate //以截取方式打开文件,文件原有的内容全部被删除。
QIODevice::Text //以文本方式打开文件,读取时“\n”被自动翻译为换行符,写入时字符串结束符会自动翻译为系统平台的编码,如 Windows 平台下是“\r\n”。
这些取值可以组合,例如 QIODevice::ReadOnly | QIODevice::Text 表示以只读和文本方式打开文件。
*/
//读取文本文件内容
void MainWindow::on_btn_ReadTxtFile_clicked()
{
QString strOpenFile = QCoreApplication::applicationDirPath();
QString path = QFileDialog::getOpenFileName(this,QString("打开要读取的文本文件"),strOpenFile);
QFile file(path);
file.open(QIODevice::ReadOnly);
//读取全部
// QByteArray array = file.readAll();
//逐行读取
// QByteArray array;
// while (!file.atEnd()) {
// array += file.readLine();
// }
//用QTextStream 类读取
QTextStream qstream(&file);
//中文存在编码格式问题
// qstream.setCodec(QTextCodec::codecForName("utf-8"));
qstream.setCodec(QTextCodec::codecForName("GBK"));
QString array = qstream.readAll();
//文件信息的读取
QFileInfo fileInfo(path);
array += "\r\n" + QString("文件名:") + fileInfo.fileName();
array += "\r\n" + QString("后缀名:") + fileInfo.suffix();
array += "\r\n" + QString("文件大小:") + fileInfo.size();
// array += "\r\n" + QString("创建日期") + fileInfo.birthTime.toString("yyyy/MM/dd hh:mm:ss");
// array += "\r\n" + QString("修改日期") + fileInfo.lastModified.toString("yyyy/MM/dd hh:mm:ss");
ui->txb_TxtFile->setText(array);
ui->ld_TxtFile->setText(strOpenFile);
file.close();
}
//文本文件的写入
void MainWindow::on_btn_SaveTxtFile
没有合适的资源?快使用搜索试试~ 我知道了~
学习QT的基础的Demo
共39个文件
png:23个
cpp:6个
h:5个
需积分: 1 0 下载量 134 浏览量
2023-07-24
10:54:35
上传
评论
收藏 65KB ZIP 举报
温馨提示
采用Qt5.9 + msvc2017 编译器;C++语言;
资源推荐
资源详情
资源评论
收起资源包目录
LearnQt.zip (39个子文件)
LearnQt
pasbarwokerthreaad.cpp 847B
mainwindow.h 4KB
formlog.cpp 217B
mypasbarupdateth.h 345B
LearnQt.pro.user 23KB
mainwindow.cpp 42KB
img.qrc 1019B
main.cpp 183B
pasbarwokerthreaad.h 504B
mainwindow.ui 98KB
formlog.ui 690B
formlog.h 281B
mypasbarupdateth.cpp 345B
switchcontrol.h 2KB
images
照相机.png 1KB
减号.png 282B
单曲循环.png 2KB
照相机1.png 1KB
机器视觉 .png 1KB
循环.png 1KB
c.png 2KB
用户.png 2KB
中止.png 1KB
连续.png 2KB
采集 .png 2KB
图像.png 1KB
网络通讯状态.png 2KB
保存.png 860B
项目.png 723B
图像1.png 788B
关于.png 1KB
授权.png 2KB
运行.png 1KB
通讯连接.png 1KB
加号.png 380B
连续性.png 1KB
日志.png 1KB
switchcontrol.cpp 4KB
LearnQt.pro 1KB
共 39 条
- 1
资源评论
Mr_Four97
- 粉丝: 1386
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功