我正在尝试制作一个程序,该程序从一类中获取信号并激活该信号,我想激活二类中的一个插槽。
在我的例子中,第一个类是 mainWindow 类,这个类是 QMainWindow 的子类,在这个类中是我要激活的插槽。
这是 mainWindow.cpp:
mainWindow::mainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::mainWindow)
{
ui->setupUi(this);
}
mainWindow::~mainWindow()
{
delete ui;
}
void mainWindow::slotForStatusBarMessage(QString string)
{
statusBar()->showMessage(string);
}
第二个类是 mainWidget 类,它是 QWidget 的子类。
这是 mainWidget.cpp:
mainWidget::mainWidget(QWidget *parent) :
QWidget(parent)
{
buttonAddNewRecord=new QPushButton("Add new record", this);
layoutButton=new QHBoxLayout();
layoutButton->addWidget(buttonAddNewRecord);
layoutMain=new QVBoxLayout();
layoutMain->addLayout(layoutButton);
functionDatabaseOpen();
setLayout(layoutMain);
}
信号从 functionDatabaseOpen() 函数发出:
if (sqlDatabase.open())
{
emit signalForShowMessageInStatusBar("true");
}
else
{
emit signalForShowMessageInStatusBar("false");
}
我已经对数据库进行了所有设置,但由于空间问题,我没有在这里复制。
我试图在 main.cpp 中建立连接,但它似乎不起作用。
QObject::connect(mw, SIGNAL(signalForShowMessageInStatusBar(QString)), w, SLOT(slotForStatusBarMessage(QString)));
我无法使类之间的这种信号/插槽连接正常工作。你能给我任何帮助吗?
如果您对代码有任何疑问,请询问。抱歉英语不好,我不是以英语为母语的人。
非常感谢您的帮助。