QT一些理解
文章平均质量分 65
groundhappy
这个作者很懒,什么都没留下…
展开
-
QT 的Moc Uic Rcc有什么用(360ui移植到eclipse)
Moc 主要是用于 将类中包含Q_OBJECT 的类里面的 信号 和槽 处理 成moc_xxx文件。因为QT 信号与 slot 这一部分不是纯C++的 所以要通过 moc来将 Q_OBJECT的部分包含的信息编译进去。当不使用信号这些的时候 去掉Q_OBJECT 也可以编译通过。只是无法处理信号这些。Rcc 主要是将 rc资源文件 转成字节流形式 的CPP文件原创 2016-03-17 22:39:32 · 1656 阅读 · 0 评论 -
QWidget基本调色板(背景色,文本色)
通过QWidget的setPalette可以设置基本的调色板,比如背景色QPalette::ColorGroup指定了基本组件的状态 比如禁用,正常 激活等不同状态QPalette::ColorRole指定了基本的控件 Window指后端背景颜色 WindowText指的前端颜色。两者组合起来就是某个状态下使用哪种颜色setPalette将指定的Palette和原来的旧的数据组合起原创 2016-08-01 10:59:31 · 681 阅读 · 0 评论 -
让Qt自定义窗口边界可以拉伸
qt去掉外边框以后 边界不能拉伸。第一。根据mouseevent事件到达边界的时候自己处理 通过resize(来设置) 这种需要写的代码较多windows平台上有更简版的方法。处理winevent里面的 WM_NCHITTESTswitch(message->message) { case WM_NCHITTEST:int xPos = GET_X_原创 2016-08-04 17:59:34 · 5768 阅读 · 8 评论 -
QT定时器的一些注意
1 QTimer必须在有事件循环的线程中运行。如果没有事件循环。那么不会得到timeout的信号。 因为QTimer底层实质上就是基于事件机制的2 在UI线程里面的QTimer timeout连接的信号中执行Sleep或者while等操作会阻塞UI,这个是肯定的。如果使用QDialog带有exec的操作呢?带有exec的操作是可以继续QT UI的。因为exec实际上就原创 2016-08-10 15:12:03 · 6546 阅读 · 1 评论 -
Qt下载网络文件
主要用到这三个类代表发送的网络请求QNetworkRequest 代表接受到的网络数据的回应,抽象类QNetworkReply ;QNetworkAccessManager ;用于管理发送网络请求和接受回应通过QNetworkAccessManager 执行QNetworkRequest 返回的结果保存在QNetworkReply 。通过QNetworkRepl原创 2016-11-07 11:26:41 · 1821 阅读 · 0 评论 -
Qt操作sql数据库
Qt使用QSqlDatabase代表数据库使用QSqlQuery代表执行和查询的语句第一步:创建和打开数据库1使用SQLITE类型的数据库m_Database = QSqlDatabase::addDatabase("QSQLITE"); 2设置数据库的名字m_Database.setDatabaseName(MACDB_FILENAME);3打开数据库原创 2016-11-08 12:20:30 · 2530 阅读 · 0 评论 -
QTreeView和scrollbar窗口自适应
默认QTreeView的滚动条设置是Qt::ScrollBarAsNeeded.也就是默认值。不修改的话是根据需要显示滚动条的。我在QTreeView里面添加了item item里面有文本或者点击扩展按钮扩展tree的时候,结果水平方向没有滚动条,导致部分文本不可见。问题其实处在Column的宽度上。ScrollBar是针对整个QTreeView的Widget,也就是所有colum原创 2016-11-28 12:34:19 · 4750 阅读 · 0 评论 -
QCustomPlot的几个主要Class
QCPLayer是一个容器。分层容器,容器里面包含了很多的需要被描绘出来的对象。这些对象都继承了QCPLayerable,他是所有可以画出来的物体的基类。需要实现draw函数。每个物体都放到Layer里面才可以显示QCPLayer并不管理这些QCPLayerable的所有权。他只是一个容器。在Draw的时候根据layer的先后顺序和layer里面的Item的先后顺序描绘。QCustom原创 2016-08-19 22:47:14 · 764 阅读 · 0 评论 -
QCustomPlot的简单使用
简单的图标绘制可以用QCustomPlot 就一个cpp和一个.h文件包含其他的还有QT自身的QChart,不过要QT5.X以后的版本下载QCustomPlot http://qcustomplot.com/index.php最主要的类是 QCustomPlot,这是一个widget。所有的画图都是基于这个widget.按照文章中基础的来写一个。原创 2016-08-12 13:29:41 · 822 阅读 · 0 评论 -
qt的QThread消息归属和MoveToThread的作用
之前没有注意到qt的QThread 的MoveToThread以及线程消息的归属问题。先注意以下两点1所有能够接受和发送消息的class必须存在有消息循环的线程环境中。2对象的消息处理默认环境是是存在于创建这个对象的线程环境中的。对于第二点如何理解比如subthread::subthread(){connect(this,sigA,this,原创 2017-03-12 17:38:34 · 1554 阅读 · 0 评论 -
QLineEdit的简单美化
通过stylesheet美化 基本的BoxModel都是可以通用的。也就是其他的控件大部分也可以,比如combobox也行。下面很多属性都可以设置,不同的控件状态配置了不同的,免得重复//普通的状态QLineEdit{//边界1像素 实线 颜色rgb 或者border:none 没有边界border:1px solid rgb(180, 180, 180);//背景的原创 2016-08-04 09:38:19 · 9958 阅读 · 1 评论 -
qt的Qt::ConnectionType详细以及信号参数传递
信号和槽的同步异步这个可以通过connect的最后一个参数指定。connect的时候最后一个参数解释。并不需要知道胡乱指定参数会触发什么状况。只需要知道在什么状况下指定什么样的参数就可以后续的测试基于 在sender里面new 一段内存拷贝一段helloworld。调用 emit发射信号。立刻delete这一段内存。receiver里面先sleep3秒(更容原创 2016-04-27 10:52:42 · 11236 阅读 · 0 评论 -
Qt对基本控件进行美化 QStyle和QStyleSheet
1使用QStyleQStyle是一个抽象类 定义了控件如何画出来。可以继承这个类实现一些Draw方法来构建某个style最后对于控件调用QWidget->SetStyle 或者全局使用这个style QApp->SetStyle这种方法比较麻烦,一般UI美化用QStyleSheet。2QStyleSheet也可以用 QWidget->SetStyleSheet Q原创 2016-07-27 16:27:42 · 9753 阅读 · 0 评论 -
不使用QT IDE 使用windows(vs) linux(eclipse) 下开发
linux:Eclipse配置新建一个C/C++工程添加一个CPP文件 main.cpp写入#include "stdio.h"#include #include int main(int argc ,char * argv[]){ QApplication app(argc,argv); QLabel *label = new QLabel("He原创 2016-03-18 13:07:32 · 1885 阅读 · 0 评论 -
QDialog QFrame QWidget QMainWindow区别
QWidget是小容器。可以往里面添加东西QDialog是顶层窗口。不嵌入到其他父窗口里面。处理一些短时间任务。比如询问yes no cancel等原创 2016-03-23 14:36:33 · 1926 阅读 · 0 评论 -
QT 鼠标事件 键盘事件 的属性
鼠标事件 button() 返回产生这个事件的 鼠标buttonbuttons()返回产生这个事件的button状态的组合对于mouseMove里面。返回值是已经被按下的button的组合对于Press和doubleClick 是产生这个事件的组合对于release 返回的是除开产生这个事件按钮的组合globalPos()原创 2016-03-24 20:21:24 · 734 阅读 · 0 评论 -
Qt槽和信号参数
Qt的信号只需要申明。不需要定义signals: void signalA(int a);Qt的槽和普通的成员函数是一样的,可以加上public potected 以及virtual等标记public : void slotA(int a);把这两个用connect连接起来QObject::connect(sender,SIGNAL(sig原创 2016-04-21 15:08:59 · 906 阅读 · 0 评论 -
绑定qt的sqldriver一起发布。
使用了qt的sqlitedriver。放到新的电脑上。无法加载数据驱动。can't load driver需要当前exe目录下新建qt.conf 里面如下设置[Paths]Prefix=.Plugins=Plugins最后的dll放到exe目录plugins/sqldrivers/qsqlite4.dll原创 2016-04-27 15:59:05 · 526 阅读 · 0 评论 -
qt GUI线程和其他线程的信号槽以及不同线程通信
Qt所有的对于GUI的操作只能在一个GUI线程中执行,也就是return QApp::exec的线程。一般main里面这样写。那么所有的GUI的操作只能在main主线程中执行。int main(int argc, char *argv[]){QApplication a(argc, argv);WidgetUi w;w.show();return a.exe原创 2016-04-28 15:44:58 · 2412 阅读 · 0 评论 -
qt的验证器QValidator
QValidator 验证器一般用于只能输入允许的或者指定的数据。编辑框或者其他输入控件 可以通过类似于SetValidator来指定这个验证器。由于 QValidator 有一个纯虚函数 validate.所以必须要写一个 类来继承,然后实现这个纯虚函数才行。virtual Statevalidate(QString & input, int原创 2016-05-12 09:21:02 · 8340 阅读 · 0 评论 -
qt中使用xlslib写入中文(QAxObject 速度很慢)
在QT中将一个TableModel 的数据写入excel有很多方法1 使用QT的odbc链接EXCEL当做数据库写入 速度飞快。但是不好控制EXCEL里面的格式。图片字体等等。2使用QAxObject写入?网上一抓一大片全是这么写入的。实际使用过程中发现速度慢如狗。写10行10列的数据要7-10秒不等。原因估计是每次都重新打开一些单元格写入。要是写几百条那还得了?原创 2016-05-27 10:45:39 · 2867 阅读 · 2 评论 -
Qt在槽里面弹出模态和非模态对话框
弹出模态对话框1弹出Dialog以及Dialog子类{ //指不指定this都可以。没有具体分析this和非this有什么区别HDialog hd(this);hd.exec();}弹出非模态1弹出Dialog以及Dialog子类{HDialog*phd=new HDialog(this);原创 2016-04-21 09:14:22 · 3266 阅读 · 0 评论 -
QT国际化翻译的使用
1 首先所有需要翻译的文本都必须用tr包裹。如果是在继承了某个QOjbect类里面使用比如 QWidget 等。可以直接使用tr。例如setText(tr("StopCapture"));如果没有继承自QObject就必须带上QObject 例如 setText(QObject::tr("StopCapture"));这里的 StopCapture就是 S原创 2016-07-27 18:22:48 · 3711 阅读 · 0 评论