QT
码丁农
这个作者很懒,什么都没留下…
展开
-
QTimer备忘
你可以把QTimer看作是一个能够产生定时事件的对象。当你启动一个QTimer时,你实际上是在告诉事件循环:“请在指定的时间后向我发送一个定时器超时事件(Timer Timeout Event)”。2、虽然是在当前线程中执行的,但即便把定时器的执行频率设置的非常高,也不会导致当前界面无响应,除非在定时器的处理函数中持续占CPU(例如sleep循环)。1、定时器是在当前线程中执行的,实际上,它处于当前线程的事件循环中,如果想定时器放在单独的线程中执行,可以借助于moveToThread实现。原创 2024-08-23 14:25:15 · 133 阅读 · 0 评论 -
QTableWidget调用SetRowHeight不起作用
去掉就行了,原因不明。原创 2024-07-01 19:09:03 · 160 阅读 · 0 评论 -
Qt使用lambda的坑
【代码】Qt使用lambda的坑。原创 2023-12-11 17:24:12 · 462 阅读 · 0 评论 -
设置QCheckBox样式
【代码】设置QCheckBox样式。原创 2023-12-06 19:38:04 · 818 阅读 · 0 评论 -
Qt关于输入法的备忘
(1)界面上的‘地球’按钮可以切换中/英文,但是默认编译出的只有英文,如果要编译中文,需要在工程属性的Build Steps为qmake增加CONFIG+="lang-en_GB lang-zh_CN"(但是我加上了,虽然‘地球’按钮有‘简体中文’选项了,但点击字母还是不出现汉字)。2、qtvirtualkeyboard源码在Qt源码根目录下,可以直接用QtCreator打开工程编译。(2)解决编译时GLES2/gl2.h找不到的问题,在pro文件中增加。原创 2023-03-23 17:07:53 · 405 阅读 · 0 评论 -
Qt setMouseTracking不起作用
在代码中调用setMouseTracking(true)不起作用,发现必须在ui部件属性里设置才起作用。原创 2023-05-16 15:36:35 · 239 阅读 · 0 评论 -
beginMoveRows/endMoveRows用法
【代码】beginMoveRows/endMoveRows用法。原创 2023-04-26 16:48:45 · 321 阅读 · 0 评论 -
Qt防止自动获取焦点
由于获取焦点会触发输入法弹窗,为了防止一些部件自动获取焦点时导致输入法弹出,可以设置部件的焦点获取方式为setFocusPolicy(Qt::ClickFocus);原创 2023-04-05 14:53:51 · 118 阅读 · 0 评论 -
QT 开发板显示GIF图片
需要移植libqgif.so,放在Qt的plugins/imageformats目录下。原创 2023-04-05 11:08:01 · 94 阅读 · 0 评论 -
QDialog 模态对话框与事件循环
QDialog 模态对话框与事件循环_dbzhang800的博客-CSDN博客原创 2023-03-24 19:28:47 · 74 阅读 · 0 评论 -
Qt设计师如何添加QToolBar工具栏
在QtCreator设计师界面中,在MainWindow上右键,有“添加工具栏”菜单项,但。只有在MainWindow上右键才有,在其它控件上方点击则没有,那么怎么在对话框上添加呢?原创 2023-01-30 10:52:34 · 1123 阅读 · 0 评论 -
Qt坐标系统
setWindow并不是控制控件本身的显示,而是控制在其上的绘图行为的显示,它让你可以自由设定坐标,然后你的绘图代码函数里就可以按照你自己设定坐标相对值硬编码,比如上面坐标设置成了painter.setWindow(-50,-50,100,100);setViewPort设置视口的含义是什么的,我的理解是它让painter把图绘制在它指定的区域里,也就是它的参数指定的矩形,这个矩形是物理坐标表示的。并且在这里由于视口是用控件的物理高宽算的,这样即是控件缩放的时候,圆锥也能随着缩放。原创 2022-11-11 12:26:17 · 177 阅读 · 0 评论 -
Latin1、ISO-8859-1和中文表示
从本质上说,ISO-8859-1是单字节编码,自身不能显示中文,若要显示中文,必须和其他能显示中文的编码配合,如“GBK”,“UTF-8",以ISO-8859-1编码的文本,都以bytes[]的形式保存,若要显示中文,只需以显示平台的默认编码格式进行解码即可。若仍然以ISO-8859-1格式解码,得到的中文字符肯定是乱码,因为ISO-8859-1自身不能显示中文。latin1latin1又名ISO-8859-1,编码表如下:demo3一共256个字符!这就是传说中的单字节编码,.原创 2022-03-08 15:45:52 · 7942 阅读 · 0 评论 -
QListWidgetItem上附加widget
QListWidget在动态增加item的方式下,为item附加的widget可能会发生位置偏移。解决方法是关联一个委托,这个委托并不需要和附加widget有关系,只需要重载updateEditorGeometry函数即可。XItemDelegate.hXItemDelegate.cpp.........原创 2022-06-22 17:00:27 · 1860 阅读 · 0 评论 -
QListWidget中的内容不显示
QListWideget内容不显示原创 2022-06-22 14:34:48 · 1457 阅读 · 0 评论 -
QT的.Pro文件
1、帮助手册位置2、复制编译结果。原创 2022-05-04 17:53:37 · 1273 阅读 · 0 评论 -
Qt中的MIME
1、可以把mime数据看做是描述文件本身的数据,虽然一般我们是按照文件后缀名区分文件类型,但实际上操作系统是按照它预定义的支持的文件格式识别文件。mime类型大全:Shared MIME-info Database2、除了操作系统预定义的文件类型,我们还可以自己扩展,扩展名字一般application/x-开头,例如QT框架就为QAbstractItemModel扩展了application/x-qabstractitemmodeldatalist。...原创 2022-04-19 08:45:16 · 1442 阅读 · 0 评论 -
Qt Plugin笔记
1、QtPlugin的理念是App定义接口,Dll实现接口,因此接口定义源文件是在App这里。2、Dll没有导出类名这个说法,因为这些类App压根是看不见的,也就是说Dll并不是提供它内部的类名给App,App只是调用App自己定义的接口,只不过这些接口是由Dll内部类实现的,App通过QPluginLoader.instance()函数拿到了指向Dll提供的类对象的指针,这实际上就是导出类的对象指针(即接口的派生类的指针),但是对于App来说它无需关注这个派生类名,它只要按接口定义使用就行了。3、原创 2022-04-09 22:27:36 · 931 阅读 · 0 评论 -
Qt使用动态库
三种方式:方式一、编译时就链接:必须在exe的pro文件中配置动态库的include和lib,而且这种方式要.dll(.so)和.lib(.a)都需要。方式二、动态加载:使用QLibrary,这种方式有个缺陷是它只能调用动态库的导出函数,而且必须是extern"c"的,调用不了类。方式三、动态加载:使用QPluginloader,这种方式最强大,可以调用动态库中类。...原创 2022-04-05 21:50:58 · 5995 阅读 · 0 评论 -
QtCreator 拖放控件后被隐藏
有时候,在UI里拖放控件时,控件会突然消失,但控件还在,此时只要把该文件关了再打开就可以再显示出来。原创 2022-03-08 15:48:56 · 698 阅读 · 0 评论 -
QProcess执行复合命令
使用QProcess执行由多个程序组成的复合命令,要借助sh,不是直接执行程序名。例:获取开机时间 QProcess proc; QStringList args; args << "-c" << "date -d \"$(awk -F. '{print $1}' /proc/uptime) second ago\" +\"%Y-%m-%d %H:%M:%S\""; proc.start("sh", args); if (proc.wa原创 2022-02-11 16:11:52 · 1021 阅读 · 0 评论 -
QTCreator环境变量空格问题
在Build Environment中添加环境变量时,变量路径最后不能带有空格,否则可能会造成生成的makefile里有关路径失效。原创 2022-01-27 13:39:37 · 324 阅读 · 0 评论 -
QMessageBox按钮中文
QMessageBox::warning(NULL, "标题", "提示信息", "确定");// 在QMessageBox的帮助文档中并没有这种用法说明,但通过这个方法却可以让按钮以中文显示原创 2021-11-15 16:05:17 · 431 阅读 · 0 评论 -
QSettings 出现%3D
QSettings settings;settings.setValue("key", "value");//正确settings.setValue("key=", "value");//错误,别画蛇添足加=,在文件中=会被转义为%3D原创 2021-11-15 15:16:07 · 399 阅读 · 0 评论 -
解决QTCreator调试时无法查看QString值的问题
取消勾选箭头所示选项即可:原创 2020-08-03 15:34:09 · 3505 阅读 · 1 评论 -
QtCreator添加多个工具栏
在看sqlitebrowser源码时发现存在多个工具栏,于是分析是如何添加上的。1、在QtCreator设计师界面中,在MainWindow上右键,有“添加工具栏”菜单项。(注意,一定要在MainWindow上右键,在其它控件上方点击则没有)。这样就可以添加多个工具栏了。2、把工具栏放到某个容器控件中,例如TabWidget或groupbox里。开始以为通过拖动就可以,但发现不行,看来QtCreator不具备这个功能。最后想了个办法,用其它文本编辑器打开.ui文件,剪切这个工具栏的相关内容到容器控件下。原创 2020-07-31 11:33:20 · 1933 阅读 · 0 评论 -
QT5.5应用程序图标、exe图标设置
QT5.5应用程序图标、exe图标设置 设置应用程序图标(png文件) 在已有的工程中添加一个.qrc文件。 新建文件–>QT–>资源文件,即可添加,这里我们命名为update.qrc。 添加前缀–>添加需要使用的图片。将图片放到源码目录下。保存一下项目,在pro文件中将自动将qrc文件添加进去。 添加前缀 添加文件 在主程序ui文件的修改属性windowsicon项。 这里写图片描述选择自己需要的png...转载 2020-05-29 16:07:55 · 3181 阅读 · 0 评论 -
Windows下用QtCreator编译sqlitebrowser
1. 首先注意,在windows下,sqlitebrowser依然依赖sqlite动态库,而且sqlite官网提供的编译好的二进制文件是用MSVC编译的。所以QtCreator安装时需要支持MSVC。2. 下载的sqlitebrowser-3.10.0.zip和sqlite-amalgamation-3260000.zip解压到同级目录下3. 用QtCreator打开sqliteb...原创 2019-11-12 16:48:11 · 522 阅读 · 0 评论 -
setWindowFlags(Qt::FramelessWindowHint);使得窗体透明的问题解决
方法一: setAutoFillBackground(true);方法二:不要传this指针给子窗口。dialog dlg(this);dlg.exec();改为dialog dlg;dlg.exec();转载 2016-03-13 22:40:16 · 6210 阅读 · 0 评论 -
QT中文乱码问题
1.QString内部默认采用unicode2.当通过一个字符串生成QString时,QString必须知道这个字符串是什么编码,默认它认为是Latin13.(1)为了告诉QString字符串是什么编码,就采用 QTextCodec *codec = QTextCodec::codecForName("utf8"); QTextCodec::setCodecForCStr...原创 2014-06-11 17:27:21 · 1168 阅读 · 1 评论 -
QT QTableWidget 用法总结
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并转载 2015-04-13 13:01:40 · 547 阅读 · 0 评论 -
qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小
A background-image does not scale with the size of the widget. To provide a "skin" or background that scales along with the widget size, one must use border-image. Since the border-image property prov原创 2015-04-11 14:15:34 · 13393 阅读 · 1 评论 -
【Qt】正确判断文件、文件夹是否存在的方法
一直对Qt的isFile、isDir、exists这几个方法感到混乱,不知道到底用哪个,网上搜了下资料,也是用这几个方法但是都没有对其深究,经过测试发现会存在问题,先看看下面的测试代码[cpp] view plaincopy{ QFileInfo fi("C:/123"); // 目录存在 qDebug()转载 2015-02-10 16:21:52 · 1034 阅读 · 0 评论 -
QTCreator创建及测试动态库
创建动态库:1. 在新建工程向导中选择"C++ Library",--> Shared library创建。以下以qtdll为示例名字。2.自动生成的Qtdll类就是导出类,其成员函数参数支持STL3.编译生成的so文件后面带着版本号,libqtdll.so.1.0.0测试动态库1.新建一个Qt Console Application工程2. 把libqtdll原创 2015-02-06 22:02:01 · 3487 阅读 · 0 评论 -
QT禁止父窗口样式影响子控件样式
QDialog{****}改为QDialog#myDlg{***}即,指定对象名。转载 2016-04-21 13:39:46 · 10698 阅读 · 0 评论 -
QT new模态对话框
1. 如果父窗口是new出的,则子窗口如果用堆栈的方式(Dlg dlg;)创建,则会出现QWSLock::up/down(): Invalid argument错误,这实际上QT4.8的一个Bug,如果不想重新编译Qt的话,可以采用以下方式临时避免一下。2. 正确的方式是,子窗口也要用new的方式创建,new出的窗口设置为模态需要以下四个步骤:(1)Dlg *dlg = new Dlg...原创 2016-04-22 17:04:03 · 1593 阅读 · 0 评论 -
win732位 + QT4.8.6 + QT CRETER 环境配置的搭建
一、软件准备与安装1.编译器MinGW的下载,官网地址http://download.qt-project.org/development_releases/prebuilt/mingw_32/,在这个列表中选择下载完之后解压到D:\MinGW.2.下载安装qt-opensource-windows-x86-mingw482-4.8.6-1,官网下载地址为:http://qt-proj转载 2016-06-23 08:50:24 · 657 阅读 · 0 评论 -
qt 编译时提示error: multiple definition of
今天在用QT(5.4.1) 编译程序时,提示error: multiple definition 错误,以下红色字体为错误提示。D:\Wind\PLT-Projects\BCS\tmp\moc_Cntrlane.cpp:156: error: multiple definition of `CntrLane::InputSignalChanged(bool*)'D:\Wind\PLT-Pr转载 2016-06-23 10:33:15 · 17201 阅读 · 10 评论 -
QSplashScreen程序启动画面
网上的例子:http://blog.csdn.net/hustyangju/article/details/21934427由例子看单独使用QSpalshScreen即可实现启动画面,但也可能会遇到画面不显示的问题,比如http://bbs.csdn.net/topics/390978985实践发现,其中的方法也没有效果。这就是为何增加一个看似无关的SplashDialog的原因。...原创 2018-02-26 11:10:39 · 1597 阅读 · 0 评论 -
Qt布局的使用
控件的sizePolicy设置了Fixed,再一点击设置布局,控件的大小又自动调整了。解决方法:设置布局后,再手动调整控件大小。原创 2018-04-10 18:11:08 · 3930 阅读 · 0 评论