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

app软件下载网站源码天涯论坛

app软件下载网站源码,天涯论坛,房产网站排行榜,seo长尾关键词优化qt版本#xff1a;5.9.1 win版本#xff1a;10.1706 下载#xff1a;https://download.csdn.net/download/zn2857/10194028 改自上篇文章的串口助手#xff0c;加入linEdit显示文件路径#xff0c;加入新pushButton加载文件#xff0c; 文件加载后显示在串口发送窗口…qt版本5.9.1 win版本10.1706 下载https://download.csdn.net/download/zn2857/10194028 改自上篇文章的串口助手加入linEdit显示文件路径加入新pushButton加载文件 文件加载后显示在串口发送窗口 短接串口助手收发后可以实现把文件发送到textBrowser 目前效果一般般发送大文件十分的卡 下面是代码 /**************************************************************************** ** ** Copyright (C) 2012 Denis Shienkov denis.shienkovgmail.com ** Copyright (C) 2012 Laszlo Papp lpappkde.org ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtSerialPort module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ** ** $QT_END_LICENSE$ ** ****************************************************************************/#include mainwindow.h #include ui_mainwindow.h //#include console.h #include settingsdialog.h#include QMessageBox #include QLabel #include QtSerialPort/QSerialPort#include QFile #include QFileDialog #include QDir #include QTextStream #include QDataStream //! [0] MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) { //! [0]ui-setupUi(this); // console new Console; // console-setEnabled(false); // setCentralWidget(console); //! [1]serial new QSerialPort(this); //! [1]settings new SettingsDialog;ui-actionConnect-setEnabled(true);ui-actionDisconnect-setEnabled(false);ui-actionQuit-setEnabled(true);ui-actionConfigure-setEnabled(true);status new QLabel;ui-statusBar-addWidget(status);initActionsConnections();connect(serial, static_castvoid (QSerialPort::*)(QSerialPort::SerialPortError)(QSerialPort::error),this, MainWindow::handleError);//! [2]connect(serial, QSerialPort::readyRead, this, MainWindow::readData); //! [2] // connect(console, Console::getData, this, MainWindow::writeData); //! [3] } //! [3]MainWindow::~MainWindow() {delete settings;delete ui; }//! [4] void MainWindow::openSerialPort() {SettingsDialog::Settings p settings-settings();serial-setPortName(p.name);serial-setBaudRate(p.baudRate);serial-setDataBits(p.dataBits);serial-setParity(p.parity);serial-setStopBits(p.stopBits);serial-setFlowControl(p.flowControl);if (serial-open(QIODevice::ReadWrite)) { // console-setEnabled(true); // console-setLocalEchoEnabled(p.localEchoEnabled);ui-actionConnect-setEnabled(false);ui-actionDisconnect-setEnabled(true);ui-actionConfigure-setEnabled(false);showStatusMessage(tr(Connected to %1 : %2, %3, %4, %5, %6).arg(p.name).arg(p.stringBaudRate).arg(p.stringDataBits).arg(p.stringParity).arg(p.stringStopBits).arg(p.stringFlowControl));} else {QMessageBox::critical(this, tr(Error), serial-errorString());showStatusMessage(tr(Open error));} } //! [4]//! [5] void MainWindow::closeSerialPort() {if (serial-isOpen())serial-close(); // console-setEnabled(false);ui-actionConnect-setEnabled(true);ui-actionDisconnect-setEnabled(false);ui-actionConfigure-setEnabled(true);showStatusMessage(tr(Disconnected)); } //! [5]void MainWindow::about() {QMessageBox::about(this, tr(About Simple Terminal),tr(The bSimple Terminal/b example demonstrates how to use the Qt Serial Port module in modern GUI applications using Qt, with a menu bar, toolbars, and a status bar.)); }//! [6] void MainWindow::writeData(const QByteArray data) {serial-write(data); } //! [6]//! [7] void MainWindow::readData() { // QByteArray data serial-readAll();// console-putData(data);QByteArray temp serial-readAll();QString buf;// if(!temp.isEmpty()) // { // buf temp;// ui-textBrowser-setText(ui-textBrowser-document()-toPlainText() buf); // ui-textBrowser-moveCursor(QTextCursor::End); // }if(!temp.isEmpty()){ // if(chrReceive-isChecked()){ // buf temp; // }else if(hexReceive-isChecked()){for(int i 0; i temp.count(); i){QString s;s.sprintf(%02X , (unsigned char)temp.at(i));buf s;} // }ui-textBrowser-setText(ui-textBrowser-document()-toPlainText() buf);ui-textBrowser-moveCursor(QTextCursor::End);// //ui-statusBar-showMessage(tr(成功读取%1字节数据).arg(temp.size()));}} //! [7]//! [8] void MainWindow::handleError(QSerialPort::SerialPortError error) {if (error QSerialPort::ResourceError) {QMessageBox::critical(this, tr(Critical Error), serial-errorString());closeSerialPort();} } //! [8]void MainWindow::initActionsConnections() {connect(ui-actionConnect, QAction::triggered, this, MainWindow::openSerialPort);connect(ui-actionDisconnect, QAction::triggered, this, MainWindow::closeSerialPort);connect(ui-actionQuit, QAction::triggered, this, MainWindow::close);connect(ui-actionConfigure, QAction::triggered, settings, SettingsDialog::show);connect(ui-actionClear, QAction::triggered, this, MainWindow::clearTextBrowser);connect(ui-actionAbout, QAction::triggered, this, MainWindow::about);connect(ui-actionAboutQt, QAction::triggered, qApp, QApplication::aboutQt); }void MainWindow::showStatusMessage(const QString message) {status-setText(message); }void MainWindow::on_pushButton_clicked() {serial-write(ui-textEdit-toPlainText().toLatin1()); }void MainWindow::clearTextBrowser() {ui-textBrowser-setText(NULL); }void MainWindow::on_openFileButton_clicked() {//get file nameQString fileName QFileDialog::getOpenFileName(this,Open File,QDir::currentPath()); // qDebug() fileName is fileName;ui-filePathLineEdit-setText (fileName);if(fileName.isEmpty()){QMessageBox::information(this,Error Message, Please Select a Text File);return;}QFileInfo *pcsfileInfo new QFileInfo(fileName);binSize pcsfileInfo-size ();QFile* file new QFile;file-setFileName(fileName);bool ok file-open(QIODevice::ReadOnly);if(ok){ // QTextStream in(file); // ui-textEdit-setText(in.readAll());//read all context from the file}else{QMessageBox::information(this,Error Message, File Open Error file-errorString());return;}QDataStream in(file);char * binByte new char[binSize];in.setVersion (QDataStream::Qt_5_9);in.readRawData (binByte, binSize); //读出文件到缓存QByteArray *tempByte new QByteArray(binByte, binSize); //格式转换delete[] binByte;QString *tempStr new QString(tempByte-toHex ().toUpper ()); // delete tempByte;//显示文件内容qint8 cnt 1;qint16 kcnt 0;for(qint64 i 2; i tempStr-size ();){tempStr-insert (i, );//每个字节之间空一格i 3;cnt;if(cnt 8)//每8个字节空2格{tempStr-insert (i, );i 1;}if(cnt 16)//每16个字节空一格{cnt 1;kcnt ;if(kcnt 64)//每64行即1K数据空一行{kcnt 0;tempStr-insert (i, \n);i;}tempStr-insert (i, \n);i 3; //避免换行后开头一个空格,换行相当于从新插入}}ui-textEdit-insertPlainText (*tempStr);serial-write(*tempByte);delete tempByte;delete tempStr;file-close ();delete file; }/**************************************************************************** ** ** Copyright (C) 2012 Denis Shienkov denis.shienkovgmail.com ** Copyright (C) 2012 Laszlo Papp lpappkde.org ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtSerialPort module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:BSD$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** BSD License Usage ** Alternatively, you may use this file under the terms of the BSD license ** as follows: ** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are ** met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in ** the documentation and/or other materials provided with the ** distribution. ** * Neither the name of The Qt Company Ltd nor the names of its ** contributors may be used to endorse or promote products derived ** from this software without specific prior written permission. ** ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ** AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ** ** $QT_END_LICENSE$ ** ****************************************************************************/#include settingsdialog.h #include ui_settingsdialog.h#include QtSerialPort/QSerialPortInfo #include QIntValidator #include QLineEditQT_USE_NAMESPACEstatic const char blankString[] QT_TRANSLATE_NOOP(SettingsDialog, N/A);SettingsDialog::SettingsDialog(QWidget *parent) :QDialog(parent),ui(new Ui::SettingsDialog) {ui-setupUi(this);intValidator new QIntValidator(0, 4000000, this);ui-baudRateBox-setInsertPolicy(QComboBox::NoInsert);connect(ui-applyButton, QPushButton::clicked,this, SettingsDialog::apply);connect(ui-serialPortInfoListBox, static_castvoid (QComboBox::*)(int)(QComboBox::currentIndexChanged),this, SettingsDialog::showPortInfo);connect(ui-baudRateBox, static_castvoid (QComboBox::*)(int)(QComboBox::currentIndexChanged),this, SettingsDialog::checkCustomBaudRatePolicy);connect(ui-serialPortInfoListBox, static_castvoid (QComboBox::*)(int)(QComboBox::currentIndexChanged),this, SettingsDialog::checkCustomDevicePathPolicy);fillPortsParameters();fillPortsInfo();updateSettings(); }SettingsDialog::~SettingsDialog() {delete ui; }SettingsDialog::Settings SettingsDialog::settings() const {return currentSettings; }void SettingsDialog::showPortInfo(int idx) {if (idx -1)return;QStringList list ui-serialPortInfoListBox-itemData(idx).toStringList();ui-descriptionLabel-setText(tr(Description: %1).arg(list.count() 1 ? list.at(1) : tr(blankString)));ui-manufacturerLabel-setText(tr(Manufacturer: %1).arg(list.count() 2 ? list.at(2) : tr(blankString)));ui-serialNumberLabel-setText(tr(Serial number: %1).arg(list.count() 3 ? list.at(3) : tr(blankString)));ui-locationLabel-setText(tr(Location: %1).arg(list.count() 4 ? list.at(4) : tr(blankString)));ui-vidLabel-setText(tr(Vendor Identifier: %1).arg(list.count() 5 ? list.at(5) : tr(blankString)));ui-pidLabel-setText(tr(Product Identifier: %1).arg(list.count() 6 ? list.at(6) : tr(blankString))); }void SettingsDialog::apply() {updateSettings();hide(); }void SettingsDialog::checkCustomBaudRatePolicy(int idx) {bool isCustomBaudRate !ui-baudRateBox-itemData(idx).isValid();ui-baudRateBox-setEditable(isCustomBaudRate);if (isCustomBaudRate) {ui-baudRateBox-clearEditText();QLineEdit *edit ui-baudRateBox-lineEdit();edit-setValidator(intValidator);} }void SettingsDialog::checkCustomDevicePathPolicy(int idx) {bool isCustomPath !ui-serialPortInfoListBox-itemData(idx).isValid();ui-serialPortInfoListBox-setEditable(isCustomPath);if (isCustomPath)ui-serialPortInfoListBox-clearEditText(); }void SettingsDialog::fillPortsParameters() {ui-baudRateBox-addItem(QStringLiteral(9600), QSerialPort::Baud9600);ui-baudRateBox-addItem(QStringLiteral(19200), QSerialPort::Baud19200);ui-baudRateBox-addItem(QStringLiteral(38400), QSerialPort::Baud38400);ui-baudRateBox-addItem(QStringLiteral(115200), QSerialPort::Baud115200);ui-baudRateBox-addItem(tr(Custom));ui-dataBitsBox-addItem(QStringLiteral(5), QSerialPort::Data5);ui-dataBitsBox-addItem(QStringLiteral(6), QSerialPort::Data6);ui-dataBitsBox-addItem(QStringLiteral(7), QSerialPort::Data7);ui-dataBitsBox-addItem(QStringLiteral(8), QSerialPort::Data8);ui-dataBitsBox-setCurrentIndex(3);ui-parityBox-addItem(tr(None), QSerialPort::NoParity);ui-parityBox-addItem(tr(Even), QSerialPort::EvenParity);ui-parityBox-addItem(tr(Odd), QSerialPort::OddParity);ui-parityBox-addItem(tr(Mark), QSerialPort::MarkParity);ui-parityBox-addItem(tr(Space), QSerialPort::SpaceParity);ui-stopBitsBox-addItem(QStringLiteral(1), QSerialPort::OneStop); #ifdef Q_OS_WINui-stopBitsBox-addItem(tr(1.5), QSerialPort::OneAndHalfStop); #endifui-stopBitsBox-addItem(QStringLiteral(2), QSerialPort::TwoStop);ui-flowControlBox-addItem(tr(None), QSerialPort::NoFlowControl);ui-flowControlBox-addItem(tr(RTS/CTS), QSerialPort::HardwareControl);ui-flowControlBox-addItem(tr(XON/XOFF), QSerialPort::SoftwareControl); }void SettingsDialog::fillPortsInfo() {ui-serialPortInfoListBox-clear();QString description;QString manufacturer;QString serialNumber;const auto infos QSerialPortInfo::availablePorts();for (const QSerialPortInfo info : infos) {QStringList list;description info.description();manufacturer info.manufacturer();serialNumber info.serialNumber();list info.portName() (!description.isEmpty() ? description : blankString) (!manufacturer.isEmpty() ? manufacturer : blankString) (!serialNumber.isEmpty() ? serialNumber : blankString) info.systemLocation() (info.vendorIdentifier() ? QString::number(info.vendorIdentifier(), 16) : blankString) (info.productIdentifier() ? QString::number(info.productIdentifier(), 16) : blankString);ui-serialPortInfoListBox-addItem(list.first(), list);}ui-serialPortInfoListBox-addItem(tr(Custom)); }void SettingsDialog::updateSettings() {currentSettings.name ui-serialPortInfoListBox-currentText();if (ui-baudRateBox-currentIndex() 4) {currentSettings.baudRate ui-baudRateBox-currentText().toInt();} else {currentSettings.baudRate static_castQSerialPort::BaudRate(ui-baudRateBox-itemData(ui-baudRateBox-currentIndex()).toInt());}currentSettings.stringBaudRate QString::number(currentSettings.baudRate);currentSettings.dataBits static_castQSerialPort::DataBits(ui-dataBitsBox-itemData(ui-dataBitsBox-currentIndex()).toInt());currentSettings.stringDataBits ui-dataBitsBox-currentText();currentSettings.parity static_castQSerialPort::Parity(ui-parityBox-itemData(ui-parityBox-currentIndex()).toInt());currentSettings.stringParity ui-parityBox-currentText();currentSettings.stopBits static_castQSerialPort::StopBits(ui-stopBitsBox-itemData(ui-stopBitsBox-currentIndex()).toInt());currentSettings.stringStopBits ui-stopBitsBox-currentText();currentSettings.flowControl static_castQSerialPort::FlowControl(ui-flowControlBox-itemData(ui-flowControlBox-currentIndex()).toInt());currentSettings.stringFlowControl ui-flowControlBox-currentText();currentSettings.localEchoEnabled ui-localEchoCheckBox-isChecked(); }
http://www.zqtcl.cn/news/608061/

