qstring

Qt编写自定义控件70-扁平化flatui

匿名 (未验证) 提交于 2019-12-03 00:14:01
对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产生的质感色彩反而没有扁平化来得亲切。 Flat UI是基于Bootstrap之上进行二次开发的扁平化前端框架,他提供了动感、时尚的风格色调搭配,简洁、炫丽的功能组件,同时还提供了更为平滑的js交互动画,可以称得上前端扁平化设计框架的优秀代表之一。 既然是扁平化设计框架的优秀代表,当然需要在自己项目中应用应用,本人最早使用VB开发,而后转为C#开发,最后转为Qt开发,都是因为公司项目需要,根据需要不断学习新的编程框架,语言都是相通的,举一反三,以前用C#写的vista时钟控件和vista日历控件,稍微改改就转移成了Qt写的对应控件,非常方便,只要掌握了思想,熟练了一门语言和框架之后,其他的学起来特别快。 Qt中的qss机制,和css极为相似,感觉就是脱胎于css,用qss来实现Qt界面样式不是一般的方便,而是相当的爽,在看到FlatUI这样的精美的扁平化设计样式后,难以抑制手痒痒,就想用qss实现类似的风格。 开源地址: https://gitee.com/feiyangqingyun/QWidgetDemo https://github.com/feiyangqingyun/QWidgetDemo 1

QT qDebug() 打印到文件里

匿名 (未验证) 提交于 2019-12-03 00:03:02
#include <QMutex> #include <QMessageLogContext> #include <QtMessageHandler> void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) { // 加锁 static QMutex mutex; mutex.lock(); QByteArray localMsg = msg.toLocal8Bit(); QString strMsg(""); switch(type) { case QtDebugMsg: //调试信息 strMsg = QString("Debug:"); break; case QtWarningMsg: //警告信息 strMsg = QString("Warning:"); break; case QtCriticalMsg: //严重错误 strMsg = QString("Critical:"); break; case QtFatalMsg: //致命错误 strMsg = QString("Fatal:"); break; } // 设置输出信息格式 QString strDateTime = QDateTime::currentDateTime()

Qt QTableWidget及基本操作

匿名 (未验证) 提交于 2019-12-03 00:02:01
Qt QTableWidget及基本操作(详解版) < Qt QTreeWidget和QDockWidgetQt Model/View结构 > C语言中文网推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线,随时响应! QTableWidget 是 Qt 中的表格组件类。在窗体上放置一个 QTableWidget 组件后,可以在 Property Editor 里对其进行属性设置,双击这个组件,可以打开一个编辑器,对其 Colum、Row 和 Item 进行编辑。 一个 QTableWidget 组件的界面基本结构如图 1 所示,这个表格设置为 6 行 5 列。 图 1 一个 QTableWidget 表格的基本结构和工作区的行、列索引号 表格的第 1 行称为行表头,用于设置每一列的标题,第 1 列称为列表头,可以设置其标题,但一般使用缺省的标题,即为行号。行表头和列表头一般是不可编辑的。 除了行表头和列表头之外的表格区域是内容区,内容区是规则的网格状,如同一个二维数组,每个网格单元称为一个单元格。每个单元格有一个行号、列号,图 1 表示了行号、列号的变化规律。 在 QTableWidget 表格中,每一个单元格是一个 QTable Widgetltem 对象

QSplitter的使用案例

匿名 (未验证) 提交于 2019-12-02 23:52:01
#include <QApplication> #include <QSplitter> #include <QTextEdit> #include <QTextCodec> #include <QtWidgets/QWidget> #include <QtWidgets/QMenu> #include <QtWidgets/QMenuBar> #include <QtWidgets/QHBoxLayout> #include <QtWidgets/QMainWindow> #include <QtWidgets/QAction> #include <QtCore/QVariant> #include <QtWidgets/QApplication> #include <QtWidgets/QHBoxLayout> #include <QtWidgets/QListView> #include <QtWidgets/QMainWindow> #include <QtWidgets/QMenuBar> #include <QtWidgets/QSplitter> #include <QtWidgets/QStatusBar> #include <QtWidgets/QTextEdit> #include <QtWidgets/QToolBar> #include <QtWidgets

qt 程序异常崩溃

匿名 (未验证) 提交于 2019-12-02 23:49:02
今天调试qt,程序总是异常崩溃,发送的数据量大了就会闪退。 刚开始以为是新引入的QNetworkRequest,QNetworkAccessManager这些网络类的类定义和调用出了问题,因为只要调用网络发送函数几次,程序就崩溃。 后来发现,竟然把这些网络调用的内容都屏蔽掉,里面只放一个qDebug打印也会崩溃,真的泪奔。 最后发现,程序定义了一个QString的返回值,但是我的代码中没有在程序的结尾返回任何的信息。 加上return值,或者把QString返回值修改成void类型,后来就好了。

Qt容器类之二:迭代器

