Qt中实用功能小合集

黑马QT教程笔记合集 QT教程视频地址:未更新完~ 阅读详情

就介绍无ui界面时的调用方法。

一、主界面___this

·背景颜色

	setPalette(QColor("pink"));

·背景图片

    QPalette  palette = this->palette();
    palette.setBrush(QPalette::Background,QBrush(QPixmap("/Users/yucheng/allpic/back.png")));
    setPalette(palette);

·窗口设置固定大小

    setFixedSize(400,300);

·窗口设置全屏

    showFullScreen();

·设置不显示标题栏

    setWindowFlag(Qt::FramelessWindowHint);

·设置整个界面半透明

	setWindowOpacity(0.5);

·窗体标题栏不透明,背景透明

	setWindowOpacity(0.5);

二、按钮___QPushButton

·鼠标接触组件的光标变化

    button->setCursor(Qt::BusyCursor);
光标类型解释
ArrowCursor箭头,默认
IBeamCursor输入光标
PointingHandCursor点击手势
以上是常用光标~~~~~~~~~~~~
UpArrowCursor上箭头
CrossCursor十字准心
WaitCursor等待符号
SizeVerCursor上下扩或/缩小窗口
SizeHorCursor左右扩展或缩小窗口
SizeBDiagCursor/ 方向扩展或缩小窗口
SizeFDiagCursor\ 方向扩展或缩小窗口
SizeAllCursor所有方向扩展或缩小窗口
BlankCursor隐藏光标
SplitVCursor上下方向移动内部窗口
SplitHCursor左右方向移动内部窗口
ForbiddenCursor禁止点击手势
WhatsThisCursor疑问光标
BusyCursor忙碌光标
OpenHandCursor张开手势
ClosedHandCursor握紧手势
DragCopyCursor拖动复制光标
DragMoveCursor拖动移动光标
DragLinkCursor拖动连接光标
BitmapCursor = 24
CustomCursor = 25

·文件选择框ui

QString filename = QFileDialog::getOpenFileName(this,"Open File", "","", 0);

源码:

QString getOpenFileName ( 
	QWidget * parent = 0, 
	const QString & caption = QString(), 
	const QString & dir = QString(), 
	const QString & filter = QString(), 
	QString * selectedFilter = 0, 
	Options options = 0 );

默认打开位置(主页)和文件过滤(txt, pdf)

(这里我用了pyside的方法)

	fileDialog = QtWidgets.QFileDialog()
	path = fileDialog.getOpenFileName(dir='/Users/yucheng', filter='(*.txt *.pdf)')

三、标签QLabel

·设置自动大小

    label->adjustSize();

四、文本输入框___QLineEdit、QTextEdit

·只允许输入数字或字符

参考博客:https://blog.youkuaiyun.com/qq_35040828/article/details/53587157

方法一

这是网上的一个方法,我试过,但是不知道为什么不能用,先放着。

	line = new QLineEdit(this);

    QIntValidator Int(10,99,this);		//只能输入10-99的整数
    line->setValidator(&Int);
方法二

这是正则表达式的用法:

先上代码:

	QRegExp reg("^(-?\\d+)(\\.\\d+)?$");

    QRegExpValidator * regV = new QRegExpValidator(reg,this);
    line->setValidator(regV);

^ 是起始部分;
-?是“-”可有可无;
\d 是数字,相当于[0-9];
+是后面有大于等于1个\d,\d+是一个整体;
\.是小数点;
(···)?是(···)部分可有可无;
$ 是末端部分;

但是在Qt中使用正则用的是字符串形式,所以对转义字符,我们需要内部将“\”转义,所以就出现了程序中的\\d,\\.形式。

这段的意思是只有(起始输入“-”或者不输入,后面加上若干数字,最后可以加上带有“.”及后面的数字)有效输入,也就是所有数字集合。

对于正则表达式的使用,可以自行了解。本文不予过多解释。

常用正则表达式输入说明
“^(-?\d+)(\.\d+)?$”double
“^(\d+)(\.\d+)?$”unsigned double
“^-?\d+$”int
“^\d+$”unsigned int
“^([a-z]|[A-Z])+$”英文输入,大小写随意
“^[A-Z]+$”英文只能大写
“^[a-z]+$”英文只能小写
“^[A-Z]([A-Z]|[a-z])+$”第一个英文必须是大写

