#include "serialportdebuggingwindow.h" #include "ui_serialportdebuggingwindow.h" #include 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() <<"可用串口信息"<port_select_combo_box->clear(); QList ports = QSerialPortInfo::availablePorts(); for(int i = 0; iport_select_combo_box->addItem(info.portName()); } // if(ports.size()!=0){ // 当串口不为空时,至少存在一个串口 // QSerialPortInfo portid = ports.at(0); // 获取第一个串口 // ui->port_select_combo_box->setCurrentText(portid.portName()); // } // 添加波特率 qDebug() <<"可用波特率信息"<rates_check_box->clear(); // 清空可选下拉框 QList rates = QSerialPortInfo::standardBaudRates(); for(int i=0;irates_check_box->addItem(QString::number(rate_item)); } }