匿名 (未验证) 提交于 2019-12-02 23:43:01
遍历一个容器可以使用迭代器(iterators)来完成,迭代器提供了一个统一的方法来访问容器中的项目。Qt的容器类提供了两种类型的迭代器:Java风格迭代器和STL风格迭代器。 如果只是想按顺序遍历一个容器中的项目,那么还可以使用Qt的foreach关键字。 Java风格的迭代器在Qt4中加入,比STL风格的迭代器更易于使用,但是以轻微的效率作为代价, 它们的API以Java的迭代器类为模型。 对于每个容器类,都有两种Java风格的迭代器类型:一种是只读,另一种是可读写。 容器 只读迭代器 可读写迭代器 QList<T>, QQueue<T> QListIterator<T> QMutableListIterator<T> QLinkedList<T> QLinkedListIterator<T> QMutableLinkedListIterator<T> QVector<T>, QStack<T> QVectorIterator<T> QMutableVectorIterator<T> QSet<T> QSetIterator<T> QMutableSetIterator<T> QMap<Key, T>, QMultiMap<Key, T> QMapIterator<Key, T> QMutableMapIterator<Key, T> QHash<Key, T>,

Qt中操作excel

匿名 (未验证) 提交于 2019-12-02 23:35:02
版权声明:本文为博主原创文章,转载请联系1006325356@qq.com。 https://blog.csdn.net/iamqianrenzhan/article/details/90522385 最近有一个把检测结果导出到excel中的任务,由于对qt比较熟悉,所以打算使用qt来实现。查了一下,使用qt下自带的QAxObject类,实现还是比较简单的。 首先需要在pro文件中添加axcontainer QT += core gui axcontainer 然后添加包含文件 #include <QAxObject> 如下是代码的具体实现: void MainWindow::exportexcel(VRecord vrecord) { QAxObject *excel = NULL; QAxObject *workbooks = NULL; QAxObject *workbook = NULL; excel = new QAxObject("Excel.Application"); excel->dynamicCall("SetVisible(bool)", true); workbooks = excel->querySubObject("WorkBooks"); workbook = workbooks->querySubObject("Open(QString&)", "D

Qt中操作excel

匿名 (未验证) 提交于 2019-12-02 23:34:01
版权声明:本文为博主原创文章,转载请联系1006325356@qq.com。 https://blog.csdn.net/iamqianrenzhan/article/details/90522385 最近有一个把检测结果导出到excel中的任务,由于对qt比较熟悉,所以打算使用qt来实现。查了一下,使用qt下自带的QAxObject类,实现还是比较简单的。 首先需要在pro文件中添加axcontainer QT += core gui axcontainer 然后添加包含文件 #include <QAxObject> 如下是代码的具体实现: void MainWindow::exportexcel(VRecord vrecord) { QAxObject *excel = NULL; QAxObject *workbooks = NULL; QAxObject *workbook = NULL; excel = new QAxObject("Excel.Application"); excel->dynamicCall("SetVisible(bool)", true); workbooks = excel->querySubObject("WorkBooks"); workbook = workbooks->querySubObject("Open(QString&)", "D

秒表

匿名 (未验证) 提交于 2019-12-02 23:32:01
1、UI设计: 2、代码: Qtime、Qtimer类 需求:每隔1ms,更新显示,怎么通知计时周期到: QTimer类帮助文档: 1 QTimer *timer = new QTimer(this); 2 connect(timer, SIGNAL(timeout()), this, SLOT(update())); 3 timer->start(1000); //1s 怎么获取时间数据:QTime帮助文档: 1 QTime 定义一个对象,它可以记录时间,并且可以人为指定时间,还有addMSecs方法可以实现增加指定毫秒,从而达到计数。 1 Example: 2 3 QTime n(14, 0, 0); // n == 14:00:00 4 QTime t; 5 t = n.addSecs(70); // t == 14:01:10 6 t = n.addSecs(-70); // t == 13:58:50 7 t = n.addSecs(10 * 60 * 60 + 5); // t == 00:00:05 8 t = n.addSecs(-15 * 60 * 60); // t == 23:00:00 9 10 See also addMSecs(), secsTo(), and QDateTime::addSecs().

QT在linux下获取网络类型

痞子三分冷 提交于 2019-12-02 23:17:03
开发中遇到这样一个需求,需要判断当前网络的类型(wifi或者4G或者网线),在这里给大家一块分享下: 1、这里有一个linux指令:nmcli(大家自行百度即可) 2、nmcli device status 这个指令就会打印出你想要的东西 3、如何用QT去调取这个指令获取结果来进行上报呢?来一段代码吧 //执行linux指令获取返回结果 QString Common::executeLinuxCmd(QString strCmd) { QProcess p; p.start("bash", QStringList() <<"-c" << strCmd); p.waitForFinished(); QString strResult = p.readAllStandardOutput(); return strResult; } //获取网络状态码 int PLC::networkStatus() { QString strDevice = Common::executeLinuxCmd("nmcli device status"); QStringList listDevice = strDevice.split("\n"); QString strBin = ""; QString strWifi = "0"; QString str4G = "0"; QString