122 lines
3.8 KiB
C++
122 lines
3.8 KiB
C++
|
#include "serialportdebuggingwindow.h"
|
||
|
#include "ui_serialportdebuggingwindow.h"
|
||
|
#include <QDebug>
|
||
|
|
||
|
SerialPortDebuggingWindow::SerialPortDebuggingWindow(QWidget *parent) :
|
||
|
QMainWindow(parent),
|
||
|
ui(new Ui::SerialPortDebuggingWindow)
|
||
|
{
|
||
|
ui->setupUi(this);
|
||
|
|
||
|
// 初始化串口调试窗
|
||
|
initSPDW();
|
||
|
}
|
||
|
|
||
|
SerialPortDebuggingWindow::~SerialPortDebuggingWindow()
|
||
|
{
|
||
|
delete ui;
|
||
|
}
|
||
|
|
||
|
void SerialPortDebuggingWindow::initSPDW()
|
||
|
{
|
||
|
initMenuBar(); // 初始化菜单栏
|
||
|
initToolBar(); // 初始化工具栏
|
||
|
initPortShow(); // 初始化串口设置栏
|
||
|
}
|
||
|
|
||
|
void SerialPortDebuggingWindow::initMenuBar()
|
||
|
{
|
||
|
// 关于
|
||
|
connect(ui->actionabout,&QAction::triggered,[&](){
|
||
|
QMessageBox::about(this,"关于","这是liubo写的Qt的练习项目");
|
||
|
});
|
||
|
|
||
|
// 退出
|
||
|
connect(ui->actionexitAction,&QAction::triggered,[&](){
|
||
|
qDebug() <<"退出";
|
||
|
// emit close_app();
|
||
|
QApplication::quit();
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
void SerialPortDebuggingWindow::initToolBar()
|
||
|
{
|
||
|
open_action = new QAction(this);
|
||
|
stop_action = new QAction(this);
|
||
|
add_action = new QAction(this);
|
||
|
time_action = new QAction(this);
|
||
|
loadfile_action = new QAction(this);
|
||
|
write2file_action = new QAction(this);
|
||
|
save_action = new QAction(this);
|
||
|
clearbytes_action = new QAction(this);
|
||
|
cleanport_action = new QAction(this);
|
||
|
msg_action = new QAction(this);
|
||
|
|
||
|
open_action->setIcon(QIcon(":open"));
|
||
|
stop_action->setIcon(QIcon(":stop"));
|
||
|
add_action->setIcon(QIcon(":add"));
|
||
|
time_action->setIcon(QIcon(":time"));
|
||
|
loadfile_action->setIcon(QIcon(":loadfile"));
|
||
|
write2file_action->setIcon(QIcon(":write2file"));
|
||
|
save_action->setIcon(QIcon(":save"));
|
||
|
clearbytes_action->setIcon(QIcon(":clearbytes"));
|
||
|
cleanport_action->setIcon(QIcon(":cleanport"));
|
||
|
msg_action->setIcon(QIcon(":msg"));
|
||
|
|
||
|
tool_bar = new QToolBar(this);
|
||
|
tool_bar->addAction(open_action);
|
||
|
tool_bar->addAction(stop_action);
|
||
|
tool_bar->addSeparator(); // 分隔线
|
||
|
tool_bar->addAction(add_action);
|
||
|
tool_bar->addAction(time_action);
|
||
|
tool_bar->addAction(loadfile_action);
|
||
|
tool_bar->addAction(write2file_action);
|
||
|
tool_bar->addAction(save_action);
|
||
|
tool_bar->addSeparator();
|
||
|
tool_bar->addAction(clearbytes_action);
|
||
|
tool_bar->addAction(cleanport_action);
|
||
|
tool_bar->addSeparator();
|
||
|
tool_bar->addAction(msg_action);
|
||
|
|
||
|
tool_bar->setMovable(false); // 禁止移动
|
||
|
// tool_bar->setFloatable(true);
|
||
|
tool_bar->setAllowedAreas(Qt::TopToolBarArea);
|
||
|
tool_bar->setFixedHeight(40);
|
||
|
|
||
|
this->addToolBar(tool_bar); // 将工具栏添加到当前 Window
|
||
|
|
||
|
// 绑定工具行为
|
||
|
connect(msg_action,&QAction::triggered,[&](){
|
||
|
QMessageBox::about(this,"关于","这是liubo写的Qt的练习项目");
|
||
|
});
|
||
|
}
|
||
|
|
||
|
void SerialPortDebuggingWindow::initPortShow()
|
||
|
{
|
||
|
// 添加串口并显示当前串口
|
||
|
qDebug() <<"可用串口信息"<<endl;
|
||
|
ui->port_select_combo_box->clear();
|
||
|
QList<QSerialPortInfo> ports = QSerialPortInfo::availablePorts();
|
||
|
for(int i = 0; i<ports.size();i++){
|
||
|
QSerialPortInfo info = ports.at(i);
|
||
|
qDebug() << info.portName();
|
||
|
ui->port_select_combo_box->addItem(info.portName());
|
||
|
}
|
||
|
// if(ports.size()!=0){ // 当串口不为空时,至少存在一个串口
|
||
|
// QSerialPortInfo portid = ports.at(0); // 获取第一个串口
|
||
|
// ui->port_select_combo_box->setCurrentText(portid.portName());
|
||
|
// }
|
||
|
|
||
|
|
||
|
// 添加波特率
|
||
|
qDebug() <<"可用波特率信息"<<endl;
|
||
|
ui->rates_check_box->clear(); // 清空可选下拉框
|
||
|
QList<qint32> rates = QSerialPortInfo::standardBaudRates();
|
||
|
for(int i=0;i<rates.size();i++){
|
||
|
qint32 rate_item = rates.at(i);
|
||
|
qDebug()<<rate_item;
|
||
|
ui->rates_check_box->addItem(QString::number(rate_item));
|
||
|
}
|
||
|
}
|