qt相关知识

 lineEdit中的一些知识

首先我要设置lineEdit中的文本怎么操作 

ui->lineEdit->setText();

如何给窗口设置名字

 this->setWindowTitle("计算器");

如何给按钮设置我们的图片

QIcon ic("图片地址");

ui->button->setIcon(ic);

如何给lable设置图片

    QPixmap pixmap("D:\\qt\\QTimer\\1.jpg");
    ui->label->setPixmap(pixmap);

如何给按钮设置背景颜色 并且字体设置为白色

 ui->equalButton->setStyleSheet("background: red; color: white;");

创建一个mypad的注意事项 

首先我要清楚 我们必须用connect 来创建一个槽函数 

connect(谁发出信号,发出什么信号,谁来处理信号,怎么处理信号)

connect(ui->newopen,&QAction::triggered,this,&MainWindow::newActionSlot);

对于 打开 这一个按钮我们怎么操作呢 

首先通过对话框(QFileDialog)中一个函数获取(getOpenFileName)需要打开的文件位置

QString filename = QFileDialog::getOpenFileName(this,"标题","文件打开位置");

  • 这行代码的主要作用是弹出一个文件打开对话框,让用户从指定的目录中选择一个文件,并获取用户选择的文件的路径和文件名,将其存储在QString类型的变量filename中。

 获取之后需要打开

QFile file(filename);

file.open(QIODevice::ReadOnly);

QByteArray ba = file.readAll(); //都是字节 

ui->textEdit->setText(QString(ba));

close(file);//别忘了关闭这个

对于 保存 这一个按钮我们怎么操作呢

跟打开一样我们需要用的是QFileDialog中的getSavefilename

Qstring filename = QDialog::getSaveFileName(this,"标题","文件位置");

这行代码的主要作用是弹出一个文件打开对话框,让用户从指定的目录中创建一个文件,并获取用户创建的文件的路径和文件名,将其存储在QString类型的变量filename中。

QFile file(filename);

file.open(QIODevice::wirteOnly);

QByteArray ba = ui->textEdit->toPlainText().toUtf8();//因为读取的是QString

所以 用toutf8 装换成byte

file.wirte(ba);

file.close();

如何加键盘上的操作呢 比如ctrl+s 代表保存

void keyPressEvent(QKeyEvent *k) override;  //继承的虚函数  键盘点击事件

实现

void MainWindow::keyPressEvent(QKeyEvent *k){
    if(k->modifiers() == Qt::ControlModifier && k->key()==Qt::Key_S){
        saveActionSlot();
    }
}

鼠标操作
void MainWindow::mousePressEvent(QMouseEvent *m){
    if(m->button()==Qt::LeftButton){
        qDebug()<<"左键被按下";
    }
    if(m->button()==Qt::RightButton){
        qDebug()<<"右键被按下";
    }

}

定时器Timer #inclde<QTimer>

首先要定义 QTimer *timer = new QTimer;

点击我们的开始按钮之后 我们timer定时器会开始,到了TIMEOUT之后 我们timer会发出信号,

那就代表我们connect 需要连接一个槽函数

connect(timer,&QTImer::timeout,this,&Widget::slot);

#define TIMEOUT 1000

void Widget::on_pushButton_clicked()
{
    timer->start(TIMEOUT);  //时间到了之后会发出 timeout信号 我们这个信号需要一个槽函数来处理
}

客户端   服务器

对于客户端而言 #include<QTcpServer>

QTcpServer * server = new QTcpserver;

首先设置监听

 server->listen(QHostAddress::AnyIPv4,8000);

如果监听到了 那我们要有一个槽函数

connect(server,&QTcpSErver::newConnection,this,&Widget::newClientHandler);

然后把监听到的数据通过newClientHandler 这个槽函数 输出在我们的ui界面 