·QTextEdit设置透明

//这里我用的pyside2,思路是一样的
		pl = QtGui.QPalette()
        brush = QtGui.QBrush()
        brush.setColor(self.color)
        pl.setBrush(QtGui.QPalette.Base, brush)
        self.textEdit.setPalette(pl)

·QLineEdit不同形式输入,密码、隐藏···

    line->setEchoMode(QLineEdit::Normal);
代码解释
Normal默认,无特殊
NoEcho不显示输入
Password输入密码
PasswordEchoOnEdit输入时显示,结束输入时转换成密码

·从上、下、左、右开始输入

    line->setAlignment(Qt::AlignRight);
代码解释
AlignTop顶部
AlignBottom底部
AlignLeft / AlignLeading左边居中,默认
AlignRight / AlignTrailing右边居中
AlignHCenter水平方向居中
AlignJustify(和AlignLeft效果相同)
AlignAbsolute同上
AlignVCenter竖直方向居中
AlignBaseline左边居中
AlignHorizontal_MaskAlignLeft / AlignRight / AlignHCenter / AlignJustify / AlignAbsolute
AlignVertical_MaskAlignTop / AlignBottom / AlignVCenter / AlignBaseline
AlignCenterAlignVCenter / AlignHCenter

·设置不可编辑

    line->setReadOnly(true);

·嵌入图形

    QAction *act = new QAction;
    act->setIcon(QIcon("/Users/yucheng/allpic/quit.png"));
    line->addAction(act,QLineEdit::TrailingPosition);
    //尾端嵌入
    //line->addAction(act,QLineEdit::LeadingPosition);
    //首端嵌入

·设置占位字符 / 提示文本显示

当有文本输入时自动消失。

    line->setPlaceholderText("there is a lucky dog");

·自动补全功能

如输入一些关键字,下拉框自动显示要补全的内容。

这块设计到另外两个类,一个是QCompleter,此类常用于下拉框的显示。
一个是QStandardItemModel,这是制作和表格相关的类。

一共分三步:

1、定义原型
    model = new QStandardItemModel(0,1,this);			//建立一个0行1列的表格模型
    QCompleter * com = new QCompleter(model,this);		//将下拉框建立在表格基础上
    line->setCompleter(com);							//申明下拉框
2、设置下拉框属性
//构造函数
{
    connect(line,&QLineEdit::textChanged,this,&Widget::LineChanged);	//当前文本改变时调用槽函数
}

//槽函数
void Widget::LineChanged()
{
    QStringList list;
    list << "@@@" << "!!!" << "###" << "$$$" << "%%%" << "^^^";		//定义一个list
    model->removeRows(0,model->rowCount());		//将model内全部删除,否则会一直添加。不可用clear函数!
    for(int i = 0 ; i < list.size(); i++)		//循环n次
    {
        model->insertRow(0);					//在第0行插入
        model->setData(model->index(0,0),line->text()+list.at(i));		//设置第0行数据
    }
}

此时输入时效果:

当然砸实际操作中会有一些问题,比如说选中之后会再次弹出,因为触发了textChanged信号;此时你需要判断是否已经输入预期值,并且不在提示。
最简单的方法是判断是否已有list中内容。

    QStringList list;
    list << "@@@" << "!!!" << "###" << "$$$" << "%%%" << "^^^";
    for(int i = 0 ; i < list.size(); i++)
        if(line->text().contains(list.at(i)))
        	return;

五、动态加载页面(pyside)

from PySide2 import QtWidgets, QtGui, QtCore
import sys

class LoadUI:
    def __init__(self, path, message='', w=240, h=200):
        _desk = QtWidgets.QDesktopWidget()
        self.W, self.H, self.w, self.h = _desk.width(), _desk.height(), w, h
        self.x = (self.W-self.w)/2
        self.y = (self.H-self.h-100)/2

        self.widget = QtWidgets.QWidget()
        self.widget.setGeometry(self.x, self.y, self.w, self.h+50)
        self.widget.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.widget.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.widget.show()

        self.label = QtWidgets.QLabel(self.widget)
        self.label.setGeometry(0,0,self.w,self.h)
        self.movie = QtGui.QMovie(path)
        self.label.setMovie(self.movie)
        self.label.show()
        self.movie.setSpeed(100)
        self.movie.start()
        self.movie.stateChanged.connect(self._restart) # 默认动画只播放一遍,采用信号机制重复播放


        self.label = QtWidgets.QLabel(self.widget)
        self.label.setText(message)
        self.label.setGeometry(10,self.h-30,self.w,30)
        self.label.show()

    def finish(self):
        self.widget.close()

    def _restart(self):
        self.movie.start()


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)

    mainw = LoadUI('./src/gif/load.gif', '加载中,请稍等...')
    # for i in range(5):
    #     print(mainw.movie.loopCount())
    #     time.sleep(1)
    sys.exit(app.exec_())

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如果还有一些常用的方法没有涉及的,欢迎评论补充!

