diff --git a/QtCustomStyleEx/ExCustomStyle.cpp b/QtCustomStyleEx/ExCustomStyle.cpp index fe3ea79..e87fbb3 100644 --- a/QtCustomStyleEx/ExCustomStyle.cpp +++ b/QtCustomStyleEx/ExCustomStyle.cpp @@ -1,6 +1,10 @@ #include "ExCustomStyle.h" +CUSTOMSTYLE_BEDGIN_NAMESPACE + ExCustomStyle::ExCustomStyle() { } + +CUSTOMSTYLE_END_NAMESPACE diff --git a/QtCustomStyleEx/ExCustomStyle.h b/QtCustomStyleEx/ExCustomStyle.h index a26377e..b6cc511 100644 --- a/QtCustomStyleEx/ExCustomStyle.h +++ b/QtCustomStyleEx/ExCustomStyle.h @@ -3,6 +3,10 @@ #include +#include "ExDefineGlobal.h" + +CUSTOMSTYLE_BEDGIN_NAMESPACE + class ExCustomStyle : public QCommonStyle { Q_OBJECT @@ -11,4 +15,6 @@ public: ExCustomStyle(); }; +CUSTOMSTYLE_END_NAMESPACE + #endif // EXCUSTOMSTYLE_H diff --git a/QtCustomStyleEx/ExDefineGlobal.h b/QtCustomStyleEx/ExDefineGlobal.h new file mode 100644 index 0000000..d0d4d79 --- /dev/null +++ b/QtCustomStyleEx/ExDefineGlobal.h @@ -0,0 +1,13 @@ +#ifndef EXDEFINEGLOBAL_H +#define EXDEFINEGLOBAL_H + +//用来定义一些宏的使用: 尝试写大项目的架构 + +//定义命名空间的宏(在定义 class ExCustomStyle: 的时候用到了 eg: ExCustomStyle.h ExCustomStyle.cpp里面) +#define CUSTOMSTYLE_BEDGIN_NAMESPACE namespace touwoyimuliStyle { +#define CUSTOMSTYLE_END_NAMESPACE } + +//定义使用命名空间((在使用 class ExCustomStyle的定义内容时候用到了 eg:Examples.cpp里面)) +#define CUSTOMSTYLE_USE_NAMESPACE using namespace touwoyimuliStyle; + +#endif // EXDEFINEGLOBAL_H diff --git a/QtCustomStyleEx/Examples.cpp b/QtCustomStyleEx/Examples.cpp index 49fcbae..b3c6912 100644 --- a/QtCustomStyleEx/Examples.cpp +++ b/QtCustomStyleEx/Examples.cpp @@ -1,15 +1,53 @@ #include "Examples.h" #include "ui_Examples.h" +CUSTOMSTYLE_USE_NAMESPACE + Examples::Examples(QWidget *parent) : QWidget(parent), ui(new Ui::Examples) { ui->setupUi(this); setWindowTitle(QObject::tr("创建自定义的CustomStyle风格")); + + init(); } Examples::~Examples() { delete ui; } + +//获取当前系统支持的默认系统风格 +void Examples::init() +{ + //当前系统支持的系统风格,放入QcomboBox的item里面,且打印出来 + QStringList listStyle = QStyleFactory::keys(); + foreach(QString val, listStyle) { + ui->comboBox->addItem(val); + qDebug()<comboBox->addItem("ExCustomStyle"); + qApp->setStyle(QStyleFactory::create("Fusion")); +} + + +void Examples::on_comboBox_currentIndexChanged(const QString &style) +{ +// qDebug()<<"当前选中的风格:"<setStyle(QStyleFactory::create(style)); + return; + } + } + + //不属于系统风格,则使用自己的风格 + ExCustomStyle* customStyle = new ExCustomStyle; + qApp->setStyle(customStyle); + +} diff --git a/QtCustomStyleEx/Examples.h b/QtCustomStyleEx/Examples.h index 8fe4eaa..476078d 100644 --- a/QtCustomStyleEx/Examples.h +++ b/QtCustomStyleEx/Examples.h @@ -2,6 +2,10 @@ #define EXAMPLES_H #include +#include +#include + +#include "ExCustomStyle.h" namespace Ui { class Examples; @@ -15,6 +19,10 @@ public: explicit Examples(QWidget *parent = nullptr); ~Examples(); + void init(); //获取当前系统支持的默认系统风格 +private slots: + void on_comboBox_currentIndexChanged(const QString &style); + private: Ui::Examples *ui; }; diff --git a/QtCustomStyleEx/Examples.ui b/QtCustomStyleEx/Examples.ui index 5063ebe..33c8789 100644 --- a/QtCustomStyleEx/Examples.ui +++ b/QtCustomStyleEx/Examples.ui @@ -26,141 +26,149 @@ 滚动条 - + - 30 - 280 - 531 - 31 + 10 + 10 + 441 + 251 - - Qt::Horizontal - - - - - - 540 - 40 - 31 - 191 - - - - Qt::Vertical - - - - - - 40 - 60 - 431 - 161 - - - - - a - - - - - b - - - - - c - - - - - d - - - - - e - - - - - f - - - - - 1 - - - - - 2 - - - - - 3 - - - - - 4 - - - - - 5 - - - - - 6 - - + + + + + + 0 + 0 + + + + + 400 + 200 + + + + + a + + + + + b + + + + + c + + + + + d + + + + + e + + + + + f + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + Qt::Horizontal + + + + + + + Qt::Vertical + + + + - 650 - 40 - 131 - 22 + 470 + 10 + 135 + 31 - - - Windows - - - - - New Item - - - - - WindowsXP - - - - - WindowsVista - - - - - Fusion - - - - - ExCustomStyle - - diff --git a/QtCustomStyleEx/QtCustomStyleEx.pro b/QtCustomStyleEx/QtCustomStyleEx.pro index e46ec7f..26c2f8e 100644 --- a/QtCustomStyleEx/QtCustomStyleEx.pro +++ b/QtCustomStyleEx/QtCustomStyleEx.pro @@ -31,12 +31,13 @@ SOURCES += \ HEADERS += \ Examples.h \ - ExCustomStyle.h + ExCustomStyle.h \ + ExDefineGlobal.h FORMS += \ Examples.ui -RC_ICONS += QT_win_32x32.ico +RC_ICONS += qt.ico # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin diff --git a/QtCustomStyleEx/main.cpp b/QtCustomStyleEx/main.cpp index ca64a72..953ffca 100644 --- a/QtCustomStyleEx/main.cpp +++ b/QtCustomStyleEx/main.cpp @@ -9,7 +9,7 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); - //使用系统或者自定义的风格 +// //使用系统或者自定义的风格 // QStringList listStyle = QStyleFactory::keys(); // foreach(QString val, listStyle) // qDebug()<**开发环境:** `win10 x64 专业版 1803` **操作系统版本**:`17134.829` **开发软件:** `Qt Creator 4.8.2 (Enterprise)` 、 `Qt 5.9.8` @@ -39,15 +39,31 @@ - `Qt Creator` **IDE**的界面组成和使用讲解 - 编写一个**qt**的第一个项目: `Hello World`的项目 - ## 第二部分:qt生成原理/运行机制 - [`make` `makefile` `cmake` `qmake`都是什么,有什么区别?](https://blog.csdn.net/qq_33154343/article/details/98170236) - ## 第三部分:常用控件 +- 一个默认的`Qt Widget`项目 【空】 +- 元对象系统`moc`(**Meat-Object System**)的对象`MetaObject`和(含动态)属性`Propert`的用法【QtMeatObjectEx】 +- 初识`QString`函数,用`QString`显示2/8/10/16进制互相转化 【QtQStringEx】 +- `QString`常用的功能函数的介绍和用法 【QtQStringFunEx】 +- `QSlider`的介绍和用法【QtQSliderEx】 +- `QSlider`移动条、`QScrollBar`滚动条、`QProgressBar`进度条控件的联动【QtQProgressBarEx】 +- `QSlider`仪表盘的用法【QtQdialQLCDEx】 +- 时间日期(`QTime`/`QDate`/`QDateTime`)和定时器(`QTimer`)的介绍和使用 【QtDateTimeEx】 +- `QComboBox`(下拉列表框)和`QPlainTextEdit`(多行富文本编辑器)的用法 【QtQcomboBoxEx】 +
+ +## 第四部分:自定义风格样式QStyle + +- 自定义`QStyle`界面所有控件的风格,换肤效果的教程,自定义继承`QCommonStyle`的风格类【QtCustomStyleEx】 +- 预备知识:`QStyle`、`QCommonStyle`d等讲解 +- [更换`Qt`应用程序的界面`UI`,实现换肤,改用自带其他默认`QStyle`风格样式](https://mp.csdn.net/mdeditor/100148539#) + +
## 补充部分:补充较杂的知识点 @@ -60,17 +76,22 @@ - [qt中文乱码问题](https://blog.csdn.net/qq_33154343/article/details/78686103) - [借Qt中文乱码谈谈Coding中的编码问题](https://blog.csdn.net/qq_33154343/article/details/78686075) - +
- [Qt5与Qt4的信号接收差异](https://blog.csdn.net/qq_33154343/article/details/79130732) - - `qt`的信号和槽关系 - `qt`中Lam表达式 -### -
+ + +## Qt推倒重学系列--总目录: + +[github.io](https://touwoyimuli.github.io/)版本的**总目录**: + + + ## 编译 倘若自己的个人版本,不同于作者,且又编译运行屡次失败,**靠谱方法**:请重装系统之后,安装与我的同一版本,发开编程环境[qt-opensource-windows-x86-5.9.8.exe](http://download.qt.io/archive/qt/5.9/5.9.8/qt-opensource-windows-x86-5.9.8.exe)。 请使用下载**这一版本**5.9.8的`QtCreator`编译运行项目,可以保证运行成功 (使用Desktop Qt 5.9.8 MinGW 32 bit 直接编译运行) @@ -78,8 +99,8 @@
## 互助 -若是帮助到了你,可以点击该项目的的 **Star** 和 **Fork** 的两个图标,方便抬手之间,表示点个赞,手有余香 +若是帮助到了你,可以点击该项目的的 **Star** 和 **Fork** 的两个图标,方便抬手之间,表示点个赞,手有余香
@@ -97,4 +118,4 @@ -**touwoyimuli:** 所含文章使用以下协议进行保护:[署名-非商业性使用-禁止演绎](http://creativecommons.org/licenses/by-nc-nd/3.0/cn/)。 +**touwoyimuli:** 所含文章使用以下协议进行保护:[署名-非商业性使用-禁止演绎](http://creativecommons.org/licenses/by-nc-nd/3.0/cn/)。 \ No newline at end of file