QT
firecityplans
做好一件事,努力的去做!
展开
-
QDoubleValidator设置上下限无效的解决方法
采用如下方法对QLineEdit设置浮点数上下限值时,实际运行时会发现不启作用。QDoubleValidator* v = new QDoubleValidator(-9999,9999,6,this);QLineEdit *pLineEdit= new QLineEdit;pLineEdit->setValidator(v);解决方法有2: 方法1:继承重新写...原创 2019-10-31 19:36:08 · 10853 阅读 · 6 评论 -
通过QIntValidator实现最小值的限制
问题:使用QIntValidator限制QLineEdeit整数输入的最大最小值时,如设置为[20,300],发现最小值仍然可以设置为20以下。QValidator类相关说明:QValidator类提供一种验证输入是否有效的方法。QValidator提供validate和fixup的公有方法:virtual State validate(QString &, int ...原创 2019-08-13 15:44:36 · 8553 阅读 · 2 评论 -
qt 写入和读取 mysql中的blob类型数据
写入:若写入blob类型数据,组织如下sql语句即可:update tableName set blobKey =HEX('abcdefg');表示是以16进制的形式存储到mysql中。 读取: 以正常的select语句读取即可:select blobKey from tableName where ID = '4';sql语句执行成功后,从其中获取:QByte...原创 2018-08-01 07:31:35 · 6988 阅读 · 0 评论 -
ubuntu12.04 和win7操作系统上Qt处理mysql中的中文乱码问题
(1) mysql数据库中需要以utf8格式保存。(2) main函数设置 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));(3) Qt界面显示时: std::string sz = m_strName.toStdString(); item = new QTableWidgetIte...原创 2018-05-22 23:22:20 · 265 阅读 · 0 评论 -
QTableWidget刷新数据后仍展示为刷新数据前的滚动条所在位置的信息
使用QTableWidget刷新数据后,经常会自动展示为table首行。为了显示刷新数据前所在的位置,解决办法如下: 先记住滚动条位置,刷新数据后,再重置滚动条位置。伪代码如下:QScrollBar *scrollBar = verticalScrollBar();int barPos = scrollBar->value(); //refresh原创 2017-10-14 11:56:51 · 8012 阅读 · 1 评论 -
QWidget::paintEvent 被调用的场景
一般情况下,若通过Qt实现绘图,需要重写此函数。Qt助手给出如下解释:void QWidget::paintEvent ( QPaintEvent * event ) [virtual protected]This event handler can be reimplemented in a subclass to receive paint events passed in eve原创 2017-10-06 16:06:58 · 6438 阅读 · 0 评论 -
Qt翻译文件使用方法
1) 在程序中加载翻译文件 QTranslator *translator = new QTranslator; translator->load(QString(path)+QLatin1String("appName_") + QLocale::system().name()); installTranslator(translator);2)原创 2017-10-06 10:01:16 · 3283 阅读 · 0 评论 -
Qt二维图形编程之窗口-视口概念理解
关键词: 窗口、视口、 物理坐标、逻辑坐标、世界变换、原点、中心以前上高中或大学时代学高等数学时,做数学题时经常在草稿纸上画x-y坐标,此时的场景长方形的草稿纸可以理解为视口,而自己画的x-y坐标可以理解为窗口。物理坐标类似这个草稿纸的左上角,以此作为起始点,向左是x轴,向下是y轴。逻辑坐标就是我们自己画的x-y坐标。但仍然是向右是x轴正方向,向下是y轴正原创 2017-10-07 08:25:35 · 571 阅读 · 0 评论 -
"\include\qwt\qwt_math.h(105): error C2065: “M_PI_2”: 未声明的标识符"
解决方法: 1)在“预处理器定义”中添加_USE_MATH_DEFINES。 2)在相应的头文件中添加 #define _USE_MATH_DEFINES 原因如下: 在qwt_math.h中解释如下: #if defined(_MSC_VER)/* Microsoft says: Define _USE_MATH_DEFINES b原创 2017-09-14 00:04:04 · 4762 阅读 · 1 评论 -
在QTableWidgetItem 中嵌套多行及行高自适应
//在一个QTableWidgetItem中设置多个Label,也可以嵌入其他类型的widget。最后调用的是setCellWidget而不是setItem QWidget* cw = new QWidget; QVBoxLayout* vbox=new QVBoxLayout(cw); for(int j=0; j<lineNumber;j++){ QLabel *label = n原创 2017-08-22 07:59:37 · 3578 阅读 · 0 评论 -
Qt信号槽使用注意事项
使用信号槽connect时 1)信号函数和槽函数都不能加形参。 2) 信号函数和槽函数形参列表要保持一致。原创 2017-08-22 08:47:35 · 611 阅读 · 0 评论 -
CL : warning : Inclusion of header files from include/Qt is deprecated.
在VS2010上使用Qt,出现这个告警的主要原因是路径设置问题。由于在系统变量中已经设置。因此包含头文件时可以不指定路径了:#include 。如果使用#include ,则会出现如标题那样的错误。原创 2014-09-02 19:51:32 · 3426 阅读 · 0 评论 -
APR内存池的创建与销毁
/* memory pool study 2011-9-28 */#include #define MEM_ALLOC_SZ 1024int main( int argc, char ** argv ){ apr_pool_t *pool; /* 内存池原创 2011-09-28 16:16:46 · 1087 阅读 · 0 评论