【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开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

使用Qt编程QtNetwork无法使用

使用 VS 构建 Qt 项目时 QtNetwork 无法使用的问题 - 摘叶飞镖 - 博客园 (cnblogs.com) 另外,强烈建议在使用QNetworkAccessManager之前看看这篇文章: Qt 之 QNetworkAccessManager踏坑记录-CSDN博客 C++ Qt开发:QNetworkAccessManager网络接口组件 阅读目录 1.1 通用API函数

Qt多语种开发教程

Qt作为跨平台的开发工具,早已应用到各行各业的软件开发中。 今天讲讲,Qt开发的正序怎么做多语言开发。就是说,你设置中文,就中文显示;设置英语就英文显示,设置繁体就繁体显示,设置发育就显示法语等。 开发环境(其实多语种这块根环境没太大关系):win10,Qt.5.12.10 一.先用QtCreator创建一个简单的桌面程序 1.工程就随便命名“LanguageTest”,其他默认。 2.在设计师

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

Qt中window frame的影响

window frame 在创建图形化界面的时候,会创建窗口主体,上面会多出一条,周围多次一圈细边,这就叫window frame窗口框架,这是操作系统自带的。 这个对geometry的一些属性有一定影响,主要体现在Qt坐标系体系: 窗口当中包含一个按钮,这个按钮的坐标系是以父元素为参考,那么这个参考是widget本体作为参考,还是window frame作为参考,这两种参考体系都存在

【Qt】定时器事件

定时器事件 在之前学习QTimer中实现了定时器的功能,而在QTimer背后是QTimerEvent定时器事件进行支撑的。在QObject中提供了一个timeEvent这个函数。 startTimer启动定时器killTimer关闭定时器 Qt 中在进⾏窗⼝程序的处理过程中,经常要周期性的执⾏某些操作,或者制作⼀些动画效果,使⽤定 时器就可以实现。所谓定时器就是在间隔⼀定时间后,去执⾏某⼀