角角の Qt学习笔记(一)

目录

一、解决在创建新项目时遇到的几个问题

二、信号和槽(非自定义)

三、调用 UI 中的元素(比如按钮)

 

一、解决在创建新项目时遇到的几个问题

         在新建项目时,我选择的构建系统为CMake。然后勾选了Generate form,勾选之后系统就会在新项目中会直接新建一个ui文件。最后一步点击完成,但出师不利,出现如下2个问题:

问题1:左边文件全部显示灰色,且顶栏弹出:Warning: This file is not part of any project. The code model might have issues parsing this file properly.

问题2: 

error: cmake_minimum_required could not parse VERSION "4".

error: VERSION not allowed unless CMP0048 is set to NEW

error: CMake process exited with exit code 1.

error: CMake returned error code: 1

error: Allocation of incomplete type 'Ui::MainWindow'

error: Member access into incomplete type 'Ui::MainWindow'

解决办法如下:

        重新编译后关闭当前项目文件,重新打开项目即可消除该错误提示 。如果不行,就重新新建项目,但是这次记住不要勾选Generate form,如果需要ui文件,到时候在项目中再单独新建即可。

        如果小伙伴们在新建项目时还遇到了其它问题,欢迎在评论区给我留言~

 

二、信号和槽(非自定义)

connect

(

参数1:信号的发送者,

参数2:发送的信号 - 函数的地址,

参数3:信号的接收者,

参数4:处理的槽函数

示例代码:

connect(myBtn, &MyPushButton::clicked, this, &myWidget::close);

三、调用 UI 中的元素(比如按钮)

        在项目中,我新建了一个ui文件,然后在窗口中拖入一个按钮控件。如下图:

        举个🌰:现在我想让用户点击这个按钮,然后这个窗口就会关闭,功能等同于窗口右上角那个叉叉。

        实现方法如下(看带注释的那2行代码即可):

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);this->setWindowTitle("演示窗口");//    把按钮显示的文本改成“点我”ui->pushButton->setText("点我");//    通过connect函数(信号和槽)将按钮和close关联connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::close);}MainWindow::~MainWindow()
{delete ui;
}

        有些小伙伴可能会有疑问,为什么这代码和我在网上看到的教学视频里有点不一样?

        首先呢,可能是因为版本不同,然后呢,也可能是使用的基类不同。请看下面的代码片段:

1. 如果你使用的是 QMainWindow 或 QDialog 类作为窗口的基类:

// 设置按钮的文本
ui->pushButton->setText("Click me");  // 连接按钮的点击信号和槽函数
connect(ui->pushButton, &QPushButton::clicked, this, &MyClass::buttonClicked);

2. 如果你使用的是 QWidget 类作为窗口的基类:

// 获取按钮指针
QPushButton *button = ui->pushButton; // 设置按钮的文本 
button->setText("Click me");  // 连接按钮的点击信号和槽函数
connect(button, &QPushButton::clicked, this, &MyClass::buttonClicked);

        注意替换 MyClass 为你的窗口类的名称,buttonClicked 为你的槽函数名称。 这样,你就可以在代码中调用 UI 中的元素了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/58781.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超级浏览器与指纹浏览器:功能与特点的比较

导语&#xff1a;随着互联网的快速发展&#xff0c;隐私和安全问题日益受到关注。在这个背景下&#xff0c;超级浏览器和指纹浏览器作为定制化浏览器的两个重要类型&#xff0c;各自具有独特的功能和特点。本文将对超级浏览器和指纹浏览器进行比较&#xff0c;帮助读者更好地理…

PDF Expert 3.3 for mac

PDF Expert是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 以下是PDF Expert的特点&#xff1a; PDF编辑&#xff1a;PDF Expert提供了丰富的PDF编辑功能&#xff0c;包括添加、删除、移动、旋转、缩放、裁…

vue中vuex的五个属性和基本用法,另加js-cookie的使用

VueX 是一个专门为 Vue.js 应用设计的状态管理构架&#xff0c;统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。 Vuex有五个核心概念&#xff1a; state, getters, mutations, actions, modules。 1. state&#xff1a; vuex的基本数据&…

使用Pytest集成Allure生成漂亮的图形测试报告

目录 前言 依赖包安装 Pytest Allure Pytest Adaptor 改造基于Pytest的测试用例 生成测试报告 运行测试 生成测试报告 打开测试报告 资料获取方法 前言 之前写过一篇生成测试报告的博客&#xff0c;但是其实Allure首先是一个可以独立运行的测试报告生成框架&#xff…

uniapp两个单页面之间进行传参

1.单页面传参&#xff1a;A --> B url: .....?code JSON.stringify(param), 2.单页面传参B–>Auni.$emit() uni.$on()

elementui实现当前页全选+所有全选+翻页保持选中状

原文来自&#xff1a;https://blog.csdn.net/sumimg/article/details/121693305?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121693305-blog-127570059.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm…

构建Docker容器监控系统(2)(Cadvisor +Prometheus+Grafana)

Cadvisor产品简介 Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息&#xff0c;并以图表的形式向用户展示。 接着上一篇来继续 部署Cadvisor 被监控主机上部署Cadvisor容器…

css的transform样式计算-第一节

本文作者为 360 奇舞团前端开发工程师 引言 在使用 css 样式进行样式的缩放、旋转等设置时&#xff0c;思考了一下它的较浅层的原理&#xff0c;恩&#xff0c;这个阶段都 是一些初高的数学计算&#xff0c;从新看这里的时候顺便捡了捡初高中的数学&#xff0c;比如三角函数之类…

Nodejs安装及环境变量配置(修改全局安装依赖工具包和缓存文件夹及npm镜像源)

本机环境&#xff1a;win11家庭中文版 一、官网下载 二、安装 三、查看nodejs及npm版本号 1、查看node版本号 node -v 2、查看NPM版本号&#xff08;安装nodejs时已自动安装npm&#xff09; npm -v 四、配置npm全局下载工具包和缓存目录 1、查看安装目录 在本目录下创建no…

揭秘压力测试:从报告中看软件的极限

压力测试简介 压力测试&#xff0c;对于软件开发和测试领域的人来说&#xff0c;绝不是一个陌生的词汇。但是对于许多人来说&#xff0c;它的真正含义、目的和重要性可能仍然是一个迷。那么&#xff0c;什么是压力测试&#xff0c;为什么它如此关键&#xff1f; 压力测试是一…

kubeadml 安装 k8s

目录 一&#xff1a;kubeadml 安装 k8s 1、网络环境 2、 环境准备 3、 所有节点安装docker 4、所有节点安装kubeadm&#xff0c;kubelet和kubectl ​5、部署K8S集群 6、测试 二&#xff1a; 部署 Dashboard 一&#xff1a;kubeadml 安装 k8s 1、网络环境 master&am…

实现UDP可靠性传输

文章目录 1、TCP协议介绍1.1、ARQ协议1.2、停等式1.3、回退n帧1.4、选择性重传 1、TCP协议介绍 TCP协议是基于IP协议&#xff0c;面向连接&#xff0c;可靠基于字节流的传输层协议 1、基于IP协议&#xff1a;TCP协议是基于IP协议之上传输的&#xff0c;TCP协议报文中的源端口IP…