QT
伍铭
My life for aiur
展开
-
QT多页面切换——基于Stacked Widget(堆叠窗口)组件
参考链接https://blog.csdn.net/gan19951101/article/details/79978033一 步骤1.创建分页面窗口wigget类,FormMilk类 和FormCoffee类,如下创建2主窗口.h包含对应的.h文件,创建窗口页面指针#include "formmilk.h"#include "formcoffee.h"......FormMilk *form1Page;//窗口页面指针FormCoffee *form2Page;3.主原创 2020-06-03 23:53:21 · 2959 阅读 · 0 评论 -
QT的QVaiant结合自定义的结构体 使用非QMetaType类型缺少Q_DECLARE_METATYPE宏定义错误
报错:E:\Qt\Qt5.9.3\5.9.3\mingw53_32\include\QtCore\qglobal.h:738: error: static assertion failed: Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object ...原创 2020-04-24 15:03:32 · 1386 阅读 · 0 评论 -
QT自定义结构体struct—— 基于QVariant 类 用于信号与槽
1.头文件加#include<QVariant>#include<QVariant>2.主.h 文件 声明信号signals: void addData(QVariant);//QVariant作参数,传递结构体数据3 子.h 文件 声明 槽函数addData_slot(QVariant)4连接信号与槽connect(this...原创 2020-04-24 12:38:30 · 9727 阅读 · 1 评论 -
Qt 控件填满布局——设置布局边距
一 UI法修改参数二 代码法layout->setContentsMargins(0, 0, 0, 0);原创 2020-04-14 11:08:36 · 7589 阅读 · 1 评论 -
QT任意组件的(文字)对齐方式——alignment 属性setAlignment()
任何有【文字】的地方都能设置对齐方式:如下ui->doubleSpinBox->setSingleStep(0.01); // 步长ui->doubleSpinBox->setAlignment(Qt::AlignRight);//文字右对齐Qt::Alignment 类型有以下取值。 1)Qt::AlignLeft::水平...原创 2020-04-12 22:33:51 · 29405 阅读 · 3 评论 -
QT【按钮弹窗】效果的 2个思路——巧用hide()函数法
方法1.两个窗体,按钮弹出子窗体方法2.一个窗体,按钮控制 子窗体隐藏与显示void FormDynamicCoordinate::on_pushButton_2_clicked(){ //! 方法1// poppanel = new PopPanel();//新窗口实例化// QPoint moveTo = ui->pushButton_2-&g...原创 2020-04-12 21:53:26 · 1284 阅读 · 0 评论 -
QT按钮弹窗: 定位置——mapToGlobal()
1.定位 按钮 & 弹窗 的相对位置mapToGlobal() 和 move()函数void SerialDataSet::connectSet() //Button的槽函数{ Dlg = new DataConnectSetup(); //定义弹出子窗口 QPoint moveTo = m_connectSetBtn->mapToGlobal(Q...原创 2020-04-12 21:36:47 · 3857 阅读 · 0 评论 -
Qt用QCustomplot类编译一堆error:undefined reference to `_imp___ZN8QPrinterC1ENS_11PrinterModeE'—工程设置可能有问题
引用qcustomplot,在编译的时候报了一堆这样的错误:undefined reference to `_imp___ZN8QPrinter C1ENS_11PrinterModeE', undefined reference to `_imp___ZN8QPrinter17setOutputFileNameERK7QString' ...解决方法:更改工程配置修改 / 添加.pro文...原创 2020-04-12 00:21:55 · 3167 阅读 · 3 评论 -
QTextStream 一行行读取文件内容_readLine()函数 与 整体读取readAll ()
用文本流读取文件的代码如下:QFile file("file.txt");if (!file.open(QIODevice::ReadOnly | QIODevice::Text))return;QTextStream in(&file);1.readLine()——读取txt 单行/全部 的内容readLine()一行一行的读取,每一行是一个字符串,用“...原创 2020-04-10 17:07:48 · 12017 阅读 · 2 评论 -
QT 菜单栏或者工具栏中 添加【任意】部件
方法1 UI界面添加:拖动法——用于QAction类创建action直接拖动方法2 代码添加:addWidget()函数法——用于所有的组件1.工具栏 添加任意部件的方法:先实例化(申请想要添加部件的内存空间),再用addWidget函数。如下//工具栏中添加一个按钮(QPushButton)QPushButton* btn = new QPushButton(this...原创 2020-04-09 14:17:45 · 1866 阅读 · 0 评论 -
QT界面布局——停靠窗口QDockWidget +分割窗口QSplitter +堆叠窗口QStackedWidget
窗口的基本布局如下1、分割窗口 QSplitter//分割窗口使用QSplitter类QSplitter *splitterMain =new QSplitter(Qt::Horizontal,0); // 对窗口进行水平分割,0代表有分割的窗口为主窗口,也可以选择要分割的窗口QTextEdit *textLeft =new QTextEd...原创 2020-04-09 12:22:38 · 2202 阅读 · 0 评论 -
QT任务016:视频播放———在QVideoWidget上基于QMediaPlayer
一 任务描述1、qt界面中实现视频的播放2、视频界面分为可操作和不可操作的不可操作是指,自动播放,只能看不能关闭和停止的,没有操作按钮可操作是指可以调整音量,调整播放进度条,甚至可以点击全屏播放的功能二 实现过程1. 配置工程QT += multimedia //使用多媒体模块QT += multimediawidgets//使用QVideoWidget视频显示...原创 2020-03-27 01:39:35 · 5616 阅读 · 2 评论 -
QT打开文件函数 + 获取文件名QFileInfo类
三要素标题dlgTitle/ 路径curPath / 文件过滤器filter(“;;”双分号隔开)一设置文件aFile 用到文件对话类QFileDialog 的打开文件函数getOpenFileName 4个参数(this,+三要素)一判断文件是空,就return 返回案例:视频播放 的文件打开void MainWindow::on_pushBtn_open...原创 2020-03-26 23:52:43 · 1351 阅读 · 0 评论 -
QT视频播放不出来,报错 DirectShowPlayerService::doRender: Unresolved error code 80040266——没有安装视频解码器
出错1——没有安装视频解码器DirectShowPlayerService::doRender: Unresolved error code 0x80040266出错2——文件路径不对或者文件名是中文的DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()Qt 中的多媒体播放,底层是使用Dir...原创 2020-03-26 18:00:20 · 6652 阅读 · 0 评论 -
QTcentralWidget 禁止标志———没有设置布局
原创 2020-03-26 17:56:40 · 3198 阅读 · 3 评论 -
QT XXX类提升为xxx
1.建立C++类的方法①手动写名字②按需,勾选需要包含的 头文件③手动更改文件2.提升 的方法ui界面>右击选择提升为:增加SceneWindow类以及对应的头文件,之后选择提升①拖一个widget / tree widget 等控件到画布②右击“promote to" 提升为 进行选择③如果有定义好的类,会自动生成否则,手动添加...原创 2020-03-26 09:18:34 · 1121 阅读 · 0 评论 -
QString 比较相等 / 拼接填充—— ==/.arg()
一 字符串 等于 固定字符串QString str = "API"方式一:str ==QString::fromLocal8Bit("API")方式二:str.compare(QString::fromLocal8Bit("球形") == 0二 拼接填充QString的arg()方法用于填充字符串中的%1,%2...为给定的参数,如QString m = tr("%1:%2...原创 2020-03-25 00:40:56 · 1556 阅读 · 0 评论 -
QT屏蔽按键 / 任务栏 / 任务管理器——基于键盘钩子(鼠标钩子)+显示 |屏蔽 函数——011
一.h文件①添加头文件②声明注册 / 注销钩子 /屏蔽任务栏 / 屏蔽任务管理器的函数(ps:)#include<windows.h>//钩子要用#include<QKeyEvent>#include <QSettings>//给任务管理器使能 用到......void stopHook();//注销钩子void setHook(); ...原创 2020-03-24 17:59:44 · 1317 阅读 · 1 评论 -
QT组件 / 窗体加边框——基于样式表 styleSheet 设置frame
#LoginWin{frame{border:2px; solid #014F84}background:transparent;border:1px solid #014F84;}原创 2020-03-24 17:05:51 · 3175 阅读 · 0 评论 -
QT分割字符串QString 2中方法 Split 和 mid
1. split 按照指定的字符分割,如按照";"或 "/"等分割QString str = "hello,world"QStringList list = str.split(",");QString a = list[0]; //a = "hello"QString b = list[1]; //b = "world"QString str2 = b.append(a);str...原创 2020-03-24 16:55:34 · 2362 阅读 · 1 评论 -
QT代码打包,qml程序无法运行怎么解决
【四步】1.将relese 文件中的.exe 文件单独放到一个文件夹(就放桌面吧)2.将QT代码Release 一下(注意你选的工具)3.按“WIN”键,找到QT软件,选中生成release的对应 工具,打开它有5个(对应!,2个32,3个64,名字是不一样的)4.输入①cd "+单独 .exe 的路径" -> Enter (PS:cd 后面没有冒号 路径复制...原创 2020-03-24 16:52:24 · 1331 阅读 · 1 评论 -
Qt设置图标——窗口标题和exe ——以及设置失败error——011
1.给窗口标题设置图标,构造函数中添加QIcon icon(":/new/prefix1/pic/lock16.png");setWindowIcon(icon);2.给exe设置图标:①在rc目录(与exe同一目录)下新建一个joke.rc;②用记事本打开粘贴如下文本IDI_ICON1 ICON DISCARDABLE "smile.ico"③在pro文件中加入:RC_F...原创 2020-03-23 22:41:09 · 890 阅读 · 0 评论 -
Qt QDialog 去掉问号,只保留关闭
构造函数里添加设置// 去掉问号,只保留关闭setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint);原创 2020-03-23 22:05:16 · 4612 阅读 · 0 评论 -
QT 窗体间传值3种方式——信号与槽 / 全局变量 / public函数 ——011
参考代码 链接https://blog.csdn.net/zbw1185/article/details/48519371一 信号与槽PS 1:每个窗口的层级关系 ×:一个类对应两个平级子窗口 改正:顺序单列排布下去,以防止实例的窗体重复PS 2:窗体句柄3步——定义 -> new实例化 -> show展示PS 3:”五步“ ...原创 2020-03-23 21:45:16 · 1364 阅读 · 0 评论 -
QT报错:does not name a type——头文件不能互相包含
Qt 头文件互相包含会报错'' does not name a type报错内容: '<类名>' does not name a type解决方法:改为不互相包含原创 2020-03-23 16:38:43 · 7176 阅读 · 0 评论 -
QT编译错误 :stray '\' in program
1.换行后自己写了注释——>去掉注释IP_Port = tr("[%1:%2]:").arg(clients[i]->peerAddress().toString().split("::ffff:")[1])\ //注释错 .arg(clients[i]->peerPort());2.少打括号...原创 2020-03-20 10:17:45 · 3263 阅读 · 0 评论 -
QT 打印/输出 的 3种方法
1.cout输出#include<iostream>std::cout<< A<< B <<std::endl;2.qDebug()输出#include<QDebug>QString s = "Jack";qDebug() << "My name is " << s << ",...原创 2020-03-18 22:01:01 · 24999 阅读 · 2 评论 -
QT任务003:实现TCP连接之客户端编写——基于network, QTcpSocket类网络套接字
一 任务描述1.界面要求:一个网址输入框,一个端口输入框,一个发送信息输入框一个连接按钮,一个断开连接按钮(或者和连接做成一个按钮),一个发送按钮2.功能要求:实现tcp链接(1)连接指定的服务器地址及端口(2)能发送+接收信息并显示二 实现过程前提: 使用QT的网络套接字 需要.pro文件中加入一句: QT += network...原创 2020-03-18 21:52:33 · 461 阅读 · 0 评论 -
QT QString分隔符前后的字符串分离 的方法
1. split 函数 按照指定的字符分割,如按照";"或 "/"等分割QString str = "hello,world"QStringList list = str.split(",");QString a = list[0]; //a = "hello"QString b = list[1]; //b = "world"QString str2 = b.append(a);...原创 2020-03-17 22:20:55 · 1741 阅读 · 0 评论 -
QT样式表 ——styleSheet (样式规则+用法)
书写格式参考文章:https://www.cnblogs.com/that-boy-done/p/11458130.html一 代码设置1.QApplication::setStyleSheet() 在应用程序上,一般在main()函数中:QFile file(":/qss/abc.qss"); //工程控件样式表需要在qss/abc.qss里面file.open(QFile::...原创 2020-03-17 00:30:45 · 3290 阅读 · 0 评论 -
QT自定义最大最小关闭按钮+居右显示
1.添加按钮——UI界面拖动控件2.居右显示——添加布局+左侧弹簧3.改变按键颜色+形状 ——样式表设置#pushBtn_green //正常状态{background:#6DDF6D;//背景色border-radius:6px;//圆倒角 = 最小边的一半长度}QPushButton:hover //悬停状态{background:green; //背景加...原创 2020-03-16 23:23:02 · 956 阅读 · 0 评论 -
QT打开文件,中文乱码问题解决
1.在main.cpp里面加入#include <QTextCodec>...... QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForLocale(codec); //解决汉字乱码问题原创 2020-03-16 00:49:13 · 1321 阅读 · 1 评论 -
QT中ui 不识别的问题
1.问题描述函数中 ui不能被识别为指针2.方案给函数 指定继承的类错误❌:void loadFromFile(QString &aFileName){ ......}正确✔:void MainWindow::loadFromFile(QString &aFileName) { ......}PS: 建议 函数书写,最...原创 2020-03-16 00:14:42 · 1479 阅读 · 0 评论 -
QT布局属性设置
1.Margin 设置上下左右外边距 如:setMargin(30) 将外边距设置为 30px 从下图可以看到红框以内就是水平布局,红框以外的区域就是新设置的外边距:2.Space 控件间距如:setSpacing(30) 将间距设置为 30 PS: setSpacing(0) 可以完全消除 QLbael 之间的间距,但不能完全消除 QPushB...原创 2020-03-15 23:26:24 · 1205 阅读 · 0 评论 -
QT窗体设置4:setWindowModality()窗口模态 + 窗口透明度setWindowOpacity()
1. 模态 不能操作窗体以外的界面 非模态 可以操作窗体以外的界面Qt::NonModal //无模态Qt::WindowModal //对所有的上级窗口 模态Qt::ApplicationModal //对整个应用程序 模态,阻止一切窗口输入2.透明度参数 (qreal level) 1.0 = 完全不透明...原创 2020-03-14 16:34:40 · 3455 阅读 · 0 评论 -
QT窗体设置3:setWindowState() 设置状态(最大最小全屏)
Qt::WindowNoState //窗口 正常显示Qt::WindowMinimized //窗口 最小显示Qt::WindowMaximized //窗口 最大显示Qt::WindowFullScreen //窗口 填充整个屏幕,无边框Qt::WindowActive //窗口 变为活动的窗口(如:可接受键盘输入)...原创 2020-03-14 16:23:50 · 5041 阅读 · 0 评论 -
QT窗口设置2 :setAttribute() 设置窗体属性——窗体释放与交互
Qt::WA_AcceptDrops //窗体接受拖来组件Qt::WA_DeleteOnClose //窗体关闭时,删除自己,释放内存Qt::WA_Hover //鼠标进入 或移出进入paint事件Qt::WA_AcceptTouchEvents //窗体接受触屏事件...原创 2020-03-14 16:16:35 · 1183 阅读 · 0 评论 -
QT 窗体设置1:setWindowFlags() 设置窗体标志—— Qt::WindowFlags 枚举类型介绍
Qt::Widget //是一个窗口或部件,有父窗口就是部件,没有就是窗口Qt::Window //是一个窗口,有窗口边框和标题Qt::Dialog //是一个对话框窗口Qt::Sheet //是一个macOS表单,意味窗口模式, ...原创 2020-03-13 21:08:20 · 2792 阅读 · 0 评论 -
QT UI界面组件介绍
1.布局类(4种)2.固定弹簧类(2种)(不随布局变化)3.按钮类(6种)4.容器类(10种)Th1: Group Box类似于win7的日历框Th3: Tool Box类似于QQ的好友列表Th4: Tab widget类似于5.输入窗()6.显示窗()参考链接https://blog.csdn.net/alzzw/article...原创 2020-03-10 23:46:37 · 8830 阅读 · 1 评论 -
QT设置窗体 居中
两种方法都添加头函数 #include <QDesktopWidget>!!方法1:在窗口(QWidget类及派生类)的构造函数中添加如下代码:#include <QDesktopWidget>.......QDesktopWidget* desktop = QApplication::desktop(); // =qApp->desktop();...原创 2020-03-08 14:54:46 · 1422 阅读 · 0 评论