【嵌入式——QT】QComboBox和QPlainTextEdit

2024-03-01 11:52

本文主要是介绍【嵌入式——QT】QComboBox和QPlainTextEdit,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QComboBox
QComboBox是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当做一个QLineEdit用做输入,每个项还可以关联一个QVariant类型的变量,用于存储一些不可见的数据。
添加简单项

ui->mode_select->addItem("ReadOnly");

添加具有用户数据的项

QVariant val = QByteArray::fromHex("00");
ui->mode_select->addItem(tr("ReadOnly"), val);

QComboBox列表向的访问
QComboBox存储的项是一个列表,但是QComboBox不提供整个列表用于访问,可以通过索引访问某个项。

  • int currentIndex():返回当前项的索引,第一个项的索引为0;
  • QString currentText():返回当前项的文字;
  • QVariant currentData(int role = Qt::UserRole):返回当前项的关联数据,数据的缺省角色为role = Qt:UserRole;
  • QString itemText(int index):返回指定索引号的项的文字;
  • QVariant itemData(int index,int role=Qt::UserRole):返回指定索引号的项的关联数据;
  • int count():返回项的个数;

在QComboBox组件上选择项发生变化时会发射这两个信号
void currentIndexChanged(int index):参数为当前项的索引
void currentIndexChanged(const QString &text):参数为当前项的文字

QPlainTextEdit
QPlainTextEdit是一个多行文本编辑器,用于显示和编辑多行简单文本。

常用方法

  • QPlainTextEdit::appendPlainText(const QString &text):向QPlainTextEdit组件添加一行字符串;
  • void cut():将选定的文本复制到剪贴板,并从文本编辑中删除它;
  • void copy():将任何选定的文本复制到剪贴板;
  • void clear():删除文本edit中的所有文本;
  • void paste():将剪贴板中的文本粘贴到当前光标位置的文本编辑处;
  • void undo():取消上次操作;
  • void redo():重新执行最后一个操作;
  • void selectAll():选择所有文本;
  • void setPlainText(const QString &text):将文本编辑器的文本更改为字符串文本。删除之前的任何文本;
  • QString toPlainText():将QPlainTextEdit组件里显示的所有文字读取出来;

图片示例
在这里插入图片描述
代码示例

#ifndef QCOMBOBOXANDQPLAINTEXTEDITDIALOG_H
#define QCOMBOBOXANDQPLAINTEXTEDITDIALOG_H#include <QDialog>namespace Ui
{class QComboBoxAndQPlainTextEditDialog;
}class QComboBoxAndQPlainTextEditDialog : public QDialog
{Q_OBJECTpublic:explicit QComboBoxAndQPlainTextEditDialog(QWidget* parent = nullptr);~QComboBoxAndQPlainTextEditDialog();void init();private slots:void on_comboBox_currentIndexChanged(int index);void on_pushButton_cut_clicked();void on_pushButton_copy_clicked();void on_pushButton_paste_clicked();void on_pushButton_undo_clicked();void on_pushButton_clear_clicked();void on_pushButton_redo_clicked();void on_pushButton_selectAll_clicked();void on_pushButton_onLine_clicked();void on_plainTextEdit_customContextMenuRequested(const QPoint& pos);private:Ui::QComboBoxAndQPlainTextEditDialog* ui;
};#endif // QCOMBOBOXANDQPLAINTEXTEDITDIALOG_H
#include "QComboBoxAndQPlainTextEditDialog.h"
#include "ui_QComboBoxAndQPlainTextEditDialog.h"
#include <QTextBlock>
#include <QMenu>
#include <QDebug>
QComboBoxAndQPlainTextEditDialog::QComboBoxAndQPlainTextEditDialog(QWidget* parent): QDialog(parent), ui(new Ui::QComboBoxAndQPlainTextEditDialog)
{ui->setupUi(this);init();
}QComboBoxAndQPlainTextEditDialog::~QComboBoxAndQPlainTextEditDialog()
{delete ui;
}void QComboBoxAndQPlainTextEditDialog::init()
{ui->comboBox->addItem("北京", "1");ui->comboBox->addItem("上海", "2");ui->comboBox->addItem("广州", "3");ui->comboBox->addItem("深圳", "4");ui->comboBox->addItem("天津", "5");ui->plainTextEdit->setPlainText("测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据测试数据");
}void QComboBoxAndQPlainTextEditDialog::on_comboBox_currentIndexChanged(int index)
{QString str = ui->comboBox->itemText(index);ui->showText->setText(str);int count = ui->comboBox->count();ui->showCount->setText(QString::number(count));ui->showIndex->setText(QString::number(index));
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_cut_clicked()
{ui->plainTextEdit->cut();
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_copy_clicked()
{ui->plainTextEdit->copy();
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_paste_clicked()
{ui->plainTextEdit->paste();
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_undo_clicked()
{ui->plainTextEdit->undo();
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_clear_clicked()
{ui->plainTextEdit->clear();
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_redo_clicked()
{ui->plainTextEdit->redo();
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_selectAll_clicked()
{ui->plainTextEdit->selectAll();
}void QComboBoxAndQPlainTextEditDialog::on_pushButton_onLine_clicked()
{ui->comboBox_2->clear();//文本对象QTextDocument* doc = ui->plainTextEdit->document();//回车符是一个block 获得文本块个数int cnt = doc->blockCount();for(int i=0; i<cnt; i++) {//获取文本中的一行QTextBlock textLine = doc->findBlockByLineNumber(i);QString str = textLine.text();ui->comboBox_2->addItem(str);qDebug()<<"str"<<str;}
}//自带的快捷菜单
void QComboBoxAndQPlainTextEditDialog::on_plainTextEdit_customContextMenuRequested(const QPoint& pos)
{QMenu* menu =  ui->plainTextEdit->createStandardContextMenu();menu->exec(pos);
}

这篇关于【嵌入式——QT】QComboBox和QPlainTextEdit的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

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

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

【QT】基础入门学习

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

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函数

深入探索嵌入式 Linux

摘要:本文深入探究嵌入式 Linux。首先回顾其发展历程,从早期尝试到克服诸多困难逐渐成熟。接着阐述其体系结构,涵盖硬件、内核、文件系统和应用层。开发环境方面包括交叉编译工具链、调试工具和集成开发环境。在应用领域,广泛应用于消费电子、工业控制、汽车电子和智能家居等领域。关键技术有内核裁剪与优化、设备驱动程序开发、实时性增强和电源管理等。最后展望其未来发展趋势,如与物联网融合、人工智能应用、安全性与

Qt多语种开发教程

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

Qt中window frame的影响

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