QT
houxiaoliwang
这个作者很懒,什么都没留下…
展开
-
QTableWidget表格行列随着窗口进行变化
QTableWidget表格在窗口变化时,行列都随着变化,可以通过以下两行代码进行设置QT4中的设置: //表列随着表格变化而自适应变化 table->horizontalHeader()->setResizeMode(QHeaderView::Stretch); //表行随着表格变化而自适应变化 table->verticalHeader(...原创 2020-03-27 16:03:13 · 3625 阅读 · 0 评论 -
QT读写ini文件中文乱码
使用QT的QSettings读写ini配置文件时,如果文件中有中文或者要把中文写到配置文件,出现了乱码现象。解决办法:我的工程文件使用了默认的编码方式(win7 qt4.8+vs2008)system,在读写配置文件的时候,在QSettings set(filePath, QSettings::IniFormat);之后,读数据之前添加如下代码:set.setIniCodec...原创 2020-03-20 14:35:20 · 3876 阅读 · 0 评论 -
QT中的延时处理
一般情况下,延时大概分为两类,一个是非阻塞延时,一个是阻塞延时,但从名称上应该都可以看出来具体的含义,下面针对这两类延时方法,做一个具体的说明和代码实现:一、关于Qt实现非阻塞延时的方法:void QSleepTimeSet::Delay_MSec(unsigned int msec){QTime _Timer = QTime::currentTime().addMSecs(mse...转载 2020-03-17 14:31:53 · 1721 阅读 · 0 评论 -
QT中如何将QMainWindow提升为QWidget
步骤一:修改头文件中的基类类型,将红框内的QMainWindow修改为QWidget,并且添加#include<QWidget>步骤二:修改源文件的构造函数,将红色框内的QMainWindow修改为QWidget步骤三:如果有UI界面,则需要修改***.ui文件,将红色框内的QMainWindow修改为QWidget,这样操作之后,每次重新编译,生成的ui_***.h文...原创 2020-03-16 09:50:43 · 4631 阅读 · 3 评论 -
QT中使用QAxObject读取EXCEL大量数据时速度慢的原因及解决方案
读取excel慢的原因这里不说如何打开或生成excel,着重说说如何快速读取excel。网上搜到用Qt操作excel的方法,读取都是使用类似下面这种方法进行: QVariant ExcelBase::read(int row, int col) { QVariant ret; if (this->sheet != NULL && !...转载 2020-03-02 10:28:52 · 4762 阅读 · 2 评论 -
QT之使用QAxObject操作excel
Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic Script。1994年发行的Excel 5.0版本中,即具备了VBA的宏功能。在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作E...转载 2020-02-28 17:19:32 · 5661 阅读 · 1 评论 -
QT换肤时的QSS文件写法
QWidget, QLabel, QPushButton, QRadioButton, QCheckBox,QGroupBox, QStatusBar, QToolButton, QComboBox, QDialog{background-color: #ffaaff;color: #BBBBBB;}QPushButton{border: 1px solid #333333;...转载 2020-02-19 19:09:59 · 635 阅读 · 0 评论 -
QT5发布exe程序
1、一般情况下,发布程序时使用release模式2、将生成的exe文件拷贝到单独的文件夹,用windeployqt进行依赖库的拷贝和对应目录的生成3、步骤2完成后若程序无法正常运行,可能有以下两种提示信息:1)提示缺少**.dll库,则找到对应的库拷贝到该目录下即可2)提示程序无法正常启动(0xc0000007)错误,则将该可执行程序以及所依赖的非QT三方库一起拷贝到编译程序时使用...原创 2019-12-31 19:12:32 · 160 阅读 · 0 评论 -
QUdpSocket槽函数只被触发一次
当你定义了QUdpSocket对象并且连接了readyRead信号和自定义的接收处理槽:connect(udpsocket,SIGNAL(readyRead()),this,SLOT(udpreceive()));接收处理槽:void MainWindow::udprecerive(){qDebug()<<"触发了udp接收函数";}你会发现只能触发一次,原因...转载 2019-11-06 13:47:21 · 1919 阅读 · 1 评论 -
QT中QSettings类的对象创建方式
创建普通对象或者指针对象1)正确方式方式1:QSettings setting("filePath",存储格式)方式2:QSettings *settings;settings = new QSettings("filePath",存储格式)说明:方式2用一行创建也是可以的2)错误方式QSettings setting = QSetting("filePath"原创 2017-08-31 18:47:19 · 988 阅读 · 0 评论 -
QT中操作oracle数据库注意事项
1、执行一条插入语句,数据库中却插入了两条除主键外其他数据均相等的数据 用QSqlQuery类的对象进行SQL语句的执行,代码如下QSqlQuery query(sqlStr)query.exec()使用上述代码会同时插入两条数据修改如下:QSqlQuery queryquery.exec(sqlStr)执行修改后的代码则可以正确插入(测试有效)原创 2017-08-31 18:53:05 · 492 阅读 · 0 评论 -
QT控件QTreeWidget的说明
1、遍历控件的根节点QTreeWidget控件提供了两个可以访问根节点的函数 1)takeTopLevelItem(int) :QTreeWidgetItem *此函数只能访问第一个根节点,所以无法实现根节点的遍历2)topLevelItem(int) const:QTreeWidgetItem *此函数可以根据给定的参数来访问对应的根节点,根节点个数可以通过程序进行记录,也可原创 2017-09-12 16:37:44 · 733 阅读 · 0 评论 -
QListWidget中项的灰显设置
在QListWidget的使用中调用setFlags可以设置项的使用特性:可用与否以及拖拽等1、setFlags参数设置为Qt::ItemIsEnabled设置此参数后只是此项不可选,但是为正常显示,不会灰显2、setFlags参数设置为Qt::ItemIsUserCheckable设置此参数后项不可选,同时对应项会灰显原创 2017-09-12 16:48:48 · 4066 阅读 · 2 评论 -
QT实现截屏功能
QT中本身的截屏实现方式:QPixmap pixmap = QPixmap::grabWindow(QApplication::desktop()->windId());QDateTime dt = QDateTime::currentDateTime();QString filename = QString("%1.jpg").arg(dt.toString("yyyyMMdd-hh原创 2017-09-29 09:56:23 · 1167 阅读 · 0 评论 -
qt中如何设置makefile中的编译参数(qt中添加gdb调试的条件)
在qt中要在Makefile中添加相关的编译参数可以通过在xx.pro文件中修改来实现:在xx.pro中通过使用QMAKE_CXXFLAGS设置来实现(以添加gdb调试参数为例)QMAKE_CXXFLAGS += -g(在xx.pro文件中可能显示的是黑色,其他显示为有紫色)重新编译后就可以使用gdb指令调试了。转载 2018-01-22 16:19:03 · 5329 阅读 · 0 评论 -
QT4.8.4添加QtExtSerialPort模块
1、下载QtExtSerialPort模块的源码并放置在不包含中文的任意路径下2、通过终端进入存放源码的目录,使用qmake命令对qtextserialport.pro操作,生成对应的Makefile qmake为要添加serial模块的QT版本对应的路径,可以在环境变量中进行设置,也可以使用其绝对路径qmake qtextserialport.pro3、对生成的Makefile进行make(l...原创 2018-03-15 18:22:02 · 1015 阅读 · 0 评论 -
QT组件提升后不显示
问题描述:在QT项目中,新建了一个继承于类QGraphicsView的QWGraphicsView类,其创建方式如下图所示:发现在创建后子类的构造函数未对基类的构造函数赋值在minwindow UI设计器中添加控件graphics view,右击-->提升为-->选择自定义的类,然后运行程序,发现在界面不显示子类对象解决办法:在子类的构造函数中需要对父类进...原创 2019-08-16 11:25:05 · 3729 阅读 · 0 评论 -
QT多窗口语言动态切换
1、在main函数中进行静态切换 QTranslator translator; translator.load(QString(":/language/cn.qm"); a.installTranslator(&translator);2、在界面上进行动态切换 QTranslator translator; transla原创 2017-09-13 18:42:04 · 1046 阅读 · 0 评论 -
QT定时器使用
1、QObject类中的定时器1)主要使用的函数:startTimer(int intel) 启动定时器,返回一个ID用来标识不同的定时器 killTimer(int timerId) 根据参数给出的ID停止对应的定时器timerEvent(QTimerEvent *) 根据参数中提取的ID来区分不同的定时器,以便进行不同的操作2)使用此原创 2017-08-15 16:56:44 · 3709 阅读 · 0 评论 -
QT下获取汉字拼音
1、头文件chineseletterhelper.h#ifndef CHINESELETTERHELPER#define CHINESELETTERHELPER#include class ChineseLetterHelper{ // 根据GB2312编码public: static bool In(wchar_t start, wchar_t end, wcha转载 2016-12-21 17:55:52 · 5016 阅读 · 0 评论 -
QT信号槽机制介绍
信号与槽作为QT的核心机制在QT编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念、元对象工具以及在实际使用过程中应注意的一些问题。QT是一个跨平台的C++ GUI应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前Linux上最为流行的KDE桌面环境就是建立在QT库的基础之上。QT支持下列平台:MS/WINDOWS-95、98转载 2017-01-03 11:13:17 · 274 阅读 · 0 评论 -
QT下获取汉字拼音首字母
///汉字拼音首字母列表 本列表,包含了20902个汉字的拼音的第一个字母 ///本表收录的汉字字符的Unicode编码范围为19968至40869, XDesigner 整理 QString strChineseFirstPY = "YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJ转载 2016-12-19 11:00:25 · 6734 阅读 · 0 评论 -
QT读取XML文件
if(QFile::exists(CARLIFEXMLFILE)) { qDebug("XML file is file_name"); } QFile file(file_name); QString tmpStr; file.open(QIODevice::ReadOnly | QIODevice::Text);原创 2017-03-13 19:52:10 · 1284 阅读 · 0 评论 -
QT QDomDocument读取XML文件内容
//递归访问所有节点void dealXmlFile(QDomElement first){ QDomNode node = first.firstChild(); while(!node.isNull()) { if(node.childNodes().count()>1) { dealXmlFi原创 2017-07-29 14:52:36 · 802 阅读 · 2 评论 -
Qt+VS2008+Qt Creator开发环境搭建
一、工具及安装包1、Visual Studio 2008;请正确安装VS2008开发环境。2、QT SDK;我用到的版本是4.8.5,完整的文件名是:qt-win-opensource-4.8.5-vs2008.exe。3、QTCreator安装;我用到的版本是2.8.1,完整的文件名是:qt-creator-windows-opensource-2.8.1.exe。转载 2017-07-23 10:58:43 · 1065 阅读 · 0 评论 -
在mainwindow中通过代码添加控件
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ QRadioButton *radio = new QRadioButton("radio button1"); QVBoxLayout *vbox = new QVBoxLayout; vbox->addWidget(radio原创 2017-08-01 16:30:37 · 2820 阅读 · 0 评论 -
QT中将多个UI文件对应的类放在一个头文件和源文件中
主要功能:在主窗口上单击按钮,跳转到另一个窗口1、有两个UI文件分别为:form.ui和mainwindow.ui(主窗口)2、一个头文件(整合了两个UI文件对应的头文件)其代码显示如下:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include #include namespace Ui {class MainWi原创 2017-08-01 16:57:56 · 2543 阅读 · 0 评论 -
VS2010+QT5.4
1、安装VS2010(这一步必须先于安装qt插件做)2、安装qt-opensource-windows-x86-msvc2010_opengl-5.4.03、安装qt-vs-addin-1.2.4-opensource(qt插件,在VS中可以显示QT菜单和创建QT工程的重要步骤)4、配置VS2010在VS中选择菜单QT5-->qt option,选择QT的安装目录(到msvc201原创 2017-08-16 15:07:49 · 510 阅读 · 0 评论 -
Qt+VS2010中英文切换
界面先简单只有两按钮,分别控制英转中和中转英。先说步骤:1、用英文做界面。2、在工程上右键,点击"Create new Transltion File ",会在工程目录生成一个ts文件。3、用linguist.exe打开ts文件,填上对应的中文翻译。4、 在工程上右键,点击“lrelease all .ts files in project”,生成一个qm文转载 2017-08-16 18:17:14 · 1758 阅读 · 0 评论 -
QT界面布局设计
方法一、用QT设计器1、以方便快捷的将需要的控件拖放至适当的位置,并通过样式简单设置其显示风格2、右击跳转到槽,为控件添加处理事件说明:对应的文件有:***.ui(界面显示文件) ***.h ***.cpp(处理事件所在的文件) ui_***.h(此文件在编译时生成,但是在QT工程中不显示,其中内容为控件的界面布局) 方法二、手工编写代码1、创建类,在类中定义需原创 2017-08-18 09:41:48 · 595 阅读 · 0 评论 -
QT中的namespace Ui的理解
接下来谈谈namespace Ui { class Dialog: public Ui_Dialog {}; }/********************************************/转载 2017-08-18 09:45:56 · 2565 阅读 · 0 评论 -
QT中文乱码设置
QT4解决中文乱码:QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));在QT5中取消了上面的两个API,其解决办法如下:方法一:#pragma execution_c...原创 2017-07-27 15:58:46 · 158 阅读 · 0 评论 -
QT样式使用
一、简述我们通常在使用Qt开发的过程中都会使用样式表来美化我们的界面,关于如何使用样式表的资料也很多,样式表的使用方法也千变万化。为了搭建一个漂亮的界面那么必须学会如何使用样式表,Qt帮助文档中提供了非常好的例子以及详细介绍,非常适合学习。同时呢,也不能光看文档中是如何设置样式,我们要亲自动手做一遍才能理解得更加透彻,好了闲话不多说,下面就我在日常开发过程中对样式表的使用做一下简单的总结。转载 2017-07-28 17:33:28 · 410 阅读 · 0 评论 -
QXmlStreamReader解析XML文件
如何使用QXmlStreamReader来解析格式良好的XML,Qt的文档中指出,它是一种更快、更方便的Qt自己的SAX解析器(QXmlSimpleReader)的替代,它也较快,在某种情况下,比DOM(QDomDocument)更方便。 XML文件: 解析方法:void ParseXML::parseXML(QString file转载 2017-07-29 10:08:21 · 2600 阅读 · 1 评论