当前位置: 首页 > news >正文

有网站前台融通资源开发公司

有网站前台,融通资源开发公司,瓯北网站制作报价,酒类公司网站模板目录 QSplashScreen 类介绍 使用方式 项目中使用 THPrinterSplashScreen头文件 THPrinterSplashScreen实现代码 使用代码 使用效果 QSplashScreen 类介绍 QSplashScreen 是 Qt 中的一个类#xff0c;用于显示启动画面。它通常在应用程序启动时显示#xff0c;以向用户显… 目录 QSplashScreen 类介绍 使用方式 项目中使用 THPrinterSplashScreen头文件 THPrinterSplashScreen实现代码 使用代码  使用效果 QSplashScreen 类介绍 QSplashScreen 是 Qt 中的一个类用于显示启动画面。它通常在应用程序启动时显示以向用户显示应用程序正在启动的状态。启动画面可以是一个图片也可以是一个包含了文本、图片等内容的窗口。 QSplashScreen(const QPixmap pixmap QPixmap(), Qt::WindowFlags f Qt::WindowFlags()) QSplashScreen(QWidget *parent, const QPixmap pixmap QPixmap(), Qt::WindowFlags f Qt::WindowFlags()) virtual ~QSplashScreen() void finish(QWidget *mainWin) QString message() const const QPixmap pixmap() const void repaint() void  setPixmap(const QPixmap pixmap) //slots void clearMessage() void showMessage(const QString message, int alignment Qt::AlignLeft, const QColor color Qt::black) //protected 可以继承自绘 virtual void drawContents(QPainter *painter)   使用方式 以下是Qt官方文档给出的两种使用场景。 作为主窗口启动前的启动动画 int main(int argc, char *argv[]){QApplication app(argc, argv);QPixmap pixmap(:/splash.png);QSplashScreen splash(pixmap);splash.show();app.processEvents();...QMainWindow window;window.show();splash.finish(window);return app.exec();} 主窗口启动前软件启动提示信息 QPixmap pixmap(:/splash.png);QSplashScreen *splash new QSplashScreen(pixmap);splash-show();... // Loading some itemssplash-showMessage(Loaded modules);qApp-processEvents();... // Establishing connectionssplash-showMessage(Established connections);qApp-processEvents(); 项目中使用 实际项目中如果软件启动比较耗时一般需要根据软件的样式风格和互动需求自定义启动动画效果此时virtual void drawContents(QPainter *painter) 和 repaint()就显得尤为重要。 以下是根据自身项目加载启动动画时显示软件版本信息和启动进度等信息主要继承drawContents进行重绘。 THPrinterSplashScreen头文件 #ifndef THPrinterSplashScreenT_H #define THPrinterSplashScreenT_H#include QSplashScreen #include Common.h#define g_pSplashScreen SingletonTHPrinterSplashScreen::getInstance()class THPrinterSplashScreen : public QSplashScreen {Q_OBJECTfriend SingletonTHPrinterSplashScreen; public://关闭自身前可以再次操作void finish(QWidget *w);//设置启动进度0-100void setProgressValue(int value);//设置启动提示信息 如库加载信息、数据库启动...void setTipStr(const QStringtipStr);protected://重写此函数 自定义绘制启动动画void drawContents(QPainter *painter) override; private:THPrinterSplashScreen();~THPrinterSplashScreen() default;QPixmap m_pixIcon;QPixmap m_picBackground;int m_nProgressValue 0;QString m_strTip; };#endif // THPrinterSplashScreenT_HTHPrinterSplashScreen实现代码 #pragma execution_character_set(utf-8)THPrinterSplashScreen::THPrinterSplashScreen() {m_picBackground.load(:/images/icon/background.png);m_pixIcon.load(:/images/icon/logo.png);setPixmap(m_picBackground);setWindowFlag(Qt::WindowStaysOnTopHint); }void THPrinterSplashScreen::finish(QWidget *w) {setProgressValue(100);setTipStr(程序加载完成!);QSplashScreen::finish(w); }void THPrinterSplashScreen::setProgressValue(int value) {if (isVisible() value 0 m_nProgressValue value) {value qBound(0, value,100);m_nProgressValue value;repaint();} }void THPrinterSplashScreen::setTipStr(const QStringtipStr) {if (isVisible() !tipStr.isEmpty() m_strTip ! tipStr) {m_strTip tipStr;repaint();} }void THPrinterSplashScreen::drawContents(QPainter *painter) {QSplashScreen::drawContents(painter);int bg_w m_picBackground.width();int bg_h m_picBackground.height();int icon_w m_pixIcon.width();int icon_h m_pixIcon.height();//默认垂直方向dpi为96 防止不同设备分辨率不同字体差异过大float fFactor logicalDpiY() / 96.0f; int smallFontSize qRound(10 * fFactor);int midFontSize qRound(15 * fFactor);int bigFontSize qRound(20 * fFactor);int fontGapSize 6;int magrinGapSize 10;int offset -20;int icon_x (bg_w - icon_w) / 2;int icon_y (bg_h - icon_h) / 2 offset;int text_name_y (bg_h icon_h) / 2 magrinGapSize offset;int text_TipStr_y text_name_y bigFontSize fontGapSize;int text_version_y bg_h - fontGapSize - midFontSize;QRect rect_Icon(icon_x, icon_y, icon_w, icon_h);//相对于parent 左上角坐标 长宽QRect rect_Name_Text(0, text_name_y, bg_w, bigFontSize fontGapSize);QRect rect_TipStr_Text(0, text_TipStr_y, bg_w, smallFontSize fontGapSize);QRect rect_Version_Text(0, text_version_y, bg_w, midFontSize fontGapSize);// 绘制启动动画logopainter-drawPixmap(rect_Icon, m_pixIcon);//绘制软件名称auto font painter-font();font.setBold(true);font.setPointSize(bigFontSize);painter-setFont(font);auto pen painter-pen();pen.setColor(Qt::white);painter-setPen(pen);painter-drawText(rect_Name_Text, Qt::AlignCenter, tr(设备指纹烧录工具));//绘制启动中提示信息font painter-font();font.setBold(false);font.setPointSize(smallFontSize);painter-setFont(font);if (!m_strTip.isEmpty()){painter-drawText(rect_TipStr_Text, Qt::AlignCenter, m_strTip);}//绘制软件版本信息font painter-font();font.setPointSize(midFontSize);painter-setFont(font);auto strVersion PmsUpDater::getVersion();if (!strVersion.isEmpty()) {painter-drawText(rect_Version_Text, Qt::AlignCenter, strVersion);}//在rect_Version_Text最右侧绘制软件启动进度if (m_nProgressValue 0) {rect_Version_Text.adjust(0, 0, -midFontSize, 0);painter-drawText(rect_Version_Text,Qt::AlignVCenter | Qt::AlignRight,QString(%1%).arg(m_nProgressValue));} } 使用代码  main函数中嵌入到软件主界面启动前后。 int main(int argc, char *argv[]){//...g_pSplashScreen-setProgressValue(0);g_pSplashScreen-show();PmsUpDater w;w.show();g_pSplashScreen-finish(w);//...return a.exec();} 在程序启动比较耗时的地方添加进度信息和提示信息便于判断程序启动的状态若程序启动失败也可作为定位失败位置的信息。 int THPrinter::Initial(){//...//初始化SDKInitialSdk();g_pSplashScreen-setTipStr(SDK初始化成功!);g_pSplashScreen-setProgressValue(53);//...//数据库连接开始g_pSplashScreen-setTipStr(数据库连接中...);g_pSplashScreen-setProgressValue(56);//...//连接完成g_pSplashScreen-setTipStr(数据库连完成);g_pSplashScreen-setProgressValue(57);//...} 使用效果
http://www.hkea.cn/news/14303148/

