QT笔记
柴_笔记
软甲开发用到什么总结什么,想到什么写什么
展开
-
qt在QImage上绘制线框/十字标
【代码】qt在QImage上绘制线框/十字标。原创 2023-12-09 15:27:20 · 612 阅读 · 0 评论 -
获取磁盘信息
#include<Windows.h>//获取指定文件夹的磁盘容量QStringdir="C:/gscc";LPCWSTRstrDriver=(LPCWSTR)dir.utf16();ULARGE_INTEGER freeDiskSpaceAvailable,totalDiskSpace,totalFreeDiskSpace;GetD...原创 2019-12-08 22:13:41 · 372 阅读 · 0 评论 -
QProcess
QProcessprocess;process.start("tasklist");//遍历应用程序列表if(process.waitForFinished()){QByteArrayresult=process.readAllStandardOutput();QStringPidStr=QString::fromL...原创 2019-12-08 22:10:49 · 351 阅读 · 0 评论 -
Qt不规则窗口
QPixmappic("D:/untitled/image/pic.png");ui->pushButton->setMask(QBitmap(pic.mask()));关键是setMask这个函数,和一个遮挡图片,该功能中pic图片的非透明部分区域会将ui->pushButton遮挡住;...原创 2019-11-28 23:53:13 · 152 阅读 · 0 评论 -
Qt布局
在Qt中除了用Layouts进行布局外,控件本身的布局策略也是关键的一点SizeHint是布局管理中的控件默认尺寸,如果控件不在布局管理中就是无效的值;//水平策略/垂直策略enum Policy {Fixed//控件不能放大或缩小,控件大小就是它的sizeHintMinimum//如果已经是最小,不能再被缩小,但能放大Maximum//如果...原创 2019-11-28 23:50:43 · 409 阅读 · 0 评论 -
Qt拖放
Qt拖放的操作基本上可以分为三部分:获取记录需要的数据(QMimeData),拖动操作(Drag),放下操作(Drop);QMimeData:多媒体数据类,拖放事件通过该对象传递数据,支持:文本,html数据,合法路径,图片,颜色等;Drag:拖放是用户在程序中复制或移动数据的一种直观方式,它处理拖放操作的大部分细节QDropEvent:提供一个拖放操作完成时触发的事...原创 2019-11-28 23:51:01 · 480 阅读 · 0 评论 -
QToolTip样式表
当我们把鼠标放到QLabel,QPushButton等控件上面时,会出现提示语,这个提示语就是QToolTip;想要出现提示语需要调用对应控件的setToolTip函数;QToolTip的样式设置和QLabel保持一致;但QToolTip无法做到背景透明,也无法改变形状,如果设置背景为transparent透明时,默认会添加黑色背景;设置圆角半径时,改变的只是内部的圆角半径;QT...原创 2019-11-27 22:50:44 · 3445 阅读 · 0 评论 -
QMessageBox
//关于消息对话框QMessageBox::about(0,"标题文本","内容文本");//错误消息对话框inta=QMessageBox::critical(0,"标题文本","内容文本",QMessageBox::YesToAll|QMessageBox::Save);if(a==QMessageBox::...原创 2019-11-27 22:47:04 · 852 阅读 · 0 评论 -
QFileInfo
qDebug()<<QApplication::applicationDirPath();QFileInfofileInfo(QApplication::applicationDirPath()+"/default.qss");if(!fileInfo.exists())//判断文件是否存在{qDebug()<<...原创 2019-11-27 22:43:49 · 226 阅读 · 0 评论 -
判断Qstring中是否有中文
QTextCodec * codec = QTextCodec::codecForName("GBK");QTextCodec::setCodecForTr(codec);QTextCodec::setCodecForLocale(codec);QTextCodec::setCodecForCStrings(codec);QString strCh=QString("D:/QT软件...原创 2019-11-17 12:53:17 · 746 阅读 · 0 评论 -
QProcess软件启动控制
限制软件只能启动一次: QSharedMemory mem("untitled");写在main函数里: if(!mem.create(1)) QMessageBox::about(0,"启动失败","An instance is running"); return 0;//不可少启动外部软件: (1)QProcess*p=new QPr...原创 2019-11-17 12:53:25 · 454 阅读 · 0 评论 -
判断Qstring是不是IP格式
QHostAddress _Address;//借助QHostAddress判断输入的内容的格式是不是IP bool _isAddr= _Address.setAddress(dlg.textValue().trimmed()); //timmed是去掉空格原创 2019-11-17 12:53:38 · 3168 阅读 · 0 评论 -
Qt软件启动画面
QPixmap pixmap(":/image/splash.png"); QSplashScreen splash(pixmap);splash.setDisabled(true);//使启动界面不会点击关闭splash.showMessage(QObject::tr("Version: 3.0"),Qt::AlignRight|Qt::AlignJustify,Qt::dar...原创 2019-11-17 12:53:48 · 616 阅读 · 0 评论 -
QInputDialog
QInputDialog *d=new QInputDialog;d->setWindowTitle("输入框的标题显示内容");qDebug()<<d->textValue("点OK,获取输入的内容");d->setLabelText("输入内容标题提示");...原创 2019-11-17 12:53:54 · 319 阅读 · 0 评论 -
QFileInfo查看文件信息(待完善)
QFileInfo info(fileName);QMessageBox::about(0,"",QString::number( info.size()));//文件大小,单位B原创 2019-11-14 23:00:19 · 144 阅读 · 0 评论 -
用控制台窗口输出QT的调试信息
#include <Windows.h> AllocConsole() 在main函数中加freopen("CONOUT$","w",stdout); 在main函数中加printf("fdsafds")之后所有的printf的内容都会到控制台窗口中输出,#define qDebug printf或者利用重命名,就可以将所有debu...原创 2019-11-14 22:58:36 · 1454 阅读 · 0 评论 -
Qt隐藏警告信息和debug信息
在pro文件中添加代码DEFINES+=QT_NO_WARNING_OUTPUT \ QT_NO_DEBUG_OUTPUT原创 2019-11-14 22:55:14 · 322 阅读 · 0 评论 -
QTableView
QTableView*View=newQTableView;//控制表格样式显示model=newQStandardItemModel;//控制表格内容显示model->setColumnCount(2);//列数model->setRowCount(2);//行数//标题部分的内容显示,mode...原创 2019-11-14 22:39:58 · 1600 阅读 · 2 评论 -
Qt调用颜色选择窗口
QColorDialog::getColor返回值是QColor类型;原创 2019-09-29 16:41:24 · 1092 阅读 · 0 评论 -
QT窗口设置
setFixedSize(x,y);设置窗口大小,设置后不可改变,拉伸窗口位置是默认可以拖动位置,拉伸改变大小的setWindowFlags(QT::FramelessWindowHint);铺满,不可移动setAutoFillBackground(true);QIcon ico(str+"hie.png");setWindowIcon(ico);//设置窗口标题上图片setWindowTitle...原创 2018-05-23 17:50:22 · 988 阅读 · 0 评论 -
路径问题:绝对路径和相对路径
#include<QCoreApplication>//使用相对路径需要包含头文件 QString str; 绝对路径:str=“F:\5.7\projectt\untitled\pic.png”;相对路径:找到exe所在的位置,以exe所在位置为基础来查找目标文件的路径 str=QCoreApplication::applicationDirPath();//.exe执行文件所在的...原创 2018-05-14 09:47:05 · 524 阅读 · 0 评论 -
Qt提升窗口部件功能
因为:为了在UI设计师界面里,使用自定义控件,基本使用方式是,自定义控件只能在代码里通过new对象的方式来显示,无法像Qt设计师界面自带的控件一样拖拽搞定;所以:提升的功能就是为了让自定义的控件用到界面上;用法:自己写个控件,比如继承自QWidget的一个MyWidget界面类,你可以使用各种花式处理这个界面的样式,然后在主界面中拖出来一个QWidet控件提升为MyWidget,这时,就可...原创 2019-09-29 16:30:53 · 6688 阅读 · 0 评论 -
QT信号槽第五个参数
connect用于连接qt的信号和槽,在qt编程过程中不可或缺。它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置。Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnec...翻译 2019-07-20 20:34:42 · 3369 阅读 · 0 评论 -
定时器:Qtime
#include<QTimer>QTimer*ptime=new QTimer();//不传参数connect(ptime,SIGNAL(timeout()),this,SLOT(槽函数));ptime->start(100);//开ptime->stop();//停个人理解为倒计时器,start为开始倒计时(参数为时长),stop为停止倒计时。timeout()信号为倒计...原创 2018-05-08 10:28:10 · 1950 阅读 · 0 评论 -
拖拽:drag drop
#include<QDropEvent>拖拽功能跟鼠标点击时间很类似,但是多了数据拷贝,功能许可的要求;实现拖拽功能时,基本用到的重写函数为:根据控件要求选择性重写函数 void mousePressEvent(QMouseEvent *event);//鼠标点击时触发 void dragEnterEvent(QDragEnterEvent *event);//拖进目标控件时触发 ...原创 2018-05-21 14:40:36 · 802 阅读 · 0 评论 -
控件栈:QListWidget
#include<QListWidget>#include<QListWidgetItem>此处是以自己定义的QWidget类为QListWidget的部件为基础实现,这样的好处是每个组件(cell)的组成,比如图片,按钮等等都可以自由的加入,不局限于单属性的部件,QListWidget的实现效果如下图:一、注意:QListWidget和QListWidgetItem成对出...原创 2018-05-14 16:48:19 · 352 阅读 · 0 评论 -
XML写入,半成品
QFile file("F:/5.7/projectt/WorkTest/config.xml");//指定xml文件file.open(QFile::WriteOnly | QFile::Text);//打开xml文件 QXmlStreamWriter stream(&file); stream.setAutoFormatting(true);//自动设置格式,这样会自动换行和添加缩进 ...转载 2018-05-07 15:45:16 · 192 阅读 · 0 评论 -
鼠标事件:QMouseEvent
#include<QMouseEvent>鼠标无论是点击,移动,双击,松开都由鼠标的左右键区别而有区别,所以,严谨的来使用就是如mousePressEvent一样来通过按下的键来区别对待,从而达成不同的需求;void MainView::mousePressEvent(QMouseEvent *e){ if(e->button()==Qt::RightButton)//鼠...原创 2018-05-14 10:24:35 · 9819 阅读 · 0 评论 -
标签:QLabel
#include<QLabel>QLabel就像一个空节点(万金油),具体它是什么类型,由自己给定,比如:文字,图片,动画;(超链接没用过)暂时不考虑文字内容为汉字时,setWordWrap设置换行,当文字长度超出this节点的宽度后自动换行QLabel*pLabel=new QLabel(this);pLabel->setWordWrap(true);//自动换行pLabel-...原创 2018-05-18 14:53:47 · 1888 阅读 · 0 评论 -
输入框:QLineEdit
#include<QLineEdit>QLineEdit*p=new QLineEdit(this);p->resize(widht,height);//大小p->move(x,y);//位置p->setStylesheet( "border-image:url("+str+".png);"背景图片 ...原创 2018-05-11 15:46:32 · 1007 阅读 · 0 评论 -
信号与槽
信号:就是一个返回值为void的函数(方法),signals为声明信号的关键字,就好像普通函数需要public、private等修饰一样在.h文件中: signals: void sig(); 此为申明sig()函数为一个信号,发送信号需要在需要的地方 emit sig(); 此为发送信号,类似普通按钮的点击操作, ...原创 2018-05-05 00:13:47 · 147 阅读 · 0 评论 -
QT DOC方式读取XML文件
#include<QtXml/QDomDocument> #include<QFile> <X>内容</X> xml文件内容是以此为块来区分; x为标签(键),对应QMap的键,内容为值;一个xml的根节点是文件内的第一个<x></x>,其内部<x></x>的都是他的子原创 2018-05-04 16:52:57 · 1077 阅读 · 0 评论 -
进度条:Progressbar
#include<QProgressbar.h>//实现的是一种指定颜色的进度条,不是指定图片的;QProgressbar*p=new QProgressbar(this);//this为进度条的父节点p->setGeometry(0,0,0,0);//参数分别对应进度条的位置X,位置Y,进度条的长度width,高度height;p->setRange(0,100);//参...原创 2018-05-08 10:52:51 · 646 阅读 · 0 评论 -
弹窗,标准对话框:QMessageBox
一、更改图片的;QMessageBox p(QMessageBox::NoIcon,"biao","wen");QPixmap pix("F:/Qt/project/build-Test-Desktop_Qt_5_7_1_MinGW_32bit-Debug/debug/test.png");p.setIconPixmap(pix);p.exec();二、不改图片的QMessageBox* p=ne...原创 2018-05-21 15:44:46 · 1110 阅读 · 0 评论 -
QT国际化语言
这个功能基本上是为了做外语项目;功能实现有前提:所有需要翻译的语句都需要是QObject::tr("ss")中的字符串1.在pro文件中加:TRANSLATIONS=XXX.ts2. 依次点击编译器选项:工具--外部--Qt语言家--更新翻译(这时 会在文件位置生成一个后缀位ts的文件)3.然后用安装QT时自带的工具《linguist》打开.ts文件;4.根据提示选择好语...原创 2019-07-01 23:45:19 · 185 阅读 · 0 评论 -
Qt随机数
#include<QTime> //包含头文件qrand()随机数的核心函数qrand()%30:产生随机数,一模算来处理,该例子产生的是0-29的随机数;如果需要产生负数的随机数,可以在qrand()%30的基础上加一个负数,来实现-?到+?例: 产生-45到45的随机数:n=-45+qrand()%90;换个思路就是qrand()%30通过产生的...原创 2019-06-04 20:06:49 · 2673 阅读 · 0 评论 -
Qt打包程序
第一步:构建并执行Qt项目,debug和release模式中选择release模式,会在指定目录生成该项目的exe文件 例如:D:\QtProject\build-untitled-Desktop_Qt_5_7_1_MinGW_32bit-Release\release第二步:新建一个文件夹例:pro(位置无所谓,文件名英文),第三步:将release文件夹中的.exe可执...转载 2019-06-03 22:49:26 · 1291 阅读 · 0 评论 -
字体:QFont
#include<QFont>字体类,通过设置QFont的类型,来实现批量改变文字的属性;此处以QLineEdit输入框为例实现部分QFont的用法;QFont font;//实例化QFont对象//font.setFamily("微软雅黑");//字体//font.setPixelSize(25);//文字像素大小//font.setPointSize(20);//文字大小//fon...原创 2018-06-04 15:38:23 · 15493 阅读 · 0 评论 -
用VS开发QT的注意事项
一、准备工作:记录QT的安装目录:F:\Qt5.10.1\5.10.1\msvc2015_64;网上下载QtPackage 点击打开链接 下载完直接安装,没有注意事项;安装VS,按照直接的需求下一步就可以,没有注意事项;二、运行VS时会发现比平时多了点东西,点击QT5,选择Qt Options,会弹出这个窗口,点击Add,Name选项可以照抄图片上的写,Path里写准备好的Qt安装目录,然后 点击...原创 2018-05-16 15:35:06 · 10857 阅读 · 0 评论 -
多线程:继承QObject
QTimer timer; QThread thread; View pView;pView.moveToThread(&thread);thread.start(); timer.start(1000); QObject::connect(&timer, SIGNAL(timeout()), &pView, SLOT(onTimeout...原创 2018-05-15 16:18:48 · 2285 阅读 · 0 评论