你能把问题说仔细一点吗?谢谢。 追问: 我弄错了,是一个QLineEdit。当鼠标点击QLineEdit时,输入一串字符。当光标移出QLineEdit后判断,如果QLineEdit中的字符串的最后一个字符是“”那么就QLineEdit控件内容中自动加上字符"0" 回答: 那你重新提问,把问题提问在QLineEdit范围里,你提问在QQ堂这没人回答的。采纳下下我,谢谢了。
在业务开始时,线程自动向每个按钮发送clicked()信号,按钮接收到该信号后,执行该信号,从而模拟人单击按钮,但整个过程按钮不能接收键盘鼠标事件,防止人干扰线程自动模拟按钮的执行。首先想到的是调用按钮的setEnable(false)函数,这样确实可以使按钮不接收键盘鼠标消息了为实现鼠标移上按钮时,光(鼠)标样式发生变化,需要重载public bool eventFilter方法还有另一种设置图标和文字的方法网上还、还、有另一种设置按钮图标的办法QT下执行程序的图标设置还没有一种跨平台的解决方案,这里介绍的时windows平台下的方法。
首先当然要准备一个ico图标文件(假定为exeico),将其复制到工程目录当中(pro文件所在的目录)。
然后在QT Creator中Ctrl+N或 File - New File or Project,选择General中的Text File,名称填写为rc文件(如exeIconrc),在里面只用写一行: 这里arg()里的参数分别用来填充%1和%2处的内容。其中x()和y()分别用来返回鼠标光标所在位置的x和y坐标值。这样,当鼠标在界面上点击时,按钮就会显示出当前鼠标的坐标值。除了鼠标按下事件,还有鼠标释放、双击、移动、滚轮等事件,其处理方式与这个例子是相似的。
按照我的理解,假设有一个编辑控件,一个button,你点击button后,会在编辑控件中显示字符,如果是的话,那就如下
先假设你点击button会输出12345
class ourbutton : public QPushButton
{
Q_OBJECT
public:
ourbutton(QWidget parent = 0) : QPushButton(parent)
{
connect(this, SIGNAL(clicked()),
this, SLOT(getText()));
}
signals:
void sendText(const QString &text);
private slots:
void getText() { emit sendText(tr("12345")) }
};
QLineEdit edit = new QLineEdit();
ourbutton button = new ourbutton();
connect(button, SIGNAL(sendText(const QString &text)),
);
这个用函数的话比较麻烦,但是我实现过了,QLineEdit有2个函数,第一设置光标位置,第二读取当前光标位置。你要在每次 *** 作前都要读取当前光标位置,然后再进行+1 或者-1,零界点你自己考虑,大概的思路是这样的
#include "widgeth"
#include "ui_widgeth"
#include <QDebug>
Widget::Widget(QWidget parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()//+
{
int i = ui->lineEdit->cursorPosition();
qDebug() << i;
ui->lineEdit->setCursorPosition(++i);
ui->pushButton->setFocusPolicy(Qt::NoFocus);
ui->pushButton_2->setFocusPolicy(Qt::NoFocus);
ui->lineEdit->setFocus();
}
void Widget::on_pushButton_2_clicked()//-
{
int i = ui->lineEdit->cursorPosition();
qDebug() << i;
ui->lineEdit->setCursorPosition(--i);
ui->pushButton->setFocusPolicy(Qt::NoFocus);
ui->pushButton_2->setFocusPolicy(Qt::NoFocus);
ui->lineEdit->setFocus();
}
刚给你试了下可以的,还要就是注意焦点,让QLineEdit一直获得焦点,代码都给你了,分多点吧
Qt自带的mouseMoveEvent ( QMouseEvent e )函数,可以获得到当前的坐标位置,你可以把矩形的原点设置为对话框的原点,矩形大小是已知的,这就可以验证出鼠标是否在矩形内,最后在mouseMoveEvent ( QMouseEvent e )中,把鼠标设置可用,这样就可以了
你可以在MouseEvent或是HoverEvent中实现
自己设定一个边界矩形,或是区域也行(QRect/QRegion)
判定当前鼠标的位置是否在该矩形内即可,用contains( const QPoint& )
当在边界的时候就设置鼠标cursor的坐标不变即可
以上就是关于Qt下怎么判断判断一个鼠标的光标是否从一个QPushButton上移开。全部的内容,包括:Qt下怎么判断判断一个鼠标的光标是否从一个QPushButton上移开。、qt按钮不关联光标、如何让qt实现在光标出输出字符等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)