Qt 开机界面上无法显示文字信息

l251765114 2016-07-05 09:21:44
想给自己的qt程序搞个开机画面,网上百度了方法都一致,就是用QSplashScreen类来添加启动界面。
开机画面添加也是十分顺利,但是想在界面上显示一些如“正在加载。。。”之类的信息,都没有成功,在桌面还是ARM板上都不能显示。
下面是main函数里的代码,不知道哪里错误了,希望大侠们帮我看看:
QSplashScreen *splash = new QSplashScreen;
splash->setPixmap(QPixmap(":/icons/pics/splash.png"));
splash->show();
Qt::Alignment topRight = Qt::AlignTop | Qt::AlignRight;
splash->showMessage(QObject::tr("Setting up the main window..."), topRight, Qt::red);
sleep(2);
mainwindow w;
splash->showMessage(QObject::tr("Loading modules..."), topRight, Qt::white);
sleep(2);
w.show();
splash->finish(&w);
...全文
532 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷静忍耐 2016-07-08
  • 打赏
  • 举报
回复
不过有试过不加processEvent 我的是可以显示字的,不知道是不是qt版本不一样,qt可能修复这一问题了 processEvent我是为了加载打开很多文件加上的
冷静忍耐 2016-07-08
  • 打赏
  • 举报
回复
引用 4 楼 l251765114 的回复:
[quote=引用 3 楼 u013466477 的回复:] [quote=引用 2 楼 l251765114 的回复:] [quote=引用 1 楼 u013466477 的回复:] 我这么写是有字的,你图片和文字不会是一个颜色被覆盖了吧 QSplashScreen splash(pixmap); splash.show(); splash.showMessage(QObject::tr("Setting up the main window..."), Qt::AlignCenter, Qt::red);
我在showMessage后面加了句a.processEvent()就可以显示了,虽然不知道为什么[/quote] 哦,是的,这个要加上。我的mian函数很长,所以忘了帮你写上了。 其实加在show前面或后面都可以,这个是为了防止界面阻塞不重绘。所以界面阻塞时加上这个,例如保存、打开等会阻塞界面的操作[/quote]你的意思是,没加这个函数,开机界面那个函数就一直阻塞,所以showMessage函数不能显示文字了?[/quote] 可以这么理解,就是阻塞的,界面不可能再去运行其他操作。你去点那个开机界面的图片,是会出现繁忙的旋转鼠标指针
l251765114 2016-07-08
  • 打赏
  • 举报
回复
引用 3 楼 u013466477 的回复:
[quote=引用 2 楼 l251765114 的回复:] [quote=引用 1 楼 u013466477 的回复:] 我这么写是有字的,你图片和文字不会是一个颜色被覆盖了吧 QSplashScreen splash(pixmap); splash.show(); splash.showMessage(QObject::tr("Setting up the main window..."), Qt::AlignCenter, Qt::red);
我在showMessage后面加了句a.processEvent()就可以显示了,虽然不知道为什么[/quote] 哦,是的,这个要加上。我的mian函数很长,所以忘了帮你写上了。 其实加在show前面或后面都可以,这个是为了防止界面阻塞不重绘。所以界面阻塞时加上这个,例如保存、打开等会阻塞界面的操作[/quote]你的意思是,没加这个函数,开机界面那个函数就一直阻塞,所以showMessage函数不能显示文字了?
冷静忍耐 2016-07-07
  • 打赏
  • 举报
回复
引用 2 楼 l251765114 的回复:
[quote=引用 1 楼 u013466477 的回复:] 我这么写是有字的,你图片和文字不会是一个颜色被覆盖了吧 QSplashScreen splash(pixmap); splash.show(); splash.showMessage(QObject::tr("Setting up the main window..."), Qt::AlignCenter, Qt::red);
我在showMessage后面加了句a.processEvent()就可以显示了,虽然不知道为什么[/quote] 哦,是的,这个要加上。我的mian函数很长,所以忘了帮你写上了。 其实加在show前面或后面都可以,这个是为了防止界面阻塞不重绘。所以界面阻塞时加上这个,例如保存、打开等会阻塞界面的操作
l251765114 2016-07-07
  • 打赏
  • 举报
回复
引用 1 楼 u013466477 的回复:
我这么写是有字的,你图片和文字不会是一个颜色被覆盖了吧 QSplashScreen splash(pixmap); splash.show(); splash.showMessage(QObject::tr("Setting up the main window..."), Qt::AlignCenter, Qt::red);
我在showMessage后面加了句a.processEvent()就可以显示了,虽然不知道为什么
冷静忍耐 2016-07-06
  • 打赏
  • 举报
回复
我这么写是有字的,你图片和文字不会是一个颜色被覆盖了吧 QSplashScreen splash(pixmap); splash.show(); splash.showMessage(QObject::tr("Setting up the main window..."), Qt::AlignCenter, Qt::red);
基于QT完成的集计算器、电子相册、相机、记事本、多媒体音乐播放器、2048小游戏为一体的多媒体系统,有系统语音提示等。(遇到问题可以评论,注意注册和登录密码等数据默认保存在C盘下的Database文件夹下,使用前需先在C盘新建一个Database命名的文件夹) 项目使用软件: QtCreate5.12 项目使用模块: 数据库 GUI 界面设计 多媒体 摄像头 截图 文字转语音 动画显示 界面包含内容 一、 开机动画界面设计(自定义图片显示,图片放置欢迎字样) 二、 登录注册设计 注: 1. 注册 数据库+MD5 加密 让用户自由注册 a. 点击注册跳转到账户注册界面、点击注册中返回可以返回登录界面 b. 注册界面数据设置为不为空,用户名和用户账号不能有重复 c. 确认注册进行数据的插入,字段:用户名、性别、账户、密码 注册成功:消息盒子提示成功,清空输入框的内容 注册失败:消息盒子提示用户存在 d. 取消注册清空所有输入框内容 e. 限定输入框的输入长度,在对应的输入框设置提示内容 f. 如何确定选择的是男还是女提示:if 判断 ui-> QRadioButton->isChecked() 2. 登录 通过查阅数据库进行对比登录 成功登录:消息盒子提示成功,播报用户名,跳转到主界面 失败登录:消息盒子提示失败,清空账户和密码 3. 输入框设计为椭圆状,设置输入提示字符 4. 按钮设置点击和触摸时颜色切换效果或者使用图片作为背景 5. 界面背景设置为图片,标题设置为中文,图标设置为图片 三、 主界面设计 1. 按钮设置点击和触摸时颜色切换效果或者使用图片作为背景 2. 界面背景设置为图片,标题设置为中文,图标设置为图片 3. 时间显示控件自由选择 4. 进入其他界面操作时进行语音提示 5. 所有子界面能够返回主界面,在返回主界面时进行消息盒子提示 6. 设置所有子界面的标题文字

16,235

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