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

网站建设基本流程信息技术各大网站开发的区块链

网站建设基本流程信息技术,各大网站开发的区块链,企业建设网站网站建设公司,不动户激活 e路护航安全组件初学Qt时#xff0c;你是如何设置QWidget#xff0c;QPushButton等原生基础控件的样式的#xff1f;是不是主要是两种方法#xff1f; 1.直接在可视化的.ui文件中直接添加qss语句。 2.在代码中通过setStyleSheet(QString qss)来设置qss语句。 上述两种方法#xff0c;在程…初学Qt时你是如何设置QWidgetQPushButton等原生基础控件的样式的是不是主要是两种方法 1.直接在可视化的.ui文件中直接添加qss语句。 2.在代码中通过setStyleSheet(QString qss)来设置qss语句。 上述两种方法在程序规模很大时很多地方需要复用样式会非常麻烦qss语句写的到处都是极难维护要你改一个按钮样式你都要到处翻还要一个个改烦到想死 于是 为了更好地管理样式提高复用率应该把QSS样式语句写在一个个文件中文件后缀是.css或者.qss都可以但是建议保存为.css文件好点因为Notepad可以进行语法识别高亮提醒另外样式相关的文件编码最好是UTF-8带BOM程序初始化时统一加载到主程序中这样所有控件都会自动继承且通过属性过滤器决定哪个控件生效如下图。 我喜欢根据Qt原生支持QSS语句改变样式的基础控件都单独一个.css文件例如QPushButton.css、QWidget.css、QLabel.css等。。。你也可以根据你自己程序的每个窗口一个.css文件随你喜欢我只是给你一种加载样式的思路。 .css文件在Notepad中能被识别获得语法高亮自动补全的支持但是.qss不行 样式根文件StyleList.txt文件名随意改负责记录这些所有的.css文件名 这样通过读取样式根文件“StyleList.txt” 即可知有多少个.css/.qss样式文件可以加载然后对这些样式文件一个个读取然后将所有内容拼接成一个超长的QString再使用setStyleSheet(QString qss)来设置加载到主程序中。期间也可以选择性使用QFileSystemWatcher来监控这些样式文件的内容变化一旦有内容更新会发出信号然后马上重新加载所有样式。 举例我一个测试程序的exe文件在bin目录下bin同级目录下有res/QSS来存放QSS样式相关文件 创建一个加载qss样式的工具类 “QssLoadTool” 用于加载并监控这些文件的变化 qssloadtool.h #ifndef QSSLOADTOOL_H #define QSSLOADTOOL_H#include QObject #include QFile #include QFileSystemWatcherclass QssLoadTool : public QObject {Q_OBJECT public:explicit QssLoadTool(QObject *parent nullptr);// 设置qss样式文件的根文件根文件记录了需要加载的所有qss样式文件名static void setQssFileListRootFile(const QString QssRootFile);static QString getQssFileListRootFile();// 加载所有qss文件刷新程序控件样式static void LoadQss2RefreshStyle();// 监控qss相关文件发送修改就重新加载(在main调用一次即可)static void WatchQSSFileChange(QFileSystemWatcher *FileWatcher);private :// 本程序所需qss样式文件的根文件static QString m_QssRootFile;// 程序运行位置static QString m_currentPath; };#endif // QSSLOADTOOL_Hqssloadtool.cpp #include qssloadtool.h #include QDebug #include QApplicationQString QssLoadTool::m_QssRootFile ;QssLoadTool::QssLoadTool(QObject *parent) : QObject(parent) {// 获取应用程序当前路径m_currentPath QCoreApplication::applicationDirPath(); }void QssLoadTool::setQssFileListRootFile(const QString QssRootFile) {m_QssRootFile QssRootFile; }QString QssLoadTool::getQssFileListRootFile() {return m_QssRootFile; }void QssLoadTool::LoadQss2RefreshStyle() {if(m_QssRootFile.isEmpty()){qDebug() 未设置qss样式文件的根文件: m_QssRootFile;return;}qDebug() __FUNCTION__ qss样式发送变更正在重新加载...;QFile file(m_QssRootFile);if (file.open(QIODevice::ReadOnly)){QString style file.readAll();file.close();QStringList styleList style.split(\n);style.clear();QString path ;for(const QString qssfile : styleList){path m_currentPath /../res/QSS/ qssfile;file.setFileName(path.trimmed());if(file.open(QIODevice::ReadOnly)){style style file.readAll().trimmed();file.close();}else{qDebug() 打开文件失败! --- path;}}qobject_castQApplication*(QApplication::instance())-setStyleSheet(style);} }void QssLoadTool::WatchQSSFileChange(QFileSystemWatcher *FileWatcher) {if(m_QssRootFile.isEmpty()){qDebug() 未设置qss样式文件的根文件: m_QssRootFile;return;}FileWatcher-addPath(m_QssRootFile);qDebug() 监控qss样式文件的根文件: m_QssRootFile;QFile file(m_QssRootFile);if (file.open(QIODevice::ReadOnly)){QString files file.readAll();file.close();QStringList fileList files.split(\n);QString path ;for(const QString qssfile : fileList){path m_currentPath /../res/QSS/ qssfile;FileWatcher-addPath(path.trimmed());qDebug() 监控qss样式文件 : path.trimmed();}}// 被监控的qss文件发生修改时马上重新加载所有qss样式文件QObject::connect(FileWatcher, QFileSystemWatcher::fileChanged, [](){QssLoadTool::LoadQss2RefreshStyle();}); }main.cpp中使用方式 int main(int argc, char *argv[]) {QApplication a(argc, argv);// 获取exe所在位置用于拼接样式根文件的相对路径QString currentPath QCoreApplication::applicationDirPath();// 设置样式根文件QssLoadTool::setQssFileListRootFile(currentPath /../res/QSS/StyleList.txt);// 通过上一步设置的样式根文件去加载每一个.css样式文件QssLoadTool::LoadQss2RefreshStyle(); // 监控所有样式文件的内容变化一旦发生变化就马上刷新样式并生效// 如果不想监控那就接下来的这两句代码不写QFileSystemWatcher fileWatcher;QssLoadTool::WatchQSSFileChange(fileWatcher);// 主界面启动ProjectMainWindow w;w.show();return a.exec(); }
http://www.pierceye.com/news/310899/

