Qt
终于要学QT了,Happy.
赛马丸子
这个作者很懒,什么都没留下…
展开
-
QT&VTK(三) 如何对.vtk文件中的数据进行二次操作
有时候即使获取了所有属性,我们仍无法满足我们的需求,比如对于矢量数据,我们有时候也需要将其中的X,Y,Z值,以及模值读出或者算出进行scalar形式的显示。这里的算法思路大概就是新实例化一个属性类,然后将原属性的值,一一计算后重新赋给新属性实例,然后再显示。以下是显示矢量模值,X,Y,Z等分量的代码,张量同理vtkIdType numPoints=yMeshPoints->GetNumberOfPoints();vtkSmartPointer<vtkFloatArray> tempD原创 2021-06-13 21:56:30 · 327 阅读 · 0 评论 -
QT&VTK学习(一)QT配置VTK
1. 建议直接下载已经编译好的vtk 包(1)VTK 编译的debug版本的dll和lib文件,文件名的后缀会带_d,如QVTKWidgetPlugin_d.lib表示debug版本的lib文件; release版本的什么都没有。2. 具体配置1. 在pro文件里写好包含的头文件,头文件的来源既有编译好的Build文件夹下的,也有VTK包下的,我的配置如下CONFIG+=win32:LIBS += $$quote(D:\VTK\lib_debug\QVTKWidgetPlugin_d.lib)w原创 2021-06-11 22:04:54 · 4246 阅读 · 1 评论 -
Qt 正则表达式学习
正则表达式的基础语法看上一篇教程,或者搜菜鸟教程,讲的很详细,这里只补充在Qt里的应用正则表达式在Qt中的应用场景功能简介验证测试字符串是否定义的符合规范搜索强大精准的搜索查找和替换查找指定字符替换为另一指定字符字符串分割识别在哪里进行字符串分割补充语法表达式含义\d匹配一个数字\D匹配一个非数字\s匹配一个空白字符\S匹配一个非空白字符\w匹配字母数字下划线\W匹配非..原创 2020-10-31 17:59:16 · 441 阅读 · 0 评论 -
正则表达式初级学习
1. 普通字符[ABC]: 匹配所有 A,B, C 三个字符。[^ABC]:除了A,B,C 三个以外的所有字符[A-Z][a-z]:所有大写字符, 小写字符[0-9]:所有数字[\s]:\s匹配所有空白符,包括空格,制表符,换页符,等价于[\f\n\r\t\v];[\S]: 所有非空白符,包括换行,等价于 [^\f\n\r\t\v];[\w]:匹配字母,数字,下划线[A-Za-z)0-9_]2. 非打印字符\f 换页符\n\r 回车符\t 制表符\v 垂直制表符\cx 匹配原创 2020-10-31 16:55:07 · 563 阅读 · 0 评论 -
Qt里与dll通信时的错误
报错: C++ 出现异常“… \debug_heap.cpp Line:980 Expression:__acrt_first_block==header"2、原因是dll参数使用了std:string类型,全部替换成char* 或者使用&不再报错。3、最终还是不要在dll接口处使用STL,尽量使用标准数据类型,要不然在某些情况下还是会报这个错误。...转载 2020-10-22 17:32:47 · 305 阅读 · 0 评论 -
VS生成dll,Qt调用dll的方法
VS生成dll在需要导出给外部调用的函数或者类前面加关键字__declspec(dllexport);在属性页面将configuration type设置为dll;Linker 页面将生成文件 myProgram.exe 改为 myProgram.dllrebuild 即可在Output处显示xx succeed, 0 failed 即可Qt调用dll的方法把dll复制到.exe所在目录;把lib复制到一个自己定义的目录;把.h文件复制到一个自己定义的目原创 2020-10-22 17:28:14 · 1825 阅读 · 0 评论 -
Qt中VTK调用显示黑框,或者完全不显示的解决办法
source、mapper、actor,renderer等步骤操作和VTK 给的案例无差,但是到了renderder步骤不能自定义vtkrenderwindow把renderer加进去,只能是通过界面上的vtkOpenGLWidget,如我的该widget命名为myVtkWidgt,那么下一步显示的操作代码ui->myVtkWidget->GetRenderWindow()->AddRenderer(myRenderer);ui->myVtkWidget->GetRend原创 2020-10-22 17:11:40 · 2932 阅读 · 3 评论 -
Qt工程遇到的错误集锦
一个报错可能有很多因素,仅此整理我的程序造成的错误,共勉报错 “QWidget:: Must construct a QApplication before a QWidget”解决办法:缺失VTK相应的dll“qt,qpa,plugin: could not find the Qt plantform plugin”解决办法:利用windeployqt.exe为debug目录下的.exe配置dll(注:不一定发布软件时采用这个)“vtkUnstructedGrid” can’t原创 2020-10-22 17:01:48 · 525 阅读 · 1 评论 -
Qt三种预防new 变量内存泄漏的方法
1. delete: 没什么好说的2. 设置标志位QLabel *label=new QLabel;label->setAttribute(Qt::WA_DeleteOnClose());3.将其设为QObject的子类//方法一QLabel *label=new QLabel("Hello",this);//方法二QLabel *label=new QLabel();label->setParant(&QWidget);//自己用到的widget类型...原创 2020-10-10 10:40:38 · 680 阅读 · 0 评论 -
QMainWindow手动添加QMenu并且连接槽函数;QComboBox手动添加item并连接槽函数
1. QMenu添加一个菜单栏和一个子项的操作,并且把子项与对应的执行函数进行了信号与槽的连接;//.hprivate slots:void openFile();//.cppQMenu fileMenu=menuBar()->addMenu(tr("&File"));fileMenu->addAction(tr("Open..."),this,&myMainWindow::openFile);...2.QComboBox添加三个下拉框选项,并且每原创 2020-10-10 09:24:20 · 1518 阅读 · 0 评论 -
Qt智能指针
智能指针介绍https://blog.csdn.net/liyuanbhu/article/details/77825655什么是隐式共享和写时拷贝https://blog.csdn.net/ljianhui/article/details/22895505QT实现之智能指针的单例结构https://blog.csdn.net/zhenguo26/article/details/91447244...原创 2020-09-16 17:26:11 · 180 阅读 · 0 评论 -
Qt用到的pro文件里信息整理
TARGET = xxTEMPLATE = app\...这两个一般一起出现,第一个简单,表示指定生成的应用程度名;第二个有多种情况,默认是app。具体如下:app:建立一个应用程序的makefile,默认值,模板没有被指定,这个将被使用。lib:建立一个库的makefilevcapp:建立一个应用程序的VisuakStudio项目文件vclib:建立一个库的VisualStudio文件subdirs:这是一个特殊模板,可以创建一个能够进入特定目录并且为一个项目文件生成makefil...原创 2020-09-13 17:14:07 · 450 阅读 · 0 评论 -
QT读取exel和容易出bug的注意点
路径不要有中文,即使是你用的默认路径,只要你项目所在的文件夹,从C:开始,一路中所有的子文件中,命名带任何除了英文、下划线、数字之外的字符,QT读取文件都会报错!!sheet的遍历是从1开始的!从1开始的!从1开始的!。不是从0,写0会报错,搞得你云里雾里,具体报的什么错我也忘记了,希望那些也遇到这些错误的人有缘可以看到我这个博客。本文才用的打开一个sheet,一次性将其内容全部读入,而不是单个cell的读入,这样会更省时。.pro文件里添加QT += axcontainerTARGET .原创 2020-08-30 17:26:00 · 799 阅读 · 1 评论 -
QT 一键调好页面格式
Ctrl + ACtrl + iqt 快捷键,自动将页面不规则的代码调整为齐刷刷的格式。原创 2020-08-30 15:58:30 · 487 阅读 · 0 评论 -
QT读写json文件
一、QT写入Json文件需要的头文件#include <QJsonObject>#include <QJsonDocument>#include <QByteArray>#include <QFile>#include <QJsonArray>json 文件里基本有三类:数组、键值对、对象。其中对象内部为一系列的键值对,数组内部比较宽泛,可以是对象,字符串,数字等。具体可参考json文件格式详解分别写入对象,数组,或者键值对原创 2020-08-30 15:57:04 · 10039 阅读 · 5 评论 -
QT18-新建一个QML项目
这节比较水,只是新建了一个工程而已,等进一步学习qml以后,再来进一步补充;原创 2020-08-04 07:58:10 · 309 阅读 · 0 评论 -
QT17 --ListWidget
用到的头文件包括#include <QDebug>#include <QDir>#include <QListWidget>#include <QListWidgetItem>#include <QString>#include <QPushButton>#include <QHBoxLayout>#include <QVBoxLayout>#include <QLineEdit>.原创 2020-08-01 22:32:43 · 254 阅读 · 0 评论 -
QT 基础知识07--必备的快捷键
一、Qtcreator中常用快捷键总结常用F1 查看帮助;F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2 声明和定义之间切换F4 头文件和源文件之间切换Ctrl+I 自动对齐Ctrl+/ 注释行,取消注释行Ctrl+B 编译工程Ctrl+R 运行工程F5 开始调试Shift+F5 停止调试F9 设置和取消断点F10转载 2020-07-11 18:57:52 · 415 阅读 · 0 评论 -
QT 15--获取任何种类文件的某些文件属性:大小、创建时间、上次修改时间等等
1、首先说一些,如果是mainwindow的QT工程,如果打算做自己手写ui 界面的话,该如何将自己写的内容添加到mainwindow界面呢?方法为: 新建一个widget类,然后将所有零件都用布局布置好后,只需将总布局添加到widet,然后令this->setCentralWidget(widget)即可此次的Ui 界面就是自己写的,然后效果图是下面那个鬼样子//需要的头文件#include <QLineEdit>#include <QPushButton>原创 2020-07-20 23:16:18 · 2657 阅读 · 0 评论 -
QT 14--程序关闭的提示
对于很多程序在点击关闭按钮后都会提示各种各样的信息,设置方法如下,不需要connect连接任何事件都要写在protected 里,以方便继承://头文件里定义#include <QCloseEvent>protected:void colse(QCloseEvent* event);//mainwindow.cpp文件void MainWindow::close(QCloseEvent* event){ if(ui->textEdit->document(.原创 2020-07-18 16:07:53 · 369 阅读 · 0 评论 -
Qt 13--实现程序启动画面设置
在main.cpp中#include <QPixmap>#include <QSplashScreen>int main(int argc,char* argv[]){QApplication app(argc,argv);QPixmap pixmap("screen.png");QSplashScreen splash(pixmap);splash.show();for(int i=0;i<800000000,i++){}//假设后台在做一些预处理工作Ma原创 2020-07-18 12:09:56 · 210 阅读 · 0 评论 -
QTreeWidget 用法整理& 信号与槽设置
1. 添加根节点以及子节点继承关系为:1#工厂—1#车间—1#产线—1#工位、2#工位除了一级item在定义之时,就确定了是在文件treeWidget里;其他的二级,三级ite等,通过一级item的->addchild()操作来进行继承。void frmMain::fucInitGbxTreeBar(){ ui->treeWidget->setColumnCount(1); //设置列数 ui->treeWidget->setHeaderLabel(转载 2020-07-17 22:32:08 · 5658 阅读 · 2 评论 -
QT :-1: error: fatal error: no input files
网上有很多其他的原因,我这里提供我的出错的原因。build directory 这里我出现了中文路径,并且这个定位是我上个项目的位置,我修改为目前这个项目的位置后,且不存在中文路径了,就好了。QT里面不能出现任何中文路径!! 我前面也有过一次因为命名为中文导致程序报错。...原创 2020-07-17 11:14:11 · 1367 阅读 · 1 评论 -
QT初级学习12--设置程序发布图标、打开指定的浏览器页面、播放动画
一、设置程序图标超级简单。第一步找一个自己想设置为图标的.ico后缀的文件,并将其放在工程目录;第二步,在xx.pro文件末尾加入RC_ICONS = yourImageName.ico;重新编译后即可。二、打开指定浏览器页面要求点击某action后,程序自动调用浏览器并打开一个指定页面。如:help(帮助)文档,这里以打开www.baidu.com为例加入我们想要点击openButton就跳到百度首页。//mainwindow.h 文件中#include <QUrl>原创 2020-07-15 10:36:22 · 366 阅读 · 0 评论 -
QT学习11--设置输入用户名和密码; 给action设置图标
一、ui界面上用QLabel、line Edit、pushButton、horizontal spacer等部件进行如上布局mainwindow.h文件中添加如下代码#include <QDebug>#include <QMessageBox>void logInSlot();mainwindow.cpp中添加如下代码//构造函数里QObject::connect(ui->login,SIGNAL(clicked()),this,SLOT(log原创 2020-07-14 23:22:49 · 1392 阅读 · 0 评论 -
QT笔记10--匹配大小写、QStringList遍历
一、区分大小写,转载此博客区分大小写:int num=QString(“aAaa”).indexOf(‘A’, 0, Qt::CaseSensitive);不区分大小写:int num=QString(“aAaa”).indexOf(‘A’, 0, Qt::CaseInsensitive); QString str1("AaaaA"); QString str2("aaaAA"); //区分大小写 Qt::CaseSensitivity cs = Qt::CaseSe转载 2020-07-14 18:44:20 · 6793 阅读 · 0 评论 -
Qt案例学习09-改变字体大小,字体颜色,追加当前日期
效果图贴上代码//需要额外加的头文件//改变颜色和字体,获取时间#include<QFont>#include<QFontDialog>#include<QColor>#include<QColorDialog>#include<QDateTime>//构造函数里的信号与槽QObject::connect(ui->dateAction,SIGNAL(triggered()),this,SLOT(dateTimeSlot原创 2020-07-13 09:01:15 · 582 阅读 · 0 评论 -
QT案例学习08--打开txt文件(open),保存(save),退出(exit),另存为(saveAs)等操作
在ui界面里,右侧文件树,将部件的名字改为各自的对应操作名称,如saveAction,openAction,saveAsAction,exitAction等,方便编程.文件中定义了一个全局变量QfileName,用于保存文件名,在save 和saveAs操作时,如果QfileName已经有值,则save时不需要新建文件,否则后台需要新建一个文件,并命名为QfileName的内容。//MainWindow.cpp#include "mainwindow.h"#include "ui_mainwin.原创 2020-07-11 21:30:10 · 1533 阅读 · 1 评论 -
Qt案例学习06--简易记事本
效果图大概这个鬼样子mainwindow 的Type Here用来加新选项,编辑完成后要按enter;Add seperator是加分隔符,如上图New file下面的那一横;ui设计好后,build一下,可以更新一下代码,如果没有build,在cpp里编辑时有可能找不到ui里的部件;进入mainwindow.h,加入如下需要的代码#include <QDebug> //待会调试用的到,新技能get.private slots://加信号相应函数 void callActio原创 2020-07-04 08:36:11 · 338 阅读 · 0 评论 -
Qt案例学习05-四则运算实现
首先新建mainwindow项目,打开.ui文件,设置好如下界面。其中选项卡为coboBox部件,可以下拉选择‘+’、‘-’、‘*’、‘/’;从左到右三个lineEdit部件依次被Chang objectName..为firstLineEdit、secondLineEdit、resultLineEdit.;将pushButton也Change objectName...为callButton;进入mainwindow.h,加入如下两个稍后会用到的头文件和函数声明#include <QCom.原创 2020-07-03 13:41:09 · 561 阅读 · 0 评论 -
Qt理论学习04- 手动写一个窗口
5-2 手工布局类名的命名除Q外开头首字母大写;函数命名,开头首字母小写;单个部件有setText()函数为设置部件表面文字;布局HBoxLayout、VBoxLayout可以添加窗口部件,也可以添加子布局xxLayout->addWidget(B);xxLayout->addLayout(C);主窗口QWidget有设置总体布局函数setLayout();还有添加命名函数setWindowTitle();显示主窗口函数show();示例代码如下:#include &原创 2020-07-02 20:26:45 · 288 阅读 · 0 评论 -
Qt案例学习03-启动额外程序,如txt(notepad)
新建mainwindow 项目在ui中添加lineEdit 和 pushButton 部件,设为垂直布局;修改pushButton 名字为打开后,右键go to slot,选择clicked(), 进入on_pushButton_clicked函数加入如下代码#include <QProcess>//头文件...void MainWindow::on_pushButton_clicked(){ QProcess *process = new QProcess;// 调用外部..原创 2020-07-02 17:39:44 · 474 阅读 · 0 评论 -
Qt 案例学习02-对话框
案例知识点:利用horizontal spacer可以在layout布局之后,调节按钮的位置;利用主页上角的Edit Tab Order,可以控制界面打开鼠标默认优先在的位置。原创 2020-06-28 17:08:24 · 169 阅读 · 0 评论 -
Qt案例学习-01-mainwindow点击弹出文本对话框
新建mainwindow工程打开mainwindow.ui,点击编辑页面的左上角Type Here,重命名为File,摁enter键后,鼠标点击其所属的Type Here,然后重命名为New WIndow,摁 enter 键后,主界面下方出现了一行新内容返回edit页面,在Forms文件夹,右键Add new..., 依次选择Qt-Qt Designer Form- ->choose->Dialog without buttons->next->next…;将自己添加的di..原创 2020-06-28 13:24:20 · 1400 阅读 · 6 评论