diff --git a/QtMeatObjectEx/QT_win_32x32.ico b/QtMeatObjectEx/QT_win_32x32.ico new file mode 100644 index 0000000..0ee0568 Binary files /dev/null and b/QtMeatObjectEx/QT_win_32x32.ico differ diff --git a/QtMeatObjectEx/QtMeatObjectEx.pro b/QtMeatObjectEx/QtMeatObjectEx.pro index 556e362..6f29968 100644 --- a/QtMeatObjectEx/QtMeatObjectEx.pro +++ b/QtMeatObjectEx/QtMeatObjectEx.pro @@ -35,6 +35,9 @@ HEADERS += \ FORMS += \ ExWidget.ui + +RC_ICONS += QT_win_32x32.ico + # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin diff --git a/QtQStringEx/ExQString.cpp b/QtQStringEx/ExQString.cpp new file mode 100644 index 0000000..b6108a2 --- /dev/null +++ b/QtQStringEx/ExQString.cpp @@ -0,0 +1,84 @@ +#include "ExQString.h" +#include "ui_ExQString.h" +#include + +ExQString::ExQString(QWidget *parent) : + QWidget(parent), + ui(new Ui::ExQString) +{ + ui->setupUi(this); + setWindowTitle(QObject::tr("2/8/10/16进制互相转化")); +} + +ExQString::~ExQString() +{ + delete ui; +} + +void ExQString::on_btnResult_clicked() +{ + float a = ui->editA->text().toFloat(); + float b = ui->editB->text().toFloat(); + float m_val = a * b; + QString str = QString::number(static_cast(m_val), 'f', 2); + ui->editC->setText(str); +} + +void ExQString::on_btn2_clicked() +{ + QString str = ui->edit2->text(); + bool ok; + int val = str.toInt(&ok, 2); //获取二进制 + + str = str.setNum(val, 8); //显示八进制 + ui->edit8->setText(str); + str = str.setNum(val, 10); //显示十进制 + ui->edit10->setText(str); + str = str.setNum(val, 16); //显示十六进制 + ui->edit16->setText(str); +} + +void ExQString::on_btn8_clicked() +{ + QString str = ui->edit8->text(); + bool ok; + int val = str.toInt(&ok, 8); + + str = str.setNum(val, 2); + ui->edit2->setText(str); + str = str.setNum(val, 10); + ui->edit10->setText(str); + str = str.setNum(val, 16); + ui->edit16->setText(str); + +} + +void ExQString::on_btn10_clicked() +{ + QString str = ui->edit10->text(); + bool ok; + int val = str.toInt(&ok, 10); + + str = str.setNum(val, 2); + ui->edit2->setText(str); + str = str.setNum(val, 8); + ui->edit8->setText(str); + str = str.setNum(val, 16); + ui->edit16->setText(str); +} + + + +void ExQString::on_btn16_clicked() +{ + QString str = ui->edit16->text(); + bool ok; + int val = str.toInt(&ok, 16); + + str = str.setNum(val, 2); + ui->edit2->setText(str); + str = str.setNum(val, 8); + ui->edit8->setText(str); + str = str.setNum(val, 10); + ui->edit10->setText(str); +} diff --git a/QtQStringEx/ExQString.h b/QtQStringEx/ExQString.h new file mode 100644 index 0000000..89e3f70 --- /dev/null +++ b/QtQStringEx/ExQString.h @@ -0,0 +1,31 @@ +#ifndef EXQSTRING_H +#define EXQSTRING_H + +#include + +namespace Ui { +class ExQString; +} + +class ExQString : public QWidget +{ + Q_OBJECT + +public: + explicit ExQString(QWidget *parent = nullptr); + ~ExQString(); + +private slots: + void on_btnResult_clicked(); + void on_btn2_clicked(); + void on_btn8_clicked(); + void on_btn10_clicked(); + void on_btn16_clicked(); + +private: + Ui::ExQString *ui; + + float m_val; +}; + +#endif // EXQSTRING_H diff --git a/QtQStringEx/ExQString.ui b/QtQStringEx/ExQString.ui new file mode 100644 index 0000000..0b35aa8 --- /dev/null +++ b/QtQStringEx/ExQString.ui @@ -0,0 +1,189 @@ + + + ExQString + + + + 0 + 0 + 310 + 194 + + + + ExQString + + + + + + QString获取LineEdit文本,进制之间转换: + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 10 + + + + + + + * + + + + + + + 6.72 + + + + + + + = + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 计算 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + Qt::Horizontal + + + + + + + + + 十六进制 + + + + + + + + + + + + + 二进制 + + + + + + + 十进制 + + + + + + + 八进制 + + + + + + + + + + + + + 转换 + + + + + + + 转换 + + + + + + + 转换 + + + + + + + 转换 + + + + + + + + + + + diff --git a/QtQStringEx/QT_win_32x32.ico b/QtQStringEx/QT_win_32x32.ico new file mode 100644 index 0000000..0ee0568 Binary files /dev/null and b/QtQStringEx/QT_win_32x32.ico differ diff --git a/QtQStringEx/QtQStringEx.pro b/QtQStringEx/QtQStringEx.pro new file mode 100644 index 0000000..efa1f00 --- /dev/null +++ b/QtQStringEx/QtQStringEx.pro @@ -0,0 +1,44 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2019-08-18T12:06:43 +# +#------------------------------------------------- + +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = QtQStringEx +TEMPLATE = app + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which has been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +CONFIG += c++11 + +SOURCES += \ + main.cpp \ + ExQString.cpp + +HEADERS += \ + ExQString.h + +FORMS += \ + ExQString.ui + +RC_ICONS += QT_win_32x32.ico + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target + +RESOURCES += diff --git a/QtQStringEx/main.cpp b/QtQStringEx/main.cpp new file mode 100644 index 0000000..7588d86 --- /dev/null +++ b/QtQStringEx/main.cpp @@ -0,0 +1,11 @@ +#include "ExQString.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + ExQString w; + w.show(); + + return a.exec(); +} diff --git a/README.md b/README.md index 28fda3b..a729085 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,100 @@ # QtExamples -Qt5 各个控件使用的一个例子、以及一些底层原理或者技巧性的理解 + + + +​ 我也不知道为什么,就是想放这么一张图在这里。 + + + +## 项目介绍: + +Qt5 各个控件使用的一个例子、以及一些底层原理或者技巧性的理解,即是自己所学记录,亦可以互相交流共享学习,**有朋自远方互联网而来,不亦说乎?** + + + +刚大学毕业,大二开始正式(日以继夜的敲)学习c/c++路线知识,但今年已经的毕业,虽然学习过程中,距今学习qt知识,也有一年多了,中间有写一些比如[**中国象棋**](https://blog.csdn.net/qq_33154343/article/details/89284983),**QQ**(的 [登录](https://blog.csdn.net/qq_33154343/article/details/80448144)/ [私聊](https://blog.csdn.net/qq_33154343/article/details/79341062)、[群聊](https://blog.csdn.net/qq_33154343/article/details/96437681)等功能),**但是却总是感觉有一种半路出家的学习qt的柑橘**,想着`c++`的知识还算学习的比较系统且完备(个人感觉)。一直在想要不要过的轻松点,把qt给**推到重来**,期间犹豫不定,工作的话,用到相关知识,再去百度谷歌一下,够用即可,后面或许会去学习其他部分的知识,qt也许只是一个过渡呢?但是写着写着,发现这个跨平台是真的好用,越发发现其设计的简洁、方便还带一种设计的美感,让我逐渐沉迷其中,近日想清楚了,**下定决心,还是推倒重来**,全过程的熟悉和了解的qt的所有相关,或许期间会比较辛苦(毕竟还附带同时维护两个blog和一个github),但是我想着,以qt为媒介,学会使用、思想、架构设计、经验,或许会耗时一两年吧,倘若那个时候,这个系列也已经写完了的话,应该对这个也有一定的认知,到时候,再去接触,学习更高的平台和架构思想,应该会有较大的帮助。算是一个人生今后的一个短暂规划,学习不用急于求成而焦虑,自然水到渠成。 + +​ 2019-08-18 + +## 说明: + +会将该系列的源码,文章等系列,全部托管于这个仓库,该系列的主线任务只是讲解qt的相关文章,超出或者其他部分。 + +**开发环境:** `win10 x64 专业版 1803` **操作系统版本**:`17134.829` + +**开发软件:** `Qt Creator 4.8.2 (Enterprise)` 、 `Qt 5.9.8` + +**编码语言:**![](https://img.shields.io/badge/language-c++-orange.svg) + +**支持平台:**![](https://img.shields.io/conda/pn/conda-forge/qt?style=plastic) + +
+ +## 项目文章系列: + +### 第一部分:预备知识 + +- `windows`环境下安装`Qt Creator`作为`c++`的**IDE**开发工具,学习和使用**qt** (推荐) +- [Qt Creator 安装SDK,在MSVC编译模式下使用CDB调试器](https://blog.csdn.net/qq_33154343/article/details/98779698) +- `windows`环境下安装`Qt Creator` + `Visual Studio 2015`作为`c++`的`IDE`开发工具,学习和使用**qt** (备选) +- [`windows`环境下安装`Qt Creator 5.9` + `Visual Studio 2017专业版`](https://blog.csdn.net/qq_33154343/article/details/78587699) 参考此文 (备选) +- `Qt Creator` **IDE**的界面组成和使用讲解 +- 编写一个**qt**的第一个项目: `Hello World`的项目 + +### 第二部分:qt生成原理/运行机制 + +- [`make` `makefile` `cmake` `qmake`都是什么,有什么区别?](https://blog.csdn.net/qq_33154343/article/details/98170236) + +### 第三部分:常用控件 + + + +### 补充部分:补充较杂的知识点 + +##### 乱码相关: + +- [ 输出乱码原因:古文码、口字码、符号码、问号码、棍拷码](https://blog.csdn.net/qq_33154343/article/details/99617767) +- [qt5 中文乱码解决](https://blog.csdn.net/qq_33154343/article/details/95344312) +- [Qt字符串有中文,编译不通过解决方法:](https://blog.csdn.net/qq_33154343/article/details/79130275) +- [乱码原因(Qt版本)_附上语文的pdf版本](https://blog.csdn.net/qq_33154343/article/details/79039644) +- [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-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 直接编译运行) + +
+ +## 互助 +若是帮助到了你,可以点击该项目的的 **Star** 和 **Fork** 的两个图标,方便抬手之间,表示点个赞,手有余香 + + +
+ +## 关于作者: + +**touwoyimuli:** touwoyimuli@gmai.com [作者更多联系方式](https://touwoyimuli.github.io/about/) + +
+ +## 协议: + + + +**touwoyimuli** 博客代码基于GNU General Public License v3.0 协议进行分发和使用,更多信息参见[协议文件](/LICENSE)。 + + + +**touwoyimuli** 所含文章使用以下协议进行保护:[署名-非商业性使用-禁止演绎](http://creativecommons.org/licenses/by-nc-nd/3.0/cn/)。 \ No newline at end of file