【发布时间】:2020-04-04 03:50:30
【问题描述】:
我确定我的问题很简单,但我无法调试它!
我正在尝试将 spinBox 小部件连接到自定义函数,该函数在 Qt 上设置我的 QSerialPort 实例的 com 端口。
我的主窗口构造器,我尝试将我的 com_spinBox 连接到名为 setComPort() 的自定义函数:
QSerialPort *serial;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this); // Here by default. Takes a pointer to mainwindow as argument
serial = new QSerialPort(this); // this (mainwindow) is parent
connect(ui->com_spinBox, SIGNAL(valueChanged(QString)),
this, SLOT(MainWindow::setComPort()));
serial->setBaudRate(QSerialPort::Baud9600);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
qDebug() << "is " << serial->open(QSerialPort::ReadOnly);
qDebug() << "err " << serial->error();
}
我也在 MainWindow.cpp 中定义我的函数(并在 .h 中声明它):
void MainWindow::setComPort()
{
qDebug() << "fu";
}
在更改我的 spinBox 的值时,我在调试控制台上看不到任何内容。是合成器问题吗?我知道 qDebug 可以工作,因为我可以在构造函数中打印其他内容没问题。 谢谢!
【问题讨论】:
-
SLOT(MainWindow::setComPort())这是错误的。请查看documentation 并更喜欢使用新的信号/插槽语法。
标签: qt serial-port widget connect