试图从QDialog写入串行端口
Trying to write into a serial port from a QDialog.
我正在研究一个图形界面,它通过串行端口将8051与计算机连接起来。我可以在主窗口上完美地写端口:
void MainWindow::EnviarComando(QString comando)
{
QByteArray send = (comando + "rn").toAscii();
m_port->write(send);
ui->list_log_enviados->addItem(comando);
ui->list_log_enviados->setCurrentRow(ui->list_log_enviados->count()-1);
m_cant_bytes_enviados += send.size();
}
为m_port,为连接保存流的变量。我想从菜单实例化QDialog对象,但仍然能够从这些对话框发送命令。这可能吗?我尝试通过朋友函数,外部变量等,但由于主窗口对象调用QDialog,无论如何,它超出了范围。还有其他选择吗?
如果您这样实例化QDialog:
void MainWindow::on_menucommand_triggered()
{
MyDialog d(this);
if(d.exec()==QDialog::Accepted)
{
//do something..
}
}
然后,MyDialog可以从它的QDialog::parent()方法中检索MainWindow。这样的:void MyDialog::checkSomething()
{
MainWindow *mainWindow;
mainWindow=qobject_cast<MainWindow*>(parent());
if(mainWindow)
{
// mainWindow->sendToSerialPort(bytes);
}
}
在我看来,这会破坏MainWindow类的打包。可以重载QDialog的construct函数,并在参数中传递串口对象。
相关文章:
- Qt Q串行端口未编程设备未关闭
- 在 linux c++ 中没有通过串行端口发送的数据
- 检查串行端口Linux中是否有传入数据(cbInQue for linux)
- 在不传输的情况下更改 Win32 中的串行端口波特率
- 增强 ASIO 和串行端口异步读取
- 串行端口写入究竟如何从缓冲区实际写入数据?
- 如何将参数这些串行端口传递到函数中
- 从 C/C++ 访问 Android 中的串行端口
- Qt两个串行端口发送和接收
- 通过串行端口从GPS传感器读取
- 提升 asio 串行端口"end of file"
- 通过串行端口发送多个值
- 与QSerialPort配合使用的串行端口仿真
- 如何通过boost::asio和shared_ptr创建串行端口
- 串行端口编码
- 使用来自串行端口的字符串数据来操作振镜扫描仪在更高的速度下会出错
- 写入和读取十六进制 TRAM QT 串行端口
- Qt串行端口数据接收
- Qt modbus 串行端口流量控制处理
- 试图从QDialog写入串行端口