![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT
西飘客
这个作者很懒,什么都没留下…
展开
-
QT使用QLabel控件显示图片,报错:QPixmap::scaled: Pixmap is a null pixmap
Label 和 pushButton 两个控件 实现点击 按钮 标签显示图片的功能Widget.cpp 同级目录img中有图片 1.png但是点击后报错:QPixmap::scaled: Pixmap is a null pixmap 在网上看了很多帖子:经过多方面尝试最后发现是图片格式的问题解决方案:先用QFile把文件的内容全部读取出来,然后再用loadData()来加载数据。猜测可能原因:内存对齐后,用load函数载入的时候都是按照32位深度来载入。转载 2024-05-08 17:30:07 · 330 阅读 · 0 评论 -
QT 版本选择
QT 版本选择转载 2022-09-26 09:11:30 · 9017 阅读 · 0 评论 -
ftp客户端 可以登录但是下载不了的解决
最近有一个项目,采用了ftp从服务器下载文件,使用qftp来实现,连接ftp服务器成功,登录也没问题,但是在get文件的时候会卡住,程序没有往下走,也不抛异常。出现这种故障,问题无非三种1,客户端问题 (1 检查防火墙)(2站点模式:被动模式和主动模式切换测试)2,服务器端问题;(有的主机下载正常,所以排除服务器问题)3,线路问题(检查交换机和路由)最后测试出是被动模式下,没有权限获取文件。解决办法qftp设置传输模式为主动模式。ftp->setTransferMode..原创 2020-08-13 16:39:47 · 7214 阅读 · 0 评论 -
qt 获取工作目录
Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径、用户目录路径、临时文件夹等。在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便。因此就写了这篇博客,把这几种需求的实现方式总结了一下。算是个备忘录吧。程序所在路径获取程序所在路径,QCoreApplication 类里就实现了相关的功能:QString QCoreApplication::applicationDirPath转载 2020-07-21 12:57:38 · 2078 阅读 · 0 评论 -
qt QPushButton 响应键盘回车
ui.pushButton->setFocus(); //设置默认焦点ui.pushButton->setShortcut( QKeySequence::InsertParagraphSeparator );//设置快捷键为键盘的“回车”键ui.pushButton->setShortcut(Qt::Key_Enter); //设置快捷键为enter键ui.pushButton->setShortcut(Qt::Key_Return); //设置快捷键为小键盘上的enter原创 2020-05-09 15:32:07 · 3026 阅读 · 1 评论 -
qt 设置前置窗口
窗口显示在最前端,但不是顶置窗口,上代码:if(pMainForm->isMinimized()){pMainForm->showNormal();}//设置窗口置顶::SetWindowPos(HWND(pMainForm->winId()), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZ...原创 2020-02-10 14:02:25 · 1867 阅读 · 0 评论 -
解决VS+QT无法自动生成moc文件的问题
当在VS工程中编写QT和C++程序时,要想不同模块之间通过QT的信号(SIGNALS)和槽(SLOT)的机制进行通信,就需要继承于QOBJECT基类,继承于QOBJECT基类的类(文件),会相应的生成一个moc文件,若没有生成moc文件,则不能使用信号和槽。工程中moc文件在Generated Files目录下:双击不能打开该文件,则说明工程中没有了该文件。生成方法:1. 选择mo...原创 2019-10-31 16:21:42 · 2861 阅读 · 1 评论 -
QT 结合VS2008开发环境搭建
安装准备工作,需下载以下文件 :1.VS2008http://www.jb51.net/softs/73040.html2.qt-vs-addin-1.1.11.exehttp://www.qtcn.org/bbs/read-htm-tid-1075.html3.qt-win-opensource-4.8.0-vs2008.exehttp://download.qt-project.o...原创 2018-09-20 15:22:09 · 1918 阅读 · 0 评论 -
QT 事件与事件过滤器
事件在Qt中,事件是作为对象处理的,所有事件对象继承自抽象类QEvent。此类用来表示程序内部发生或者来自于外部但应用程序应该知道的动作。事件能够能过被 QObject 的子类接受或者处理,但是通常用在与组件有关的应用中。本文主要阐述了在一个典型应用中的事件接收与处理。事件的传递发送当一个事件产生时,Qt 通过实例化一个 QEvent 的合适的子类来表示它,然后通过调用 event()...转载 2018-09-20 18:31:23 · 150 阅读 · 0 评论 -
QT char*,wchar_t*与QString之间的转换
//QString to wchar_t: const wchar_t * encodedName = reinterpret_cast<const wchar_t *>(fileName.utf16()); //QString to char * (general case): const char * tmp = str.toUtf8().constData(); ...转载 2018-10-15 16:08:37 · 6233 阅读 · 0 评论 -
QT 改变鼠标形状
改变鼠标形状,在绘制坐标系的时候有用到,特此记下: 1 this->setMouseTracking(true); //设置为不按下鼠标键触发moveEvent 2 void mouseMoveEvent(QMouseEvent* event) 3 { 4 QPoint mousepos = event()->pos(); 5 6 //在坐标...转载 2018-10-09 14:20:14 · 2238 阅读 · 1 评论 -
QT QMessageBox 弹出框上的按钮设置为中文
前提条件:QT工程支持中文显示(非显示乱码)方式一:重写窗口内容//提示窗口void MyMessageBox(QString title, QString message){ QMessageBox mymessage(QMessageBox::Warning, title, message); mymessage.setStandardButtons(QMess...转载 2018-11-28 14:02:13 · 1415 阅读 · 0 评论 -
QT creator设置CDB调试器
在使用qtcreator时,整个ide使用感觉还是很不错的,尤其是调试的快捷键和vs是一致的的,但是在windows平台上gdb调试器表现确实不是很好,所以决定使用一下微软的调试器,qtcreator只支持gdb和cdb两种调试器,现在开始动手进行吧1. 下载windbg,如果使用的是vs2008可直接百度,下载6.xx版本,其实不管哪个版本的vs,使用6.x版本的调试器也是可以的,本人没...转载 2018-09-20 11:21:55 · 4476 阅读 · 0 评论 -
QT creator修改程序编码
qt creator修改程序编码的功能有几处。1.edit - select encoding选择载入(显示)编码和储存编码,其中GB2312和UTF-8是常用编码方式。这种方法主要是修改已经建立的程序文件。 2.tools - options - text editor - behavior - file encodings这主要针对新建的程序文件和工程运行时...转载 2018-09-20 11:15:48 · 2782 阅读 · 0 评论 -
linux 安装Qt4.8.6+QtCreator4.0.3
一、Qt简介Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。准备工作操作系统:centos6.5位数:64位二、安装1、获取源码Qt4.8.6http://download.qt.io/official_releases/qt/4.8/4.8...转载 2018-09-14 15:33:57 · 2248 阅读 · 0 评论 -
QT Qlabel添加超链接
方法1:使用信号槽绑定方式//设置超链接并绑定信号槽QLabel *linkLabel = new QLabel(); linkLabel->setText("<a href=\"http://www.cnblog.com/fron_csl\">linkLabelTest");connect(linkLabel, SIGNAL(linkActivated(QString...转载 2018-09-13 16:33:45 · 3260 阅读 · 0 评论 -
QT 对话框自定义标题、最小化,最大化,关闭,帮助
去掉关闭按钮,去掉帮助按钮: setWindowFlags(windowFlags()&~Qt::WindowCloseButtonHint&~Qt::WindowContextHelpButtonHint); 保留:打开自定义开关,使能窗口标题、最小化,最大化,关闭。 setWindowFlags(Qt::CustomizeWindow...转载 2018-09-13 14:47:18 · 2755 阅读 · 0 评论 -
QT 使用绝对坐标摆放控件
这些天在做程序的时候,需要用上Qt来布局,但这时候又有一个难题了,如何能不用layout也将组件摆放上窗口呢?网上按“QT如何使用绝对坐标布局”这样的关键字找不到答案。。 于是,忽然灵机一动,想到使用Qt Designer来解决这个问题,为什么Qt Designer上面还没有布局就可以将组件摆放上去了呢?于是,看看它的源代码就知道了答案。 需要用上的相关的关键字有:Geometr...转载 2018-09-07 15:29:25 · 5690 阅读 · 0 评论 -
QT QTableWidget的用法
简述:表格类是Qt中常用的控件,如QTableWidget,QTableView。QTableWidget是QTableView的子类,主要区别是QTableView可以使用自定义的数据模型来显示内容(即先通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(即无需要数据源,逐个单元格信息填好...转载 2018-09-07 13:53:49 · 9305 阅读 · 1 评论 -
QT QFileSystemModel文件过滤
QFileSystemModel,只需要调用其成员函数setNameFilters就可以,如实现显示文件下D:/program文件下的目录及.cpp和.h文件QFileSystemModel *model = new QFileSystemModel();model->setRootPath("d:/");QStringList nameFilter;nameFilte...转载 2018-09-07 11:12:34 · 3716 阅读 · 0 评论 -
QT 组合键
CTRL+Enter发送信息的实现 在现在的即时聊天程序中,一般都设置有快捷键来实现一些常用的功能,类似QQ可以用CTRL+Enter来实现信息的发送。 在QT4中,所有的事件都继承与QEvent这个类,以下是用QEvent来实现快捷键的功能。 首先所有QT类的基类QObject有一个成员函数installEventFilter,这个函数是用来将一个事件处...转载 2018-10-10 10:56:27 · 1772 阅读 · 0 评论 -
QTableWidget清空或删除内容及表头样式内容
1、清空表格中所有内容void QTableWidget::clear() [slot] //清空表格中所有内容(包含表头)Removes all items in the view. This will also remove all selections and headers. 2、清空表格中的内容(不包含表头)void QTableWidget::clearContents...转载 2018-11-13 15:24:05 · 3268 阅读 · 1 评论 -
Qt 监测系统文件和文件夹变化QFileSystemWatcher
QFileSystemWatcher文件系统监视器#include <QFileSystemWatcher>#include <QDir>private: Ui::Widget *ui; QPoint relativePos; QFileSystemWatcher myWatcher;...转载 2019-08-02 11:32:21 · 2122 阅读 · 0 评论 -
QT 多个QDockWidget 切换显示
问题:使用代码切换堆叠在一起的多个QDockWidget,显示不同的QDockWidget堆叠QDockWidget使用如下函数void QMainWindow::tabifyDockWidget (QDockWidget * first, QDockWidget * second )方法:void QWidget::raise ()xxx->raise...原创 2019-07-10 11:55:38 · 4016 阅读 · 0 评论 -
关于vs2008中QT插件界面生成文件(generatedfiles)的红色标记
关于QT的红色标记VS2008在使用QT(4.7.3)插件时,编译界面生成的文件(GeneratedFiles筛选器包含的文件)会有红色的标记,那么这些标记是如何出现的呢?图 0‑1 QT生成的文件在VS2008中的红色标记显示Debug下每个文件下方有个红色标记,而Release下每个文件下方和左侧均有红色标记。那么这些红色标记代表什么意义呢?在Generated Fi...转载 2019-06-28 10:41:25 · 1567 阅读 · 0 评论 -
QT 消息弹框隐藏关闭按钮
setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowStaysOnTopHint);目前测试只在windows上起作用,linux上效果不好。原创 2019-05-08 08:09:27 · 3481 阅读 · 2 评论 -
QImageWriter QPixmap QImage 不支持jpg和tiff的问题
一、问题QImageWriter/QPixmap/QImage不能读取jpg格式的图像,但是可以读取bmp,png格式的图像二、解决方法QImageWriter/QPixmap/QImage不能读取jpg图像问题,是因为没有把支持相应格式的动态库放到程序运行目录;从Qt的安装目录下的plugins文件夹下拷贝文件夹imageformats到程序当前的运行目录下,重新运行你的程序,就...转载 2019-04-04 17:47:02 · 1556 阅读 · 0 评论 -
Qt中QString::toStdString().c_str() 偶尔存在问题
假设QString str = "string";const char* c = str.toStdString().c_str()单步调试显示的结果可能会是'\0'而当我这样写时std::string s = str.toStdString();const char* c = s.c_str();c 是"string"为啥呢???原来有可能是这样的。str...转载 2019-03-19 17:39:12 · 1989 阅读 · 0 评论 -
QT QPushButton 响应回车 设置默认按钮
Qt编程中,通常会设置某个按钮为默认焦点,当按键盘上“回车”的时候,就会发射clicked()信号,在用一个槽来接受这个信号,就可以做很多其他的处理。代码实现如下: QPushButton* pushButton = new QPushButton(tr("保存")); ui.pushButton->setFocus(); //设置默认焦点 ui.pushButton-...转载 2019-03-04 11:52:34 · 9213 阅读 · 1 评论 -
Qt 图片格式转换
#include <QtCore/QCoreApplication>#include <QImage>#include <qimagewriter.h>#include <string>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); std:...转载 2018-12-27 14:01:39 · 2741 阅读 · 0 评论 -
QT vs2010下Qt项目中修改exe图标的方法
我项目的环境是VS2010,Qt4.X步骤1.在项目中添加rc文件,例如命名为“icon.rc”;2.修改icon.rc文件,打开项目文件夹,用txt打开icon.rc,在最后面添加"IDI_ICON1 ICON DISCARDABLE "myapp.ico"",myapp.ico是要载入的图标文件;3.将myapp.ico拷贝到工程目录文件夹下;4.在VS2010界面中,在工...转载 2018-12-01 10:44:55 · 1052 阅读 · 0 评论 -
QT 获取键盘组合键
在现在的即时聊天程序中,一般都设置有快捷键来实现一些常用的功能,类似QQ可以用CTRL+Enter来实现信息的发送。 在QT4中,所有的事件都继承与QEvent这个类,以下是用QEvent来实现快捷键的功能。 首先所有QT类的基类QObject有一个成员函数installEventFilter,这个函数是用来将一个事件处理器和该QObject绑定起来,所以就有了我下面...转载 2018-12-02 10:38:32 · 2446 阅读 · 0 评论 -
QT QMdiArea的介绍
QMdiArea 一般使用于主窗口QMainWindow,用于容纳多个子窗口QMdiSubWindow qt creator 3.0的设计师有MdiArea可直接拖入使用。界面如下,图中灰色框即是个MdiArea,另一图中创建了2个QMdiSubWindow :代码如下: #include "mainwindow.h" #include "ui_mainwindow....转载 2018-11-29 11:06:19 · 7709 阅读 · 0 评论 -
QT QTextCodec::codecForName 设置中文GBK 返回为NULL的问题
在QT的安装目录中,有个plugins\codecs目录,里面有几个和 亚洲文字编码相关的 dll 文件。其中和中文编码相关的文件是:qcncodecs4.dll(release版本),qcncodecsd4.dll(debug)版本。在生成的qt程序所在目录下面,建立一个 plugin 目录,然后再在 plugin 目录下面建立一个 codecs 目录,然后把 qcncodecs4.d...转载 2018-11-19 15:39:19 · 4857 阅读 · 0 评论 -
QT 进程间通信-共享内存
简述上一节中,我们分享下如何利用Windows消息机制来进行不同进程间的通信。但是有很多局限性,比如:不能跨平台,而且必须两个进程同时存在才可以,要么进程A发了消息谁接收呢?下面我们来分享另外一种跨平台的进行间通信的方式-Shared Memory(共享内存)。Qt提供的基于共享内存的IPC有QSharedMemory类和QSystemSemaphore类,QSharedMemory可...转载 2018-09-05 17:41:43 · 416 阅读 · 0 评论 -
QT 更改应用程序图标
1.找到一张图片.ico,名字改为myappico.ico;2.创建一个新的文本文档,内部添加 IDI_ICON1 ICON DISCARDABLE "myappico.ico",并将文件重命名为myapp.rc;3.在myapp.pro文件最后加上RC_FILE = myapp.rc,重新生成之后,就修改成功了 截图如下: ...原创 2018-09-05 15:19:38 · 4009 阅读 · 0 评论 -
QT 多线程(一)
Qt提供两种多线程方式。一种继承QThread类;另一种采用movetothread。在Qt中采用事件循环(QEvenLoop)处理时间。一、继承QThreadQt线程中默认run函数调用exec()执行事件循环。但是如果继承的run函数没有启动事件循环,run函数就不会阻塞。如果我们需要启动线程内的事件循环,就需要手动执行exec()。 注意继承自QThread的类在子线程中只有run...转载 2018-08-27 08:43:15 · 2209 阅读 · 1 评论 -
QT 设置窗体固定大小
1、 一种方法是设置它的最大窗口值和最小窗口值,并且使最大值和最小值相等。 简单的示例: setMinimumSize(370, 150); setMaximumSize(370, 150); 此时窗口大小便被固定为(370,150)。 2、一种方法是使用setFixedSize(),这样一句话就可以解决问题。 简单的示例: setFixedSize(365,240); 窗...转载 2018-08-31 17:53:06 · 8620 阅读 · 0 评论 -
QT QProcess的使用2
定义The QProcess class is used to start external programs and to communicate with them.QProcess类是用来启动一个外部程序并与之通信。使用说明开启外部线程的3中方式To start a process, pass the name and command line arguments ...转载 2018-08-27 08:43:05 · 1327 阅读 · 0 评论 -
QT QProcess的使用
1、主程序:初始化及设定信号槽 process = new QProcess(); connect(process,SIGNAL(started()),SLOT(started())); connect(process,SIGNAL(finished(int,QProcess::ExitStatus)),SLOT(finished())); connect(pr...转载 2018-08-27 08:42:53 · 6406 阅读 · 0 评论