相关文章:

  • 网站挂到国外服务器地址重庆网络公司排行榜
  • 网站seo诊断优化方案好网站的建设标准
  • 惠东县网站建设WordPress版本识别
  • 网站服务器信息查询宝塔系统怎么建设网站
  • 企业做网站需要提供什么资料桂林微物网络科技有限公司
  • 网站建设淘宝评价学校门户网站
  • 网页制作与网站管理amp 网站开发
  • 青岛手机网站建设公司房屋装修预算明细表格
  • 企业内部网站设计手机网站建设费用价格
  • 苏州高端网站建设公司建筑人才网报名平台
  • 商品网站开发需求表乐清公共
  • 省级示范校建设网站网站制作企业有哪些公司
  • 单位做网站怎么做510企业网站系统源码
  • 福建人力资源建设网站未成年在线观看视频播放免费
  • 网站站内logo怎么做朋友圈广告30元 1000次
  • 绍兴做网站北京做公司网站
  • 青浦区网站建设公司商丘网站建设费用
  • 百度网站是怎么建设的wordpress媒体主题
  • 孝感网站建设xgsh国内比百度好的搜索引擎
  • 阅读网站怎样做网站右侧固定标题怎么做
  • 网站开发多少钱农民wordpress acf破解版
  • 厦门网站建设培训云南最便宜的网站建设
  • 吉安手机网站建设html网页布局
  • wordpress英文文章格式怎样给网站做优化
  • 新网站友链网店托管公司
  • 期末作业制作网站网站上传根目录
  • 新网站不被收录的原因兰州网络seo公司
  • 男生可以做网站编辑工作吗网站域名跟谁买
  • 我市精神文明建设的门户网站做网站需要写代码
  • 新网站推广网站搜索引擎优化的步骤