Qt
文章平均质量分 61
ruglcc
一个有代码洁癖的技术宅,研发12年,专注于 android ios 嵌入式 桌面应用
展开
-
打通 C/C++与JavaScript通信 快速开发Electron桌面应用
小拉实际工作中,有时需要开发串口、网络等工具类上位机桌面应用软件,业务逻辑通常是C、C++开发的,当然使用QT、MFC等技术来开发,怎奈羡慕前端做界面又美观、又速度,有大量的UI框架,图表库使用。笔者找到了一条解决方案业务逻辑由C/C++实现,界面由纯html5实现,应用QWebchannel打通C++与JS的通信。..................原创 2022-07-18 15:32:34 · 7127 阅读 · 11 评论 -
qml 实现csdn搜索框,无规则圆角
qml 实现csdn搜索框,无规则圆角实现原创 2022-06-23 12:00:11 · 561 阅读 · 0 评论 -
[Qt练习]checkbox
#include #include #include #include #include #include #include int main(int argc, char **argv){ QApplication app(argc, argv); QWidget *window = new QWidget; window->setWindowTitle原创 2012-09-14 17:27:36 · 7722 阅读 · 0 评论 -
[Qt练习]QGridLayout
#include #include #include #include int main(int argc, char **argv){ QApplication app(argc, argv); const QString texts[] = {"1", "2","3","4","5","6","7","8","9"}; QWidget * window =原创 2012-09-14 16:32:58 · 14850 阅读 · 0 评论 -
Ubuntu下安装QT开发
我使用的操作系统是 Ubuntu 10.0,使用目前最新版本的QT 4.4.0,安装起来非常简单,只要运行以下命令就行: sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer qtcreator 注意在这个版本的软件包中,qt4-dev-tools转载 2012-09-18 09:25:49 · 1189 阅读 · 0 评论 -
[Qt练习]QIuputDialog 和 QMessageBox
dlg.h#ifndef MYDLG_H#define MYDLG_H#include class QPushButton;class QLabel;class QString;class Mydlg:public QDialog{ Q_OBJECTpublic: Mydlg(QWidget * parent = 0);signals: voi原创 2012-09-18 09:52:38 · 1261 阅读 · 0 评论 -
[Qt练习]QColorDialog
dlg.h#ifndef MYDLG_H#define MYDLG_H#include class QPushButton;class QLabel;class QString;class Mydlg:public QDialog{ Q_OBJECTpublic: Mydlg(QWidget * parent = 0);signals: void原创 2012-09-18 10:35:20 · 3855 阅读 · 1 评论 -
[Qt练习]QCombox
#include #include #include #include #include #include int main(int argc, char**argv){ QApplication app(argc, argv); QWidget *widget = new QWidget; widget->setWindowTitle("Combox");原创 2012-09-17 14:15:01 · 7824 阅读 · 0 评论 -
[Qt练习]QListWidget
#include #include #include #include #include int main(int argc, char**argv){ QApplication app(argc, argv); QWidget *widget = new QWidget; widget->setWindowTitle("QListWidget");原创 2012-09-18 15:21:42 · 1512 阅读 · 0 评论 -
[Qt练习]QTableview
#include #include #include #include int main(int argc, char **argv){ QApplication app(argc, argv); QStandardItemModel *model = new QStandardItemModel; model->setItem(0,0,new QStandar原创 2012-09-18 16:59:08 · 1065 阅读 · 0 评论 -
[Qt练习]textReader QTextEdit 和 QFileDailog
textreader.h#ifndef TXTREADER_H#define TXTREADER_H#include class QTextEdit;class QPushButton;class TxtReader : public QWidget{ Q_OBJECTpublic: TxtReader(QWidget *parent = 0);protect原创 2012-09-18 14:45:59 · 1133 阅读 · 0 评论 -
Ubuntu12.04添加windows字体
编程喜欢YaHei Consolas Hybrid,但是Ubuntu下没有,参考博客的内容,试着在Ubuntu12.04下安装字体,成功以安装 YaHei Consolas Hybrid 1.12.ttf 为例,以下步骤需要在root的权限下进行 (1)在/usr/share/fonts/truetype/目录下 建立一个新的目录 YaHei(2)将YaHei Consolas H原创 2012-09-18 13:52:22 · 4488 阅读 · 1 评论 -
解决QtCreator不无应用帮助文档问题
安装了QtCreator 离线包,没有设置什么,发现帮助文档不可用,后经过查找资料问题解决,现将解决步骤记录分享(1)打开QtCreator 点击工具,选择选项 (2)左边选择帮助(3)选择“文档” 点击“添加”(4)选择 SDK安装路径下Document文件夹,点击“打开”再“确定”就可以了(5)OK了,可以打开帮助文档了原创 2012-09-19 15:14:16 · 3505 阅读 · 1 评论 -
如何在Console中使用cin、cout、cerr
首先需要包含下列头文件: #include #include 然后,在使用cin、cout、cerr之前,创建下列变量:QTextStream cin(stdin, QIODevice::ReadOnly);QTextStream cout(stdout, QIODevice::WriteOnly);QTextStream cerr(stderr, QIODevi转载 2012-09-20 09:54:31 · 1297 阅读 · 0 评论 -
QT中如何进行DEBUG和使用cout,cin等
如果想输出DEBUG信息:Qt代码 qDebug() << "Date:" << QDate::currentDate(); qDebug() << "Types:" << QString("String") << QChar('x') << QRect(0, 10, 50, 40); qDebug() << "Custom coordinate type:" << coord转载 2012-09-20 09:57:08 · 6038 阅读 · 0 评论 -
[Qt练习]pushButton 外观
#include #include #include #include #include int main(int argc, char* argv[]){ QApplication app(argc, argv); QWidget *window = new QWidget; window->setWindowTitle("QPushbutton");原创 2012-09-14 17:06:45 · 6459 阅读 · 0 评论 -
Inside Qt Series (十):connect,幕后的故事
我们都知道,把一个signal和slot连接起来,需要使用QObject类的connect方法,它的作用就是把一个object的signal和另外一个object的slot连接起来,以达到对象间通讯的目的。connect 在幕后到底都做了些什么事情?为什么emit一个signal后,相应的slot都会被调用?好了,让我们来逐一解开其中的谜团。SIGNAL 和 SLOT 宏定义我们在调用转载 2012-09-10 14:35:39 · 628 阅读 · 0 评论 -
Inside Qt Series (十一):emit,幕后的故事
很多C/C++初学者常犯的一个错误就是,使用malloc、new分配了一块内存却忘记释放,导致内存泄漏。Qt的对象模型提供了一种Qt对象之间的父子关系,当很多个对象都按一定次序建立起来这种父子关系的时候,就组织成了一颗树。当delete一个父对象的时候,Qt的对象模型机制保证了会自动的把它的所有子对象,以及孙对象,等等,全部delete,从而保证不会有内存泄漏的情况发生。任何事情都有正反两面作转载 2012-09-10 14:36:37 · 1327 阅读 · 0 评论 -
Inside Qt Series (十四):Qt/e输入法程序设计指南
注,本输入法设计指南针对Qt for Embedded Linux 4.6,并且以中文输入法为例做说明,并且本文只是侧重于说明Qt/Embedded对输入法的支持接口,并不涉及到如何把键盘输入转换为中文所对应的编码方法。对其它Qt版本的适用性未曾验证。大家都知道,Qt for Embedded Linux是Client/Server结构,在Server端负责监听系统消息,尤其是键盘和鼠标消息,转载 2012-09-10 14:38:32 · 1718 阅读 · 0 评论 -
Inside Qt Series (十五):Qt/e 输入法,How it works?
前面我们介绍了Qte输入法的基本设计思路,以及一个最简单的例子,那么,Qte的输入法是如何工作的呢?本节我们就来看一下Qte的源代码,一起来解开这个谜团。在Qte的Client/Server体系结构中,QWSServer类负责管理Qte的Server,监听系统事件,尤其是键盘和鼠标事件。当这些监听的事件发生的时候,server会做出判断,这些事件应该发送给那一个客户端。如果当前系统安装了输转载 2012-09-10 14:39:17 · 1399 阅读 · 0 评论 -
Inside QT Series 序
Inside QT Series 序写了这么多年的程序,除了留下很多 code (其中有很多是garbage)之外,再没有其它东西,或许我该写点儿什么了,写一些关于我的工作的东西,自己所了解的技术,也把自己在工作过程中新学习的一些东西放在这儿,就算是为了以后做一个参考。第一个”大项目”,就是准备写一个系列文章,专门介绍 Qt Framework 的,这个系列文章不是为 Qt 新手所写转载 2012-09-10 10:52:54 · 894 阅读 · 0 评论 -
Inside Qt Series (一):Let’s go, Starting From the QObject
QObject 这个 class 是 QT 对象模型的核心,绝大部分的 QT 类都是从这个类继承而来。这个模型的中心特征就是一个叫做信号和槽(signal and slot)的机制来实现对象间的通讯,你可以把一个信号和另一个槽通过 connect(…) 方法连接起来,并可以使用 disconnect(…) 方法来断开这种连接,你还可以通过调用 blockSignal(…) 这个方法来临时的阻塞信号转载 2012-09-10 10:59:59 · 1257 阅读 · 0 评论 -
Inside QT Series (三):元对象系统(Meta-Object System)
从本节开始,我们讲解 QT Meta-Object System 的功能,以及实现。 在使用 QT 开发的过程中,大量的使用了 signal 和 slot. 比如,响应一个 button 的 click 事件,我们一般都写如下的代码:class MyWindow : public QWidget{ Q_OBJECT public: MyWindow(QW转载 2012-09-10 11:20:17 · 1044 阅读 · 0 评论 -
Inside Qt Series (六):元对象编译器 – Meta Object Compiler (moc)
元对象编译器用来处理Qt 的C++扩展,moc 分析C++源文件,如果它发现在一个头文件(header file)中包含Q_OBJECT 宏定义,然后动态的生成另外一个C++源文件,这个新的源文件包含 Q_OBJECT 的实现代码,这个新的 C++ 源文件也会被编译、链接到这个类的二进制代码中去,因为它也是这个类的完整的一部分。通常,这个新的C++ 源文件会在以前的C++ 源文件名前面加上 moc转载 2012-09-10 11:26:40 · 1757 阅读 · 0 评论 -
Inside Qt Series (二-四):对象数据存储
前言,为什么先说这个?我们知道,在C++中,几乎每一个类(class)中都需要有一些类的成员变量(class member variable),在通常情况下的做法如下:class Person{private: string mszName; // 姓名 bool mbSex; // 性别 int mnAge; // 年龄};就是转载 2012-09-10 11:05:44 · 863 阅读 · 0 评论 -
Inside Qt Series (八):Meta Object Class overview
前面我们介绍了 Meta Object 的基本功能,和它支持的最重要的特性之一:Signal & Slot的基本功能。现在让我们来进入 Meta Object 的内部,看看它是如何支持这些能力的。 Meta Object 的所有数据和方法都封装在一个叫QMetaObject 的类中。它包含并且可以查询一个Qt类的 meta 信息,meta信息包含以下几种: * 信号表(sig转载 2012-09-10 14:34:29 · 723 阅读 · 0 评论 -
Inside Qt Series (十二):Qt对象之间的父子关系
很多C/C++初学者常犯的一个错误就是,使用malloc、new分配了一块内存却忘记释放,导致内存泄漏。Qt的对象模型提供了一种Qt对象之间的父子关系,当很多个对象都按一定次序建立起来这种父子关系的时候,就组织成了一颗树。当delete一个父对象的时候,Qt的对象模型机制保证了会自动的把它的所有子对象,以及孙对象,等等,全部delete,从而保证不会有内存泄漏的情况发生。任何事情都有正反两面作转载 2012-09-10 14:36:55 · 585 阅读 · 0 评论 -
Inside Qt Series (十三):Qt/e体系结构概述
从本节(Inside Qt Series 十三)开始,本专栏文章的内容开始转向Qt for Embedded Linux的技术内幕介绍。在后续内容中,我对Qt for Embedded Linux一律简称为Qt/e,不再对这个term做更多的解释。需要您注意的一点是,在本系列文章中的任何部分,这个term都是指Qt for Embedded Linux,而不是指Qt for Windows CE。转载 2012-09-10 14:37:47 · 1254 阅读 · 0 评论 -
Inside Qt Series (七):Signal & Slot
本节介绍Signal和slot的基本知识。 信号和槽是用来在对象间通讯的方法,当一个特定事件发生的时候,signal会被 emit 出来,slot 调用是用来响应相应的 signal 的。Qt 对象已经包含了许多预定义的 signal,但我们总是可以在派生类中添加新的 signal。Qt 对象中也已经包含了许多预定义的 slog,但我们可以在派生类中添加新的 slot 来处理我们感兴趣的转载 2012-09-10 14:25:48 · 585 阅读 · 0 评论 -
Inside QT Series (五):元对象系统(Meta-Object System)
从本节开始,我们讲解 QT Meta-Object System 的功能,以及实现。 在使用 QT 开发的过程中,大量的使用了 signal 和 slot. 比如,响应一个 button 的 click 事件,我们一般都写如下的代码:class MyWindow : public QWidget{ Q_OBJECT public: MyWindow(QW转载 2012-09-10 14:31:23 · 1251 阅读 · 0 评论 -
Inside Qt Series (九):QMetaObject class data members
我们来看一下QMetaObject的定义,我们先看一下QMetaObject对象中包含的成员数据。 struct Q_CORE_EXPORT QMetaObject{ // …… struct { // private data const QMetaObject *superdata; const char *stringdata;转载 2012-09-10 14:35:18 · 795 阅读 · 0 评论