qt代码格式化设置,统一代码风格 在开发过程中为了使每个人的开发代码结构保持一致,我们通常会有一些约定,代码的格式化。QtCreator开发工具有一个很好的插件工具可以使得每个开发者的代码风格保持一致。我们来看看如何配置吧! 阅读详情

相关推荐

Qt 基础教程合集

Qt是一个令人难以置信的全面框架,除了基本特性之外,它还包含了许多其他特性,旨在为您提供真正的专业开发体验。目前最常用的图形界面开发工具之一是Electron。Electron是一个开源的框架,它允许开发者使用Web技术(HTML、CSS和JavaScript)来构建跨平台的桌面应用程序。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 520

Qt 框架功能概述

头文件包含 Qt 框架中的一些全局定义,包括基本数据类型、函数和宏。一般的 Qt 类的头文件都会包含这个头文件,所以用户程序中无须包含这个头文件就可以使用其中的定义。中定义的数据类型Qt 数据类型POSIX 标准等效定义字节数qint81qint162qint32signed int4qint648qlonglong8quint81quint162quint324quint648quint648uchar1。

pxxzhk的博客 2316

QT - QT开发进阶合集

本文介绍了QT框架的基础知识和核心功能,主要面向已有C++基础的学习者。内容涵盖信号与槽机制(包括参数详解和连接类型)、7类实用控件(ComboBox、LineEdit、TextEdit等)、高级控件TreeView与TreeWidget的实现与区别、布局管理(DockWidget、StackedWidget、Splitter)以及消息框使用。通过具体代码示例(基于QT 6.9.1)演示了模型-视图架构、数据驱动实现方式等核心概念,并比较了View类与Widget类的特性差异。文章强调"一通百通&

阿博的博客 1164

QT介绍与特点

Qt(官方发音 [kju:t],音同 cute)是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。Qt 是纯 C++ 开发的,所以学好 C++ 非常有必要,对于不了解 C++ 的读者,我建议先阅读《C语言教程》,再阅读《C++教程》。C++ 是在C语言的基础上发展起来的,学完C语言就学了 C++ 的一半了。

KK_2018的技术博客_程序员不止是程序员 4448

全面Qt应用项目实战合集

