栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

获取Qt的QLineEdit中鼠标选中的内容并作出对应操作(小例子)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取Qt的QLineEdit中鼠标选中的内容并作出对应操作(小例子)

最近项目上需要实现一个功能,选中文本框内容,点击列表中的一些运算函数,则将选中内容添加进运算函数中显示在文本框中,下边写了个demo简单测试了下。

知识点:

1.用到了QLineEdit的一个信号:cursorPositionChanged(int int) 作用是光标位置改变时触发

2.QLineEdit->selectedText() 作用获取选中内容

下图为介绍功能:

点击按钮后

time.....

代码附上:

头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include 

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QString localText;  //选中的文本
private slots:
    
    void indexChanged(int oldIndex, int newIndex);
    void on_pushButton_clicked();   //按钮点击事件
};

#endif // MAINWINDOW_H

cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qdebug.h"
#include 

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //给文本框初始化添内容
    ui->lineEdit->setText("123456");
    //取消按钮焦点
    ui->pushButton->setFocusPolicy(Qt::NoFocus);
    //信号槽连接 cursorPositionChanged是lineEdit的一个信号,作用是监听光标在文本框中的位置变化,光标移动就触发
    connect(ui->lineEdit,SIGNAL(cursorPositionChanged(int,int)),this,SLOT(indexChanged(int,int)));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::indexChanged(int oldIndex, int newIndex)
{
    //获取选中内容赋给定义的全局变量
    QString selectedText = ui->lineEdit->selectedText();
    localText = selectedText;
}

void MainWindow::on_pushButton_clicked()
{
    //打印选中文本
    qDebug() << "选中的文本:" << localText;
    //将选中文本替换成空串(也就是删除掉)
    ui->lineEdit->text().replace(localText,"");
    //重新拼接插入值
    ui->lineEdit->insert("sin("+localText+")");
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968831.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号