qt有两个lineedit,如何获取光标所在

qt有两个lineedit,如何获取光标所在,第1张

两个lineEdit,判断焦点,按键无焦点,在设置linEdit有焦点setFocus才能有效;

参考实例如下:

#include "widgeth"#include "ui_widgeth"

#include <QButtonGroup>

Widget::Widget(QWidget parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

QButtonGroup m_buGroup = new QButtonGroup(this);//按钮组

ui->pushButton0->setFocusPolicy(Qt::NoFocus);//设置按钮无焦点

ui->pushButton0->setIconSize(QSize(55, 50));

m_buGroup->addButton(ui->pushButton0,1);//添加按钮到QButtonGroup

ui->lineEdit->setFocus();//设置焦点

QObject::connect(m_buGroup, SIGNAL(buttonClicked(int)),this, SLOT(buttonNumslot(int)));

}

void Widget::buttonNumslot(int bn)

{

if(ui->lineEdit->hasFocus())//输入框1焦点

{

ui->lineEdit->insert(QString::number(bn));

}

else if(ui->lineEdit_2->hasFocus())//输入框2焦点

{

ui->lineEdit_2->insert(QString::number(bn));

}

设置按钮无焦点,lineEdit才可以判断焦点。

全部重新改了,代码如下

// mainwindowh 头文件

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QtGui/QMainWindow>

#include <QStatusBar>

#include <QMouseEvent>

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget parent = 0);

~MainWindow();

protected:

void mouseMoveEvent(QMouseEvent );

private:

QStatusBar m_pStatus;

};

#endif // MAINWINDOW_H

//mainwindowcpp

#include "mainwindowh"

MainWindow::MainWindow(QWidget parent)

: QMainWindow(parent)

{

setMouseTracking(true);

m_pStatus = new QStatusBar();

setStatusBar(m_pStatus);

m_pStatus->showMessage("application init ok!");

}

void MainWindow::mouseMoveEvent(QMouseEvent event)

{

QPoint pos = event->pos();

m_pStatus->showMessage(QString("x:%1,y:%2")arg(posx())arg(posy()));

}

MainWindow::~MainWindow()

{

}

经过测试,完全ok,唉

通过实现

itemClicked

(QTableWidgetItem

)

信号的槽函数,就可以获得鼠标单击到的单元格指针,获得到了当前的位置信息

connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem,int)),this,

SLOT(

getItem(QTreeWidgetItem,int))

);

通过

QTreeWIdgetltem

你可以获得到你想要的全部数据

假设我有个line edit widget那么,看看是不是这样

    QRect widgetRect = ui->lineEdit->geometry();

    QPoint mousePos = ui->lineEdit->mapFromGlobal(QCursor::pos());

    if(widgetRectcontains(mousePos) )

    {

        //do stuff

    }

这个是用什么语言来实现,不同的语言实现的思路差不多,

就是用定位识别函数来识别 x,y而已,

这个要是java的话要好好看看帮助文档了;

你去csdn 或 51cto 求助效率高点;

以上就是关于qt有两个lineedit,如何获取光标所在全部的内容,包括:qt有两个lineedit,如何获取光标所在、我用Qt 画了一个地图,想要在状态栏显示鼠标坐标,我遇到的问题是,坐标不能随mouseMoveEvent函数实时刷新、QT Qtablewidget数组,鼠标双击获取行与列应该怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10182377.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存