【Qt秘籍】[007]-LineEdit Pushbutton控件

2024-06-02 10:12

本文主要是介绍【Qt秘籍】[007]-LineEdit Pushbutton控件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       Qt的中有着各种各样的控件,相较于传统C/C++的输出默认只能在控制台实现,Qt中可以有不同的接口实现各种不同的功能,下面我们将实现不同功能的输出 hello world!

标签Label

【Qt秘籍】[006]-Label实现Hello World程序-编程第一步-CSDN博客

编辑框LineEdit/TextEdit

        在Qt中,用于输入和编辑文本的控件主要是QLineEditQTextEdit。这两个类提供了不同的功能和适用场景:

QLineEdit

        QLineEdit是一个单行文本编辑控件,通常用于输入较短的文本,如用户名、密码、搜索关键词等。它简单灵活,支持文本的输入、显示和基本操作。你可以设置占位符文本(placeholder text)、输入掩码(input mask)以及限制输入的字符类型或长度。QLineEdit还支持清空按钮、完成建议等功能。

常用方法

  • setText(const QString &text):设置编辑框中的文本。
  • setEchoMode(QLineEdit::EchoMode mode):设置密码输入模式等。
  • setPlaceholderText(const QString &placeholderText):设置占位符文本。
  • clear():清空编辑框内容。
  • text():获取编辑框中的当前文本。

QTextEdit

        QTextEdit是一个多行富文本编辑器,适合编辑包含格式化文本(如字体样式、大小、颜色等)的长文本。它基于HTML和CSS进行文本渲染,因此可以插入图片、超链接等复杂内容。如果你需要一个类似Word的编辑环境,QTextEdit是更好的选择。

常用方法

  • setHtml(const QString &html):设置编辑器内容为HTML格式的文本。
  • 文本格式相关的操作,如字体、颜色、对齐方式等,可以通过QTextCursorQTextCharFormat等类实现。
  • toPlainText():获取编辑器中的纯文本内容。
  • setPlainText(const QString &text):设置纯文本内容。
  • toHtml():获取编辑器内容为HTML格式的字符串。

        根据你的具体需求,选择合适的编辑框控件。对于简单的文本输入,使用QLineEdit;如果需要处理富文本或者多行文本编辑,则应使用QTextEdit

        下面,我们将创建一个文件,先制作一个以QLineEdit实现的hello world

QLineEdit图形化构建

1.创建文件。

【不知道如何创建的朋友请移步【Qt秘籍】[005]-Qt的首次邂逅-创建】

2.进入widget.ui

3.找到Line Edit,拖拽到右边

4.适当修改大小,直接输入hello world

5.保存后运行

此时我们发现,右边的QLineEdit栏中的text也显示出了hello world!

QLineEdit纯代码构建 

这里和Label的代码创建完全类似,不再赘述

//widget.cpp
#include "widget.h"
#include "ui_widget.h"#include <QLineEdit>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QLineEdit* edit = new QLineEdit(this);edit->setText("hello world!");
}Widget::~Widget()
{delete ui;
}

常规按钮Pushbutton

        Qt中的QPushButton是一个用于创建按钮的基本GUI(图形用户界面)组件。按钮是用户界面中非常基本且重要的交互元素,用户通过点击按钮来触发预定义的动作或事件。QPushButton继承自QWidget类,它允许开发者定义按钮的外观、行为以及与用户的交互逻辑。

QPushButton特点和功能

  • 文本或图标显示:按钮上可以显示文本标签、图标,或者两者同时显示。
  • 信号与槽机制:当按钮被点击时,它会发射一个clicked()信号,这可以通过Qt的信号与槽机制连接到相应的槽函数,以便执行特定的操作,如打开新窗口、关闭窗口、执行计算等。
  • 状态变化:按钮有不同状态,如正常状态、鼠标悬停状态、按下状态等,这些状态可以通过QSS(Qt样式表)来自定义视觉效果。
  • 可定制性:开发者可以通过子类化QPushButton来自定义按钮的行为,例如改变其外观、添加动画效果或修改事件处理逻辑。
  • 无障碍性:支持设置快捷键,提高界面的可访问性。

QPushButton一般步骤

  1. 创建按钮实例:QPushButton *myButton = new QPushButton("点击我", this);
  2. 设置按钮的属性,如大小、位置、图标等。
  3. 连接按钮的信号到槽函数:connect(myButton, &QPushButton::clicked, this, &MyClass::onButtonClicked);
  4. 实现槽函数onButtonClicked()以处理按钮点击事件。

pushbutton图形化构建

图形化界面实现步骤和之前的控件完全一样,不再赘述。

运行后的界面如下图

        但是,虽然这看起来是一个按钮,但是没有交互。

        如果要实现交互,需要先理解信号槽的概念。

【Qt知识】Qt框架中的信号(Signals)与槽(Slots)机制-CSDN博客

代码实现

//widget.h#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void handleClick();
private:Ui::Widget *ui;
};
#endif // WIDGET_H
//widget.cpp#include "widget.h"
#include "ui_widget.h"
#include <QWidget>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);connect(ui->pushButton,&QPushButton::clicked,this,&Widget::handleClick);
}Widget::~Widget()
{delete ui;
}void Widget::handleClick()
{//当按钮每次被点击就进行文本切换if(ui->pushButton->text()==QString("hello world!")){ui->pushButton->setText("hello 叶孤程!");}else{ui->pushButton->setText("hello world!");}
}

运行代码,点击按钮前后

pushbutto纯代码构建

widget.h代码实现
//widget.h#ifndef WIDGET_H
#define WIDGET_H
#include <QPushButton>
#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void HandleClick();private:Ui::Widget *ui;QPushButton* myButton;
};
#endif // WIDGET_H
 widget.cpp代码实现
//widget.cpp#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);myButton = new QPushButton(this);myButton->setText("hello csdn!");connect(myButton,&QPushButton::clicked,this,&Widget::HandleClick);
}Widget::~Widget()
{delete ui;
}void Widget::HandleClick()
{//利用三目运算符(条件运算符)来简化if/else的逻辑myButton->setText(myButton->text() == "hello csdn!" ? "hello 1024!" : "hello csdn!");
}

运行代码,点击按钮前后

这篇关于【Qt秘籍】[007]-LineEdit Pushbutton控件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023677

相关文章

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节