我正在用C ++和Qt Creator编程,我的代码完美无缺。不过我遇到的问题是,当我编译代码时会收到警告。
QMetaObject::connectSlotsByName: No matching signal for on_but_PrintTab_clicked()
曾经有一个名为 on_but_PrintTab_clicked()的广告位,但它已不复存在。我怎样才能摆脱这个警告?
答案 0 :(得分:1)
您的通话中某处有connect()
来电,正在尝试连接on_but_PrintTab_clicked
。只需搜索" on_but_PrintTab_clicked"并删除此connect()
来电。
答案 1 :(得分:1)
Qt autoconnect mechanism尝试将信号连接到对象的插槽,形式为:
describe('when it succeeds', () => {
var sandbox, server, Instance;
beforeEach(() => {
sandbox = sinon.sandbox.create();
sandbox.useFakeServer();
server = sandbox.server;
server.respondWith([200, { "Content-Type": "application/json" }, JSON.stringify({ data: { token: '' }})]);
sandbox.spy(AuthActions, 'login');
Instance = TestUtils.renderIntoDocument(<Component />);
});
afterEach(() => {
sandbox.restore();
});
it('should login', (done) => {
Instance._submitHandler({})({})
.then(() => {
expect(AuthActions.login.called).to.equal(true);
done();
}, done);
setTimeout(() => {
server.respond();
}, 0);
});
});
所以在这里它试图找到一个名为 foreach (DataRow dr in objNews.GetFirstImgOrVideo().Rows)
{
litFirstImg.Text += "<div class='item'>" +
"<img src='img/news/" + dr["fldSliderImg"] + "' class='img-responsive' />" +
"<iframe src='" + dr["fldSliderVideo"] + "'></iframe>" +
"</div>";
}
的对象,它有void on_<object name>_<signal name>(<signal parameters>);
信号将它连接到你的插槽。但是没有这样的事情,它会输出警告。
如果您有这样的插槽,您应该将其名称更改为其他内容以避免此警告。
如果按钮和插槽不再存在,请尝试在项目上再次运行qmake,它将会解决。
答案 2 :(得分:0)
更改功能的名称,或者在公共/私人插槽中声明功能,而不是在公共或私人中声明它。