尽管 Qt 提供了丰富的标准控件,但总有特殊需求需要自己造轮子。继承QWidget,重写,就能画出任意图形。比如做个圆形进度条:Q_OBJECTpublic:= val) {update();// 请求重绘signals:protected:private:关键用了Q_PROPERTY,这让属性可以在样式表中绑定:然后在paintEvent里用QPainter绘图:// 背景灰环// 前景蓝弧// Qt单位:1/16度。

weixin_36178216的博客 871

避坑指南:合宙Air780EG阿里云一型一密连接时,为什么你的HmacMD5加密总失败?

本文针对合宙Air780EG模组连接阿里云物联网平台时,HmacMD5签名失败的常见问题提供深度解决方案。详细剖析了签名拼接格式、密钥使用、随机数处理及编码大小写等关键陷阱,并结合STM32嵌入式开发环境,给出了串口调试、分步验证及AT指令链路的实用排错技巧,帮助开发者顺利完成一型一密动态注册。

kiwi8的博客 440

Qt应用开发常用功能

这条语句能够使程序在while等待期间,去处理一下本线程的事件循环,处理事件循环最多100ms必须返回本语句,如果提前处理完毕,则立即返回这条语句。最简单的延时方法就是使用QThread类的sleep(n)、msleep(n)、usleep(n),这几个函数的不良后果就是,GUI会在延时的时间段内失去响应,界面卡死,所以,这三个函数一般只用在非GUI线程中。这样做会存在一个问题,当在死循环的时候,我们的界面是无法刷新,用户是不会响应用户的任何交互的。阻塞的原理就是:在延时期间,本线程的事件循环得不到执行。

houxian1103的博客 923

Matlab实战:从零搭建弹道导弹六自由度仿真模型(附完整代码)

本文详细介绍了如何使用Matlab从零搭建弹道导弹六自由度仿真模型,涵盖仿真环境配置、核心运动方程实现、气动力建模及仿真结果分析。通过完整代码示例,帮助读者掌握弹道导弹六自由度仿真的关键技术,适用于航空航天工程和复杂系统建模领域。

x8y9z0的博客 947

Qt之常用功能代码片段

打开文件 打开指定文件,给到文件路径+文件名即可 QDesktopServices::openUrl(QUrl("url+name")); 弹出提示消息 QMessageBox::information(this,tr("Export data succeed"),tr("data saved in %1").arg(saveFile),tr("OK"));

lxcw_sir的博客 928

告别复杂配置!用GuidosToolbox 3.0做MSPA景观格局分析,从安装到出图全记录

本文详细介绍了如何使用GuidosToolbox 3.0进行MSPA景观格局分析,从安装配置到出图全流程。涵盖环境准备、数据预处理、参数设置、结果解读及可视化技巧,帮助用户快速掌握这一生态安全评估工具。特别针对安装教程中的常见问题提供解决方案,提升分析效率。

weixin_29248313的博客 489

从12摄像头到纯视觉:小鹏AI鹰眼方案如何用LOFIC技术省掉激光雷达?

本文深入解析小鹏汽车AI鹰眼方案如何通过LOFIC技术实现纯视觉自动驾驶,替代传统激光雷达。LOFIC摄像头在动态范围、噪声控制和HDR优化方面表现卓越,结合800万像素双目广角摄像头,达到激光雷达级测距精度。该方案不仅降低成本,还提升系统可靠性和用户体验,展示了纯视觉路线的技术潜力与边界。

t8u9v0w1x的博客 934

【免费下载】 qt5_dll动态链接库合集

qt5_dll动态链接库合集 【下载地址】qt5_dll动态链接库合集 qt5_dll动态链接库合集欢迎使用Qt5_DLL动态链接库合集!本资源专门针对需要运行基于Qt 5框架的应用程序的开发者和用户 项目地址: https://...

gitblog_09730的博客 1007

Win11+VSCode+TeXLive:学术党必备的LaTeX环境配置避坑指南(2024最新版)

本文详细介绍了如何在Windows 11系统下,通过VSCode编辑器与TeXLive发行版配置高效的LaTeX学术写作环境。针对国内用户常见的镜像下载慢、插件配置复杂等问题,提供了优化方案和避坑指南,帮助科研人员和学生快速搭建流畅的学术写作工作流。

plum99的博客 619

Qt学习资料pdf合集:全面提升Qt编程技能

Qt学习资料pdf合集:全面提升Qt编程技能 【下载地址】Qt学习资料pdf合集 这套Qt学习资料PDF合集是专为Qt编程学习者精心准备的资源宝库,涵盖了多本经典书籍和实用图表,包括《C++ GUI Programming with Qt》、《Foundations Of Qt Development》、《Qt5 C++...

gitblog_06734的博客 1085

MiniMax H3 + ComfyUI 工作流搭建指南:从整合包到视频生成

AI视频生成正成为内容创作的新基础设施,而ComfyUI作为可视化工作流引擎,将复杂的模型推理过程拆解为节点与连线,让本地视频生成变得可复用、可批量。理解这一原理后,用户无需编写代码,只需掌握模型加载、提示词控制、采样与解码的基本链路,即可搭建出稳定的视频生产管线。MiniMax H3作为前沿视频生成模型,在ComfyUI中通过权重文件和自定义节点落地,配合整合包可大幅降低环境配置门槛。从硬件评估、目录结构到节点连接与参数调优,本文系统性梳理了从零跑通一条视频生成工作流的完整路径,帮助用户在批量素材生成、风

weixin_29057065的博客 414

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

专注于编程、AI、人工智能等多个领域内容研究和分析 724

【亲测免费】 简化Qt应用部署:Qt5_DLL动态链接库合集推荐

简化Qt应用部署:Qt5_DLL动态链接库合集推荐 【下载地址】qt5_dll动态链接库合集 qt5_dll动态链接库合集欢迎使用Qt5_DLL动态链接库合集!本资源专门针对需要运行基于Qt 5框架的应用程序的开发者和用户 项目地...

gitblog_09721的博客 792

ue 蓝图 c++ websocket 事件回调

ue 蓝图 c++ websocket 事件回调

jacke121的专栏 166

QT5开发及实例png图片合集

QT5开发及实例png图片合集 去发现同类优质开源项目:https://gitcode.com/ 这里是QT5开发及实例png图片的集合,包含了丰富的图片资源,特别适合QT5开发学习使用。 资源描述 此资源文件为「QT5开发及实例png图片合集.rar」,内含大量png图片,是从1G多的文件中精心提取出来的。这些图片非常难找,全网基本只有此处能找到如此完整的单独合集。我们将其单独分出,方便用户学习...

gitblog_06783的博客 389

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2025年最新版:Qt 学习全攻略(附超全资源合集)

这份Qt学习全攻略,专为C++开发者与GUI爱好者打造。它直击学习痛点——资料零散、路径不清晰,并提供系统化的解决方案。文章不仅包含完整的学习路线图,还推荐了一个持续更新的GitHub宝藏仓库,其中涵盖官方文档、视频课程、书籍及实战项目,助你高效入门与进阶。

qq_64978731的博客 2156

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Qt中文帮助手册资源合集:助您快速掌握Qt框架

Qt中文帮助手册资源合集:助您快速掌握Qt框架 【下载地址】Qt中文帮助手册资源合集 Qt中文帮助手册资源合集是专为Qt框架开发者打造的中文文档集合,旨在帮助开发者更高效地掌握Qt语法和特性。对于不擅长阅读英文文档的开发者,这份资料提供了详细的中文解释,尤其适合初学者快速上手。通过使用本合集,开发者可以轻松理解Qt的核心...

gitblog_06709的博客 503

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Qt例子合集:Qt学习者的宝藏资源库

Qt例子合集:Qt学习者的宝藏资源库 【下载地址】Qt例子合集 Qt例子合集是一个专为Qt学习者和开发者打造的综合性资源库,汇集了丰富且实用的编程实例。无论您是初学者还是资深开发者,都能在这里找到适合的案例,涵盖基础控件使用、常用对话框操作、图形特效处理、网络编程、数据库操作及多线程编程等典型场景。这些精选示例不仅具有高...

gitblog_06798的博客 444

Qt 例子合集

Qt 例子合集 【下载地址】Qt例子合集 Qt例子合集是一个专为Qt学习者和开发者打造的综合性资源库,汇集了丰富且实用的编程实例。无论您是初学者还是资深开发者,都能在这里找到适合的案例,涵盖基础控件使用、常用对话框操作、图形特效处理、网络编程、数据库操作及多线程编程等典型场景。这些精选示例不仅具有高度的代表性,还能帮助您...

gitblog_06727的博客 346

Qt高质量的开源项目合集

尊重作者,支持原创,如需转载,请附上原地址:开源项目推荐:Qt有关的GitHub/Gitee开源项目(★精品收藏★)_$firecat全宏的代码足迹$-优快云博客_qt开源项目https://libaineu2004.blog.youkuaiyun.com/article/details/77369837 Q:想请教下Qt5 之后推出的qml与之前qt4的ui 开发方式,有冲突吗?我公司开发桌面程序,是两种方式兼用?还...

VCMamba的博客 2万+

Qt常见面试题合集

信号槽类似于软件设计模式中的观察者模式,(观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。)被观察者发出的信号(signal),观察者收到自己注册监听signal,就通过槽(slot)关联的槽函数function实现动作操作。

oscar999的专栏 2952

Qt中文帮助手册资源合集

Qt中文帮助手册资源合集 【下载地址】Qt中文帮助手册资源合集 Qt中文帮助手册资源合集是专为Qt框架开发者打造的中文文档集合,旨在帮助开发者更高效地掌握Qt语法和特性。对于不擅长阅读英文文档的开发者,这份资料提供了详细的中文解释,尤其适合初学者快速上手。通过使用本合集,开发者可以轻松理解Qt的核心功能,提升开发效率和项...

gitblog_06707的博客 409
上一篇: Qt右击菜单项
下一篇: Mac端Qt应用程序打包成安装包
巨蟹贼香
博客等级 码龄9年 76粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值