首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >QT QMessageBox 问题

QT QMessageBox 问题

作者头像
zls365
发布2020-08-19 11:08:05
发布2020-08-19 11:08:05
1.8K0
举报
文章被收录于专栏:CSharp编程大全CSharp编程大全

未定义标识符 "QMessageBox"

代码是没有错,应该是你没有包函库函数引起的,你在widget.cpp里引入这个类就可以了 #include <QMessageBox> 或者直接用 #include <QtGui> 这样就可以了。

QMessageBox 乱码问题:

代码语言:javascript
复制
QMessageBox::information(this, "Warning", "请插入U盘"); //会乱码 
QMessageBox::information(this, "Warning", QString::fromLocal8Bit("请插入U盘"));//不会乱码

弹出两次的问题:

代码语言:javascript
复制
void on_checkBox_clicked(); 
 void on_checkBox_2_clicked();  
 void on_pushButton_clicked();
 //这些如果是这种形式的信号定义,则不需要写connect函数,其实也不用在设计师中连接信号与槽  
 //如果不是这样定义的就必须写connect,可以通过在设计师中连接信号与槽自动生成connect

如果已经按照如上方式定义,则不需要在qt中建立信号与槽的连接,不然就会触发两次.

如果用on_XXX_clicked()定义槽,Qt的元对象QMetaObject会自动的寻找相关的信号并链接,不能再用connect()链接了,否则就会连接两次。

void QMetaObject::connectSlotsByName ( QObject * object ) [static] 这个也是QT提供的自动绑定机制 如果你调了这个 也会出现递增执行次数的情况。

结论:

如果想用connect()来连接信号和槽,就不要使用形如on_XXX_XXX的槽。否则就不要connect。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CSharp编程大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档