QT
文章平均质量分 84
dbdoing
一名在路上的程序员
展开
-
如何在vs2010+QT中设置可执行文件(exe文件)的图标
1、直接利用现有的.ico文件 (1) 首先,把现有的.ico文件拷贝到此解决方案中的Resources文件下 (2)然后,利用vs2010打开此解决方案,右击工程名,选择“添加”——》“资源”,打开一个对话框,选中“ico ”,在此对话框中选择“导入”,到Resources文件夹下找到.ico图标添加进去,就ok了。2、自己创建一个.ico文件 利用原创 2013-09-18 16:20:41 · 5699 阅读 · 0 评论 -
QTableWidget与QTableView的区别
QTableWidget与QTableView的区别QTableWidget继承自QTableView。QSqlTableModel能与QTableView绑定,但不能于QTableWidget绑定。QSqlTableModel *model = new QSqlTableModel;model->setTable("employee");model->se转载 2013-08-12 12:59:37 · 13264 阅读 · 1 评论 -
Qt打包发布方法
1、发布方式 Qt发布的时候,通常使用两种方式: (1)静态编译 (2)动态编译 静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大。。。 动态编译:相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。。。 静态发布虽然不需要较多的dll,发布简单、方便,但是往往会牵扯到授权转载 2014-04-29 20:49:56 · 2332 阅读 · 0 评论 -
“QT中QString 转const char*为乱码或为空的问题 ”之解决方案
接着前篇:http://blog.csdn.net/bzhxuexi/article/details/17111903在前篇中遇到了一个问题,当时没解决,今天终于找到了解决方法,我在网上看到了这样的一段解释,源自于QT Center,是这样的:rajeshs ask a question:How can I convert a QString to char* and原创 2013-12-04 17:26:53 · 9034 阅读 · 4 评论 -
QT使用流读写XML
导语 从Qt 4.3开始引入了两个新的类来读取和写入XML文档:QXmlStreamReader和QXmlStreamWriter。 QXmlStreamReader类提供了一个快速的解析器通过一个简单的流API来读取格式良好的XML文档,它是作为Qt的SAX解析器的替代品的身份出现的,因为它比SAX解析器更快更方便。QXmlStreamReader可以从Q转载 2014-01-20 19:40:35 · 2083 阅读 · 0 评论 -
QWidget、QMainWindow、QDialog和QFrame的区别
继承关系:在Qt中所有的类都有一个共同的基类QObject ,QWidget直接继承与QPaintDevice类,QDialog、QMainWindow、QFrame直接继承QWidget 类。2,说明:QWidget类是所有用户界面对象的基类。窗口部件(QWidget)是用户界面的一个基本单元:它从窗口系统接收鼠标,键盘和其他事件,并且在屏幕上绘制自己。每个窗口部件都是矩形的,并转载 2014-01-16 16:12:27 · 1296 阅读 · 0 评论 -
QT中新建的类继承QWidget和QMainWindow的不同之处
最近在学习QT,在做界面的时候发现,新建一个类时,本以为QMainWindow是QWidget的派生类,直接继承QMainWindow就好了,但是发现 继承QWidget和继承QMainWindow会对后面的窗口布局和显示有一定的影响。自己总结下。例:(1)在calc.h中这样声明类Calc,使其继承QWidgetclass Calc: public QWidget//注意这里是继承QWi原创 2013-08-17 08:36:44 · 4132 阅读 · 0 评论 -
QT的文件操作
今天学习QT的文件操作:1、QIODevice直接继承自QObjectQIODevice类是输入/输出设备的基类。QIODevice为设备提供了公共实现和抽象接口用于读写块数据。QIODevice是一个抽象类,不能被实例化。被Q3Socket,Q3SocketDevice,QAbstractSocket,QBuffer,QFile,QLocalS转载 2014-01-22 10:19:31 · 1266 阅读 · 0 评论 -
QTreeWidget讲解及节点操作
关于Qt的节点操作,也就是QTreeWidget 类的操作。先看我的效果图! 具体实现如下!构造函数中写事件!connect(ui->treeWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this,SLOT(showSelecteddataba转载 2013-08-21 22:23:05 · 26695 阅读 · 2 评论 -
QT中的model/view
有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中。早期的 Qt 要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如一个列表。我们对这个列表进行查找、插入等的操作,或者把修改的地方写回,然后刷新组件进行显示。这个思路很简单,也很清晰,但是对于大型程序,这种设计就显得苍白无力。比如,在一个大型系统中,你的数据可能很大,全部存入一个组件转载 2013-12-24 16:27:30 · 1341 阅读 · 0 评论 -
QTableWidget行选中/删除/添加行
1 均分各列 tableWidget->horizontalHeader()->setStretchLastSection(true); //就是这个地方 tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);2 整行选中:ui.tableWidget->setSelectionBehavio转载 2013-12-24 10:55:44 · 51899 阅读 · 2 评论 -
QListWidget、QTreeWidget 和 QTableWidget
现在我们从最简单的 QListWidget、QTreeWidget 和 QTableWidget 三个类开始了解最简单的 model/view 的使用。这部分内容的确很难组织。首先,从最标准的 model/view 开始,往往会纠结于复杂的代码;但是,如果从简单的 QListWidget、QTreeWidget 和QTableWidget 开始,由于这三个类都是继承自各自的 view 类,很难转载 2013-12-24 16:29:37 · 1489 阅读 · 0 评论 -
QT中QString转const char *的问题
最近一直在用QT,但是学的还不够深入,今天遇到了一个问题,在此记录下来,以便以后查阅: 事情是这样的:在界面中的QLineEidt里面输入一串地址数据,在代码里把它读取过来,然后去访问这个地址,但是通过QLineEdit的text()方法读取到的数据时QString类型的,而访问地址函数的这个参数类型是const char*的,这就需要把QString转化为const char*原创 2013-12-04 09:34:36 · 5612 阅读 · 1 评论 -
拦截QT关闭窗口的CloseEvent()解析
QDialog类下有一个虚函数void QDialog::closeEvent ( QCloseEvent * e ) [virtual protected]通过实现closeEvent函数,就可以以对关闭窗口消息进行拦截,比如程序还没有完成工作时,可以弹出警告窗口,即使用户确认退出操作.在头文件中,需要加入#include :#ifndef TEST_H转载 2014-05-05 15:48:24 · 3787 阅读 · 0 评论 -
Qt中如何使窗口隐藏/最小化到托盘
托盘是什么?这个就不用在多说了!而Qt中如何实现自己的托盘功能,Qt自带的demo也很明了,这里我们就来实现自己的一个托盘。。。 void TrayMenu::createActions() { //创建托盘项 action_show = new QAction(this); action_quit = new QAction(this);转载 2014-04-30 14:05:19 · 16264 阅读 · 3 评论 -
QT下QTableWidget使用方法小结
啦! 独一无二的职位:开源社区经理 QT下QTableWidget使用方法小结原文:http://blog.csdn.net/vah101/archive/2011/03/01/6215066.aspx 啦! 独一无二的职位:开源社区经理 一、QTableWidget的其中某些列怎么设置为只读模式使其不能被修改转载 2013-08-12 11:04:13 · 5014 阅读 · 0 评论 -
Qt中SQLite3的增、删、改、查操作
QT对数据库具有完善的支持,不需要加任何其他插件就可以直接使用,但是如果你要是加了sqlite3插件,调用数据库就跟直接调用一个驱动一样,直接调用接口函数:open、close、……,换言之QT自带的数据库语言就用不上了。转载 2015-11-25 10:13:15 · 25516 阅读 · 0 评论 -
Qt中的qrc文件
Qt中的qrc文件是一个xml格式的资源配置文件,与应用程序关联的应用程序由 .qrc 文件来指定,它用XML记录硬盘上的文件和对应的随意指定的资源名称,应用程序通过资源名称来访问资源。 指定的路径是 .qrc 文件所在目录的相对路径。注意,列出的资源文件必须位于 .qrc 文件所在目录或者其子目录下。图标文件需要与qrc文件位于同一目录下或者在该目录的子目录中。另外,如果qr转载 2013-08-24 12:25:41 · 39429 阅读 · 1 评论 -
linux和vs中 qt程序中文国际化
运用lupdate工具生成.ts文件,命令如下: lupdate -verbose *.cpp -ts qt_english.ts -verbose 解释并显示lupdate的操作过程;源文件 -ts 目标文件 在linux下用 linguist 编译qt_english.ts 生成翻译替换文档qt_zh_CN.ts。或者直接在windows下用Ultr转载 2013-08-30 15:19:03 · 3030 阅读 · 0 评论 -
QT中文乱码 国际化
QT中文乱码的解 2010-04-29 17:54:49| 分类:QT学习 | 标签:|字号大中小 订阅[编程]post by 雄关漫道 / 2010-3-25 5:38 Thursday今晚使用QMessageBox出现中文乱码,参考网上相关文档解决问题。下面这篇文章是从网上搜索的,文中说QTextCodec::codecForN转载 2013-09-02 16:17:35 · 4519 阅读 · 1 评论 -
QT中QFileDialog对话框的browse、openfile,save as
QFileDialog对话框可以弹出QFileDialog对话框让用户输入文件名或者路径,它可以限制用户只能选择已经存在的文件,,也可以允许用户输入一个新的文件名,此外,使用过滤器,则只能选择符合特殊标准的文件名。ShowFile Header1 /* showfile.h */2 #ifndef SHOWFILE_H3 #define SHOWFILE_H45 #in转载 2013-08-19 10:46:31 · 2956 阅读 · 0 评论 -
Qt将文件保存到指定目录下(另存为的功能)
因为Qt才开始入门。对文件的操作还不是很熟练。经过一段时间查找终于找出一些适用于入门的代码。 QDir d; d.mkpath("D:/123"); file = new QFile("D:/123/tmp"); file->open(QFile::WriteOnly);恩其实当时要找的就是这么点代码可是网上的Qt很少(相对于VC)或者说内容很多,不是针转载 2013-08-18 12:03:28 · 13189 阅读 · 2 评论 -
VC环境下(非QT环境)使用Qt的配置方法
最近在已经发布的dll工程中发现了一个bug,最后决定使用Qt的signal-slot机制去改善。但是原始dll工程并非Qt工程,只是一个MFC工程,直接使用Qt函数是会报错的。经过我的摸索,最终成功移植,使其兼容Qt的函数库。步骤如下: 1.在目标工程下,依次选择“项目--》**属性--》配置属性--》C/C++--》常规--》附加包含目录”中添加Qt的重要目录,如下图所示原创 2015-05-04 17:14:00 · 3201 阅读 · 0 评论 -
vs2010中自动生成Qt的moc文件的方法
Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件。这个源文件中包含了 Q_OBJECT 宏的实现代码。这个新的文件名字将会是原文件名前面加上 moc_ 构成。这个新的文件同样将进入编译系统,最终被链接到二进制代码中去。因此我们可以知道,这个新的文件不是“替换”掉旧的文件,而是与原文件转载 2015-05-04 15:58:59 · 4205 阅读 · 0 评论 -
Qt中的信号与槽机制解析
注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用。所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。当某种事件发生之后,比如,点击一下鼠标,或者按下某个按键,此时,这个组件就回发出一个信号。如果有一个槽,正好对应上这个信号,那么,这个槽函数就回被调用。槽函数和普转载 2015-05-04 17:44:02 · 12326 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObject
编写一个简单的给予QT的DEMO程序步骤大致如下:下面开始编程:A 编写 main.cppB 编写 hello.hC 编写 hello.cppD 制作.ui文件,并生成ui_hello.h 打开designer,拖入一个pushButton,一个label。保存为hello.ui。然后生成ui_hello.h,并添加到项目的源文件中。 编译运转载 2015-05-04 16:00:45 · 7094 阅读 · 0 评论 -
QT中QDir::currentPath()和QAppllication::appllicationDirPath()用法区别
最近需要动态回去exe文件的原创 2014-07-24 16:58:04 · 19942 阅读 · 0 评论 -
QT中的调试技术
下面提供一些有用的提示来帮助你调试基于QT开发的应用程序。调试配置 安装配置qt时,要确保包含调试选项。在一些平台上,在调试模式下编译qt将导致应用程序比预想的要大。带/不带框架的调试 有关调试库和框架的东西创建在developer.apple.com。 Apple Technical Note TN2124 在编译Qt的时候,默认要编译框架。在结果中,可以找到发行版转载 2014-07-22 12:07:18 · 1465 阅读 · 0 评论 -
QT中什么时候delete
在C++中学习过程中,我们都知道:delete 和 new 必须 配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt作为C++的库,显然是不会违背C++的前述原则的。可是:在Qt中,我们很多时候都疯狂地用new,却很少用delete,缺少的 delete 去哪儿了?!注:本文暂不涉及智能指针(smart pointer)相关的东西,你可以考虑 Qt 智转载 2014-07-17 16:57:43 · 1387 阅读 · 0 评论 -
线程、事件与QObject
线程、事件与QObject敬告:测试版本本译文接近定稿,但还须一些加工和更好的例子。欢迎任何评阅和贡献。有关本文的讨论参见如下“链接”:http://developer.qt.nokia.com/forums/viewthread/2423/介绍You’re doing it wrong. — Bradley T. Hughes线程是qt c转载 2013-12-08 16:23:19 · 1293 阅读 · 1 评论 -
QThread的currentThreadId()和currentThreadId一样吗--加括号与不加括号的区别
首先,介绍下QThread的currentThreadId()方法:Qt::HANDLE QThread::currentThreadId () [static]Returns the thread handle of the currently executing thread.Warning: The handle returned by this function is us原创 2013-12-18 14:37:31 · 6209 阅读 · 2 评论 -
QThread使用方法总结
本文讲述的是在Qt中QThread使用方法,QThread似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用 QThread,随便用google一搜,就能搜出大量结果出来。无怪乎Qt的开发人员 Bradley T. Hughes 声嘶力竭地喊you are-doing-it-wrong和众多用户一样,初次看到这个时,感到 B转载 2013-12-17 19:05:42 · 4028 阅读 · 0 评论 -
正则表达式的用法
正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串,用来验证输入的字符串是否符合要求。 设置正则表达式.类似下面的QRegExp 这里的用法就是用来检测QString等字符串错误的,例如文件名里面最好就不出现<>|/\:等,所以可以如下定义QRegExp rx("[a-zA-Z0-9\-\\\_]{25}"); 25就是所输入的字符串个数!a-z当然就是a-z转载 2013-08-15 15:41:43 · 1402 阅读 · 0 评论 -
QT中怎么设置和使用进度条
QT中有两种可以实现进度条,QProgressBar和QProgressDialog。(一)QProgressBar的使用例子QProgressBar progress;for(int i=0;i{ for(int j=0,j progress.setValue(i);}这段代码一般都放在一个slot中,如点击一个button时触发的一个原创 2013-08-24 23:23:52 · 9705 阅读 · 1 评论 -
QT中QVector的使用
当我们想用数组时,但是又不知道数组的大小,数组的大小是根据实际情况变化的,不确定的,这是我们就要为数组动态分配空间,这时,我们可以考虑两种情况:(1)在c++中使用new()和delete(),在c中使用malloc和free。(2)使用Vector容器后者的使用更方便些,这里我主要介绍下QT中的QVector。首先,引入#include 在不知道要分配空间多少的情况下,我们先这样在*原创 2013-08-25 17:48:30 · 13634 阅读 · 0 评论 -
tr()函数的用法 国际化的问题
在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人:(1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr(2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:(2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包)(2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包)转载 2013-08-13 09:47:44 · 978 阅读 · 0 评论 -
QString 与中文问题
QString 与中文问题(更新:本文的姊妹篇Qt5与中文问题)首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码。而转载 2013-08-13 09:44:55 · 1466 阅读 · 0 评论 -
QT表格的宽度自适应调整方法void setStretchLastSection ( bool stretch );
为QTableWidget继承有QHeaderView,而QHeaderView有一个方法void setStretchLastSection ( bool stretch );它的形参为bool 型,可以用来设置是否充满宽度。下面是一个例子:#include #include #include int main(int argc, char *argv[]){转载 2013-08-12 20:16:38 · 9586 阅读 · 1 评论 -
Qt Qtableview 的一些用法
Qt Qtableview 的一些用法标签:Qt Qtableviewhttp://5449763.blog.51cto.com/5439763/1122514一些Qtableview的用法: QTableView *tableview; QStandardItemModel *model = new QStandardItemModel();Qtablevie转载 2013-08-12 09:35:03 · 13635 阅读 · 1 评论 -
有关QT表格
有关QT表格void QCurveQueryTool::printview() //printFlag =2 , 打印预览{ QPrinter printer(QPrinter::ScreenResolution); QPrintPreviewDialog preview(&printer, this); preview.setMinimumSiz转载 2013-08-11 16:44:32 · 1004 阅读 · 0 评论