void Widget::newClientHandler(){
    //其主要功能是从服务器的等待连接队列中获取下一个已经建立连接的客户端套接字对象。
    QTcpSocket *socket = server->nextPendingConnection();
    socket->peerAddress();//获取客户端信息
    socket->peerPort();
    ui->lineEdit->setText(socket->peerAddress().toString());
    ui->lineEdit_2->setText(QString::number(socket->peerPort()));

    //启动我们的线程
    mythread *t =new mythread(socket);   //我们写的sendtoWidget信号 这发出这个信号
    t->start(); //开始线程     就是调用的 我们QThraed中的虚函数 run 我们在我们自己的mythread中重新实现他
   //在这设置 槽函数 接听
    connect(t,&mythread::sendTOWidget,this,&Widget::threadSlot);  //发送的信号里面带有ba这个read出来的东西,如果 发送了这个信号 就调用 槽函数
//    槽函数里面头一个参数会自动j接受 read出来的ba
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用官网tar包制作OpenSSL及OpenSSH rpm包进行升级安装(OpenSSH_9.9p1, without OpenSSL未解决)

一、制作openssl-1.1.1w.rpm包 1、安装基础依赖包和rpmbuild及其依赖包 yum install curl which make gcc perl perl-WWW-Curl rpm-build rpm-build rpmdevtools tree -y yum install gcc-c glibc glibc-devel openssl openssl-devel \pcre-devel zlib zlib-devel perl…

WAL日志

1.WAL概述 PG WAL&#xff08;Write-Ahead Logging&#xff09;日志是PostgreSQL数据库中的一种重要机制&#xff0c;用于保证数据库的完整性和数据恢复。 1.1定义与功能 WAL日志是PostgreSQL的持久性技术&#xff0c;它将所有对数据库的修改操作&#xff08;如INSERT、UPDA…

开放寻址法、链式哈希数据结构详细解读

一、开放寻址法&#xff08;Open Addressing&#xff09; 1. 定义 开放寻址法是一种哈希冲突解决策略&#xff0c;所有元素都存储在哈希表中。当发生冲突时&#xff0c;即两个键计算出的哈希值相同时&#xff0c;会按照一定的探查序列查找下一个可用的位置来存储新元素。 2.…

算法通关(4)-- 前缀树

前缀数原理和代码 原理 前缀树&#xff08;Trie树&#xff09;&#xff0c;也称为字典树&#xff0c;是一种用于高效存储和检索字符串的数据结构。它是一种树形结构&#xff0c;能够利用字符串的公共前缀来减少存储空间和查询时间。 现在有“acb”,"cba","ac…

CSS3新增渐变(线性渐变、径向渐变、重复渐变)

1.线性渐变 代码&#xff1a; 效果图&#xff1a; 使文字填充背景颜色&#xff1a; 效果图&#xff1a; 2.径向渐变 代码&#xff1a; 效果图&#xff1a; 代码图&#xff1a; 效果图&#xff1a; 3.重复渐变 代码&#xff1a; 效果图&#xff1a;

Python 学习完基础语法知识后,如何进一步提高?

入门Python后&#xff0c;就可以拿些小案例练手了&#xff0c;这时候千万不要傻乎乎地成天啃语法书。 编程是一门实践的手艺&#xff0c;讲究孰能生巧。不管是去手撸算法、或者照葫芦画瓢写几个小游戏都可以让你的Python突飞猛进。 之前看github比较多&#xff0c;推荐给大家…

blender导入的图片渲染看不见,图片预览正常,但渲染不出

在使用Blender时&#xff0c;我们经常会遇到导入图片后在预览渲染中显示&#xff0c;但在实际渲染时图片消失的问题。本文将提供详细的解决方法&#xff0c;帮助大家解决“Blender导入的图片渲染图像不显示”的问题。 问题原因 导入的图片在Blender中只是一张图&#xff0c;并…

【数据结构】选择排序——选择排序 和 堆排序

选择排序 和 堆排序 一、选择排序选择排序的思路及其代码选择排序的弊端 二、堆排序三、速度对比同时排10000个数同时排100000个数同时拍500000个数堆排 1 亿个数 一、选择排序 选择排序的思路及其代码 选择排序思路很简单 就是经过将数组遍历选择最小值 将最小值位置的数与数…

Docker在CentOS上的安装与配置

前言 随着云计算和微服务架构的兴起&#xff0c;Docker作为一种轻量级的容器技术&#xff0c;已经成为现代软件开发和运维中的重要工具。本文旨在为初学者提供一份详尽的指南&#xff0c;帮助他们在CentOS系统上安装和配置Docker及相关组件&#xff0c;如Docker Compose和私有…

大数据新视界 -- 大数据大厂之 Impala 性能优化:数据存储分区的艺术与实践(下)(2/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

CLIP论文CLIP 改进工作串讲

文章目录 CLIPViLTCLIP 改进工作串讲Lseg&#xff08;Language -driven semantic segmentation)Group ViT&#xff08;Semantic Segmentation Emerges from Text Supervision&#xff09;ViLDGLIP_V1/V2&#xff08;Ground Language-Image Pre-train&#xff09;CLIP PassoCLIP…

C++:set详解

文章目录 前言一、set概念介绍二、set的使用1. 插入删除相关2. 查找相关1&#xff09;find2&#xff09;count3&#xff09;lower_bound与upper_bound4&#xff09;equal_range 三、set的值是不能修改的原理四、基于哈希表的set总结 前言 根据应用场景的不同&#xff0c;STL总…

【静态页面】尚品汇 1、设计稿分析及资源准备

目录 1. 准备工作2. 理解设计3. 规划项目结构 1. 准备工作 安装必要的工具&#xff1a;确保你的开发环境已经准备好&#xff0c;包括文本编辑器&#xff08;如 VSCode&#xff09;、浏览器等。获取设计文件&#xff1a;获取UI设计稿或者设计文件链接&#xff0c;并确保可以访问…

小时收入:衡量工作效率与个人自由的标准

小时收入&#xff0c;就是按照小时来计算一个人的收入。比如&#xff0c;一个月一共工作200小时&#xff0c;获得的总收入是20000元&#xff0c;那么小时收入就是100元/小时。 小时收入可以反应一个人的赚钱效率。 可能两个人的月收入一样&#xff0c;但是付出的总工作时间不…

RFID文件柜在文件管理中的作用

一、RFID文件柜系统概述 1.1 RFID技术简介 RFID&#xff08;Radio Frequency Identification&#xff0c;无线射频识别&#xff09;技术是一种非接触式的自动识别技术&#xff0c;它通过无线电讯号识别特定目标并读写相关数据&#xff0c;无需识别系统与特定目标之间建立机械…

mysql代码生成器

项目 pom 文件内容 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/…

域控操作二十四:主域故障辅域接替

模拟环境&#xff1a;上海DC1故障无法开机&#xff0c;导致只有一个DNS的电脑无法上网&#xff08;实际可以添加DC2但是为了实验就不说了&#xff09; FSMO还在DC1上 使用powershell把角色迁移到DC2 ntdsutil roles connections connect to server DC2SHA.whbk.cn quitSeize …

Redis(2):内存模型

一、Redis内存统计 工欲善其事必先利其器&#xff0c;在说明Redis内存之前首先说明如何统计Redis使用内存的情况。 在客户端通过redis-cli连接服务器后&#xff08;后面如无特殊说明&#xff0c;客户端一律使用redis-cli&#xff09;&#xff0c;通过info命令可以查看内存使用情…

数据分析:宏基因组DESeq2差异分析筛选差异物种

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理:计算步骤:结果:加载R包准备画图主题数据链接导入数据Differential abundance (No BP vs 2BP TA)构建`countData`矩阵过滤低丰度物种构建DESeq数据对象DESeq2差异分析画图Di…