相关文章:

  • 网站优化三要素漂亮html个人简历代码
  • 网站门户是什么意思找客户app
  • 深圳龙岗网站建设公司哪家好去哪儿网站上做民宿需要材料
  • 石家庄城乡建设局网站中国建设部网官方网站
  • 网络销售怎么做网站沈阳男科医院哪家好哪个医院正规
  • 宁波专业网站建设公司网站用户建设的设计与实现
  • 南通网站设计制作做公司网站需要准备什么科目
  • 彩票网站建设安全度上海城隍庙
  • 具有营销型网站有哪些建筑人才网 一建港航
  • 企业网站建设合同电子版长沙防疫优化
  • wordpress主题点赞seo门户 site
  • 成都动力无限网站推广wordpress图片网站
  • wordpress lampp建站域名上面怎么建设网站
  • 公司网站的制作公司凡科建设网站怎样收录百度
  • 网站制作北京网站建设公司哪家好免费好用的wordpress
  • 博客系统做网站南昌网页制作
  • 要学做游戏上什么网站学好搬瓦工 wordpress
  • 任务一 分析电子商务网站栏目结构网站无障碍建设报告
  • 网站开发用什么编程wordpress倒计时插件下载
  • 好多词网站营销推广的工作内容
  • 制作网站制作网站建设的自适应自助建站网站
  • 网站制作与发布集团高端网站
  • 上上海网站建设设计天津网站经营性备案
  • 手机网站头部品牌建设需打持久战
  • 企业开发哈尔滨做网站seo的
  • 建立属于我们的网站有云服务器怎么做网站
  • 天津网站建设怎么样网站建设公司广州增城
  • 大学生网站规划建设建设网站的功能包括哪些
  • 网站建设网站建设微信开发公司
  • 网站建好了 如何推广网站的留言功能