
Qt
modi000
生命不止,奋斗不息!
展开
-
Qt中使用数据库
qDebug()转载 2024-06-20 15:12:53 · 138 阅读 · 0 评论 -
虚拟机中的Qt编译路径直接生成到主机
我们在虚拟机中编译程序,利用虚拟机环境,编译后的文件生成在虚拟机,还需要拷贝到主机,较为麻烦。其实,可以直接将编译目录改为主机的目录,避免拷贝的麻烦。原创 2022-09-28 15:43:22 · 343 阅读 · 0 评论 -
QTableWidget设置滚动条、列宽可调
显示滚动条、调节列宽原创 2022-06-28 16:05:01 · 6122 阅读 · 0 评论 -
Qt布局管理(1):部件拉伸原理及大小策略(sizePolicy)
本文为原创文章,转载请注明出处,或注明转载自“黄邦勇帅(原名:黄勇)本文出自本人原创著作《Qt5.10 GUI完全参考手册》网盘地址:https://pan.baidu.com/s/1iqagt4SEC8PUYx6t3ku39Q《C++语法详解》网盘地址:https://pan.baidu.com/s/1dIxLMN5b91zpJN2sZv1MNg若对C++语法不熟悉,建议参阅本人所著《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C++知识点相当方便,并对语法原理进行了透彻、深转载 2022-06-20 15:24:07 · 1478 阅读 · 0 评论 -
Qt中可以带参数调试
如题,在项目中,添加参数即可。原创 2022-04-26 13:27:20 · 728 阅读 · 0 评论 -
Qt中创建了多个子项目运行时出问题
Qt中创建了多个子项目,某一个子项目中可能有问题,但具体不知到问题是哪个子项目造成的,解决方法:我们可以单独打开该子项目,因为每个子项目都是有pro文件的,都是单独的工程。原创 2022-04-26 13:25:17 · 450 阅读 · 0 评论 -
Qt编译过程中报错误“multiple definition of ‘‘”
工程中碰到,编译Qt工程时,出现,如题的错误,在main函数中的变量或者函数都重现重复定义的错误。原因:在pro中source中 重复包含了 main.cc这个文件。原创 2022-04-24 14:10:48 · 1649 阅读 · 1 评论 -
QT设置窗口图标
方法一1.添加QT资源文件2.添加图标文件3.载入文件目录方法二 修改UI文件转载:QT设置窗口图标_也许现在将来的博客-优快云博客_qt设置窗口图标转载 2022-04-22 15:27:23 · 3414 阅读 · 0 评论 -
cannot open shared object file: No such file or directory
我们在终端中运行可执行程序A(A进程中调用了lib库)时,遇到如上错误。原因:系统找不到lib库位置。Q:我们在Qt工程的pro中已经添加了lib目录了,为什么还会找不到?A:pro中添加的是编译的路径,如上是运行时出现的问题。此时通过Qt编译器直接运行程序也是惠报错的。解决方法1:将.so库文件拷贝到/lib (root权限下)目录下;(这种方法将系统的库和用户的库放在一起了,一般不这么做)解决方法2:将用户库路径添加到系统的库路径中LD_LIBRARY_PATH(ps:原创 2022-04-12 16:42:04 · 2598 阅读 · 0 评论 -
程序移植中文乱码问题
在该文中提到程序移植后,中文显示乱码的问题,实质:原程序所用编码与本机的默认编码不一致造成的。我们用Qt可以临时更改文件的编码,但是,重启打开工程后,中文又是乱码。终极解决方案:1、查看目标机的编码:2、在原机器上将程序的各cpp和h文件通过 notepad++ 保存为 utf-8格式。3、程序重新拷贝到目标机,此时再次打开,中文也不会乱码了。...原创 2022-03-25 10:33:56 · 603 阅读 · 0 评论 -
linux下Qt程序设置桌面快捷方式
方法1:编写一个shell脚本方法2:通过菜单中添加到桌面,通过这种方式,可以直接双击打开。原创 2022-03-11 15:24:11 · 1242 阅读 · 0 评论 -
Qt程序在arm板上运行
1、Qt中的库需要拷贝到arm板上;2、配置环境变量,参考该文。总结:1、可执行程序在终端中运行前,需要配置好环境变量,我们用export的形式配置的,这种形式只在当前终端中生效(因为,如果我们手动运行进程时,会出现缺库等错误,此时只要在当前终端中在export 一下就可以了。)2、我们发布exe程序时,也是要将plugin lib等打包发布的。...原创 2022-01-21 09:51:17 · 2755 阅读 · 0 评论 -
Qt4升级至Qt5——环境变量的修改
平台:嵌入式ARM(RK3128)Qt4依靠于QWS框架,环境变量如下(/etc/profile):#Qt4环境变量QT_DIR=/usr/lib/arm-qtexport QT_QWS_FONTDIR=$QT_DIR/lib/fontsexport QWS_MOUSE_PROTO="tslib:/dev/input/event1 mouseman:/dev/input/mice"export QT_QWS_DISPLAY="linuxFB:/dev/fb0"export LD_LIBR转载 2022-01-21 09:43:58 · 1727 阅读 · 0 评论 -
Qt之Qt4和Qt5的环境变量区别(QPA和QWS)
在arm板上配置Qt4应用程序的环境变量的时候,发现一般都是export QTDIR=/usr/local/qte export QWS_MOUSE_PROTO="tslib:/dev/input/event0" export QWS_DISPLAY="LinuxFB:mmWidth800:mmHeight480:0"转载 2022-01-21 09:36:48 · 2050 阅读 · 0 评论 -
终端中运行进程显示缺少库
背景:我们使用交叉编译的方法:在虚拟机上编译的Qt程序,编译好的程序在装置上运行。提示少库。分析:如果是非交叉编译,我们会将库文件的路径放置在Qt的pro中,但是现在是交叉编译,需要在装置中加载Qt的库。...原创 2021-08-18 19:26:28 · 239 阅读 · 0 评论 -
Qt创建文件名及工程名
原创 2021-07-27 15:11:34 · 308 阅读 · 0 评论 -
Qt生成可执行程序目录的创建
一般.pro 和 .cpp 、.h文件会在一个目录;debug目录和release目录会于pro目录在同一级。原创 2021-07-23 15:31:55 · 361 阅读 · 0 评论 -
Qt添加工程外的头文件和库的理解
我们指导,在创建工程的时候,我们会创建.cpp和.h文件,当我们添加这些文件之后,这些文件会在pro中显示添加:SOURCES += \ test.cpp \ main.cppHEADERS += \ test.h 此外,当我们调用外部的库及头文件时,(这些无法修改)我们需要在pro中添加LIBS+= -L/home/test/lib -lMyTest //相当于.cppINCLUDEPATH += $$PWD/include /.原创 2021-07-23 15:27:58 · 3557 阅读 · 0 评论 -
linux下可以直接拷贝Qt到另一台服务器上
当在一台linux系统服务器上安装了Qt程序之后,可以通过scp命令直接拷贝整个Qt文件到当前的服务器上,发现Qt程序是可以正常运行的。cd qtcreator/bin./qtcreator.sh原创 2021-07-23 14:53:24 · 719 阅读 · 0 评论 -
Qt中的布局、样式表总结
1、多个小部件归于一类的话,可以都放在QGroupBox中2、QGroupBox的名字位置的调节可以通过样式表来改变:#tabWidget QGroupBox::title {color: #00AAFF;subcontrol-position: bottom center;}3、QGroupBox之间的间距,通过修改布局间的间距,设置为0...原创 2020-10-27 10:36:59 · 727 阅读 · 0 评论 -
Qt5中QTextCodec中没有setCodecForCString、setCodecForTr
Qt4中有setCodecForLocale()、setCodecForCString()、setCodecForTr()但Qt5中,只有setCodecForLocale(),没有后两个。原创 2020-10-22 08:20:21 · 3219 阅读 · 2 评论 -
Qt中写日志文件
倘若是windows下,路径改为:const static QString log_path = QCoreApplication::applicationDirPath ();测试可用。linux系统下程序如下:#include <QDir>#include <QFile>#include <QMutex>#include <QtDebug>#include <QtGlobal>#include <QDateTime..原创 2020-09-25 11:56:09 · 2437 阅读 · 1 评论 -
Qt界面程序调试过程
1、打开变量查看器:右下角视图---->局部变量和表达式2、在要查看的位置,设置断点(当然也可以先执行步骤3,开始调试后,添加断点也可以)3、点击调试按钮(或者按F5)4、等待界面出现5、选中要查看的变量值,直接拖动到变量查看窗口6、点击按钮,继续执行程序7、槽函数响应后,查看值的变化8、此时想切到界面,继续执行,发现无法获取界面,编译器一直在界面上方,此时,按F5,或者按左下方的调试按钮,继续执行,之后,便可以操作界面了。...原创 2020-09-23 21:27:56 · 3239 阅读 · 0 评论 -
Qt中遇到函数退出或线程退出时,进程却无法退出
Qt中写程序时,要到main函数中调用一个函数,或者一个线程退出时,整个进程却没有退出的情形:int foo(){ return 0;}void* myPhread(void*){ //do sth. pthread_exit(0);}int main(int argc,char* argv[]){ QApplication a(argc,argv); foo(); // pthread_t tid; //pt原创 2020-09-15 21:57:01 · 3019 阅读 · 0 评论 -
在Qt界面已存在的布局中添加新的控件
1、界面中已经做好了布局,我们需要在布局中添加新的控件,不必解除原先布局,再添加控件,最后再重新布局!只需要将控件直接拖动到布局中即可,当然,如果原布局是水平布局,拖动进去的控件仍然是按照水平布局的形式排列的,比如,要拖动到如下水平布局中一个按钮,此按钮不可能放在某个按钮的下方的。也就是说,控件要遵循原先的布局逻辑。2、控件布局的两种先后顺序:1)先将控件拖动到界面,然后再布局2)先将布局拖动到界面中,然后,向布局中添加控件此时存在情况:向一个布局中添加一个新的布局时,新..原创 2020-09-08 13:04:10 · 4429 阅读 · 1 评论 -
Qt中添加资源文件及资源文件的使用
1、将包含各种icon的名为 resource文件夹放在.pro所在的文件夹中2、右键工程文件夹,添加新文件->Qt---》Qt资源文件->起名为resource,保存在.pro所在文件中。3、工程中会生成 resource.qrc文件,双击该文件,添加资源4、添加前缀,比如/rec5、添加文件,找到步骤1中icon所在的目录添加即可。6、添加了.qrc之后,我们可以在界面中直接使用,也可以在程序中调用这些资源1)比如界面中,在某个action上添加i...原创 2020-09-07 15:31:40 · 4321 阅读 · 0 评论 -
Qt中出现 stray ‘\342‘ in program 错误
问题:粘过来的代码出现如上错误;但是,代码本身没有错误。原因:代码中有中文格式的内容???解决方法:重新敲一遍即可。原创 2020-09-07 15:24:51 · 3129 阅读 · 0 评论 -
Qt中QMainWindow界面程序的编写流程
1、Qt中继承QMainWindow的类中默认已经包含了菜单栏----->添加菜单,直接在界面上添加即可。 工具栏----->在Action编辑器中添加工具 程序中使用 ui->myAction 找到定义的action 状态栏2、需要我们自定义的将所需部件直接拖动到界面 将部件在界面中进行布局 在程序中添加槽函数 在pro工程中添加qrc资源 在信号与槽编辑器中绑定信号与槽 ps:做好以上工作,其中有些部件,比如aciton、tool...原创 2020-09-07 14:00:30 · 374 阅读 · 0 评论 -
QString转换成char*的方式
1、方式1:QString---》QByteArray---》char*QString str = "hello";char * ch = str.toLatin1().data();//或者 char * ch = str.toLocal8Bit().data();2、方式2:QStirng----》String --->char*QString str = "hello";char * ch = str.toStdString().c_str();...原创 2020-09-07 13:23:40 · 1069 阅读 · 0 评论 -
Qt编译器中可以看到系统配置的环境变量
看到的环境变量比从 我的电脑-->属性-->高级系统设置-->环境变量 看到的要多,why??原创 2020-09-03 21:24:13 · 597 阅读 · 0 评论 -
线程创建后,避免主线程先于子线程结束的四种方式
1、创建线程后,倘若不进行处理,会出现线程没有执行完,主线程就退出(意味着整个程序退出)的情况,为了避免这种情况,可以使用如下几种方法来处理:1)使用sleep函数int main(){ pthread_t pid; pthread_create(&pid,NULL,foo,NULL); sleep(10);//使用sleep函数,使cpu易主,主线程等待子线程完成。 return 0;}void* foo(void*){}2)在主线程中使用原创 2020-09-02 14:27:00 · 2884 阅读 · 2 评论 -
Qt中使用QTextCodec设置编码
int main(int argc, char *argv[]){ QApplication a(argc, argv); QTextCodec *gbk = QTextCodec::codecForName("gb18030"); QTextCodec::setCodecForTr(gbk); QTextCodec::setCodecForLocale(gbk); QTextCodec::setCodecForCStrings(gbk); //do s.原创 2020-08-26 21:44:21 · 1425 阅读 · 0 评论 -
QTreeWidget的使用示例
1、QTreeWidget中列的含义:在setColumnCounts中有示例:即,treeWidget中也是可以有多列的。 ui->treeWidget->setColumnCount(2); QTreeWidgetItem *p,*q; p = new QTreeWidgetItem(ui->treeWidget,QStringList("mm")); p->setText(1,"22"); ui->treeWidg.原创 2020-08-22 23:57:18 · 2719 阅读 · 0 评论 -
Qt.pro添加库文件路径的两种形式
我们在该文中分析了Qt中.pro的各种元素的添加方法,本文中,我们再详细分析一下两种添加库文件的形式:linux下,构建库文件后由4个文件:libMyTest.solibMyTest.so.1libMyTest.so.1.0libMyTest.so.1.0.0通过ll命令查看,可以发现:libMyTest.solibMyTest.so.1libMyTest.so.1.0三者均是指向libMyTest.so.1.0.0的链接。方式一:.pro中添加库文件的常用方原创 2020-08-20 14:48:36 · 6017 阅读 · 0 评论 -
C++将线程函数作为类成员函数,并在构造函数中创建线程
我们知道在Qt中可以使用 继承QThread类,然后重载run函数,来启动线程;此外还可以使用另一种方法:线程函数为类成员函数,注意,必须是静态成员函数,pthread_create()函数,传递this指针参数, 线程函数中将形参强转为类指针,此时,可以该指针调用类成员变量了。例如:class MYFUNC{ private: int value; public: MYFUNC(); stati原创 2020-08-19 22:19:18 · 2585 阅读 · 0 评论 -
QT 进程间通信之古老的方法(内存共享)
转载:https://blog.youkuaiyun.com/wangyeqiang/article/details/8296930Qt提供了一种安全的共享内存的实现QSharedMemory,以便在多线程和多进程编程中安全的使用。比如说QQ的聊天的客户端,这里有个个性头象,当点击QQ音乐播放器的时候,启动QQ音乐播放器(启动一QQ音乐播放器的进程)这时QQ音乐播放器里也有一个个性头像,这两者间的头像一样,现用共享内存的方法实现。 先说下实现共享内存的步骤,然后用一具体的实例说明。向共享内存中提供数据...转载 2020-08-14 10:58:05 · 247 阅读 · 1 评论 -
Qt中使用QProcess在一个进程中启动另一个进程
void startFunc(){ QProcess *process = new QProcess(this); //this表示process 的父窗口是本程序中的主窗口,当主窗口关闭时,进程也会终止, //如果不填加this,process 是独立的进程,主窗口关闭,进程依然运行 QString path = QCoreApplication::applicationDirPath(); path += "/myprocess.exe"; QStringList ar原创 2020-08-13 22:41:04 · 2983 阅读 · 0 评论 -
以QTreeWidget为例分析new 的使用
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); QTreeWidgetItem * mm,nn; mm = new QTreeWidgetItem(ui->treeWidget,QStringList("测试1")); mm->setData(0,Qt::UserRole,Q.原创 2020-08-11 10:10:29 · 697 阅读 · 0 评论 -
Qt中模态对话框的使用示例及accept()和reject()槽函数的使用
1、accept()槽函数和reject()槽函数使用exec()函数实现的模态对话框执行accept()槽,会隐藏这个模态对话框,对应的返回值dialog.exec()==QDialog::Accepted------------>宏值为1使用exec()函数实现的模态对话框执行reject()槽,会隐藏这个模态对话框, 对应的返回值dialog.exec()==QDialog::Rejected------------>宏值为0小结:accept()和reject()都可...原创 2020-08-06 09:47:25 · 12658 阅读 · 0 评论 -
Qt界面程序异常退出的原因
1、使用了没有初始化的指针:QTableWidgetItem *item;qDebug()<<item->text();2、指针初始化了一个不存在的项:QTableWidgetItem *item;int m,n;由于m和n没有进行初始化,是一个很大的值,item(m,n)是一个不存在的项,所以也会异常退出。item = ui->tableWidget->item(m,n);qDebug()<<item->text();...原创 2020-08-04 11:26:22 · 3431 阅读 · 0 评论