相关文章:

  • 设计个人网站的步骤建设工程合同无效的情形有哪些
  • 网站竞争对手的选定一般参考什么标准的建设网站长沙
  • 通州个人做网站营销型网站建设开发
  • 乌海市网站建设基于asp的网络课程网站开发
  • 关掉自己做的网站网页设计与制作服务公司
  • 视频相亲网站开发成本分类信息网站推广的意义
  • 域名和网站网站开发项目视频
  • 色流网站怎么做东营建筑信息网
  • 做能支付的网站贵吗网络安全工程师考证
  • 下载类网站开发条件环球资源网成立时间
  • 客户如何找到做网站宣传的律师免费虚拟主机空间
  • 点击网站出现微信二维码的链接怎么做网架制造厂
  • 服装网站建设环境分析一家专门做房产特卖的网站
  • 网站推广方式方法品牌建设的阶段和步骤是什么
  • 游戏开发平台seo的定义
  • 北京住房和城乡建设部网站官网可信赖的购物网站建设
  • 网站百度一直没有收录热狗网站关键词优化
  • 视频网站开发价格本地app开发公司电话
  • 网站设计风格介绍北京市建设工程信息网如何登录
  • 怎么创建一个属于自己的网站怎么制作做网站
  • 大学加强网站建设与管理的通知莱芜金点子租房信息港
  • 网站的营销与推广杭州五旋科技网站建设怎么样
  • 莱芜四中网站如何优化网站目录结构
  • 深圳公司网站设计哪家好北京装修公司十大排名
  • 如何制作一个好网站做国际网站找阿里
  • 南京制作网站wordpress网站源码上传
  • 做装修效果图的网站有哪些软件泉州营销型网站设计
  • 让路由器做网站服务器一级建造师价格最新行情
  • 白沟做网站wordpress批量编辑
  • 网站充值支付宝收款怎么做天元建设集团有限公司第七建筑工程公司