QT C 多執行緒多串列埠介面設計

2021-09-10 23:47:48 字數 2543 閱讀 9162

2023年04月05日 20:57:47 江東風又起

第一,在qtdesigner下,建立好ui,如下圖(右下角是我自己的小公司,留個爪印哈):

ui細節就不詳細說了,具體可以看文末連線的工程檔案

第二,新建串列埠線程類,這裡要說明一下,qt本身已有串列埠類,我這裡繼承了qthread後,在類內新增串列埠類成員,**如下:

#ifndef taserialthread_h

#define taserialthread_h

#include #include #include #include class ta_serialthread:public qthread

;#endif // taserialthread_h

有幾處說明,

qserialport *m_arrserial;
指標用於儲存多個串列埠,當串列埠陣列用了

uint8_t portcnt;
用於標記當前串列埠的總個數

portindex用於明確對哪個串列埠操作

第三,新建主視窗類,目的是將ui與底層連線起來,把二者融合在乙個類裡,類如下:

#ifndef mainwindow_h

#define mainwindow_h

#include #include "taserialthread.h"

namespace ui

class mainwindow : public qmainwindow

;#endif // mainwindow_h

都是通過私有成員的方式,新增進類mainwindow

第四,訊號與槽連線以及細節處理

#include "mainwindow.h"

#include "ui_mainwindow.h"

mainwindow::mainwindow(qwidget *parent) :

qmainwindow(parent),

ui(new ui::mainwindow)

mainwindow::~mainwindow()

void mainwindow::mwonoffport(void)

switch(ui->combobox_sportstopbit->currentindex())

switch(ui->combobox_sportoebit->currentindex())

sportthread->openport(comindex);

connect(&(sportthread->m_arrserial[comindex]), signal(readyread()), this, slot(mwreaddata()));

//引數設定禁止

ui->combobox_sportname->setenabled(false);

ui->combobox_sportbaud->setenabled(false);

ui->combobox_sportdatabit->setenabled(false);

ui->combobox_sportoebit->setenabled(false);

ui->combobox_sportstopbit->setenabled(false);

ui->pushbutton_opencom->settext(tr("關閉串列埠"));

//傳送設定使能

ui->pushbutton_sendcmd->setenabled(true);

ui->graphicsview_comstatus->setstylesheet("background-color: rgb(0, 255, 0);");

ui->label_comstatus->settext(tr("串列埠狀態: 連線"));

}else

}void mainwindow::mwsendcmd(void)

void mainwindow::mwreaddata(void)

buf.clear();

}void mainwindow::mwclearrecv(void)

void mainwindow::mwrsnumdisplay(void)

看一下執行效果,

執行後

開啟串列埠,傳送指令

主要功能是,按set+電壓值+v的格式向dsp28335傳送命令,如果dsp正確解析命令並調節出相應電壓值,則返回v,經多次測試ok。

logo和自適應視窗大小還沒做,介面還比較單調,以後會逐漸完善的

QT C 多執行緒多串列埠介面設計

忙了兩三天了,總算得空記錄一下qt串列埠,文末會有總的工程檔案上傳,多謝大家捧場。之前博文寫過pyqt,目前我逐漸偏向c 了,但主要 思想沒有變,如下 第一,在qtdesigner下,建立好ui,如下圖 ui細節就不詳細說了,具體可以看文末連線的工程檔案 第二,新建串列埠線程類,這裡要說明一下,qt...

iOS多介面設計雜談

nsuserdefaults launchsettings nsuserdefaults standarduserdefaults if launchsettings boolforkey haslaunched no 該方法是頁面即將出現的時候被呼叫,可放入實時重新整理的語句,例如下面的例子是簡易...

VC 多文件使用者介面設計

用習慣了 delphi vb windows form visual c 等稱之為 rad 的開發工具進行專案開發的都會很滿足這些工具和平台提供的快速介面開發的功效 你可以很容易就可以實現乙個 mis系統的管理介面,提供乙個主框架,點選主框架上的某乙個選單項就開啟乙個處理事務的視窗,這些視窗可以重疊...