qt中文本光标的使用

qt中文本光标的使用,第1张

有时,我们需要通过qt中的按钮向文本编辑或者文本行编辑输入文字,比如

ui->textEdit->setText(str); 这时不会在文本中显示光标,因为按了按钮后qt就没有停留在文本编辑这个控件上了,用

就可以显示光标了,这时,光标会默认出现在文本开头处

可以获取光标,然后调用myCursorposition()函数可以获取光标的位置,返回值

是一个整数,比如,光标在第一个字符和第二个字符之间,返回1,以此类推。

接下来移动光标,比如:

也可以 myCursormovePosition(QTextCursor::Left,QTextCursor::MoveAnchor,3);

这样就可以一次移动3格了

movePosition()的第一个参数是确认移动方式,可以左右移动,也可以移到开头

等等,第二个参数一共有两种,如果是 QTextCursor::MoveAnchor ,那么就是简

单的移动光标,如果是 QTextCursor::KeepAnchor ,那么在移动光标的同时,选

中文本。最后用 ui->textEdit->setTextCursor(myCursor); 就可以设置你想要的文

本光标了。

如果你直接使用的ui文件,那么请使用ui指针来获取相关控件再进行 *** 作。

比如你的on_pushButton_2_clicked() 函数可能需要更正为下面这种形式

void logdlg::on_pushButton_2_clicked()

{

if(ui->uid->text()=="aaaaa")

{

ui->sta->setText("登陆成功");

}

}

ps:另外推荐一本Qt书籍《C++ GUI Qt4 编程 (第二版)》,你可以通过下面的链接进行下载。

>

1、可以通过buttontext判断点击的按钮,实际上除了使用buttontext这种方法来识别点击按钮之外。

2、QDialogButtonBox提供的方法来判断点击的按钮的方法,这个方法就是通过QDialogButtonBoxbutton方法。

我用的qt4+kdevelop开发,我来说一下步骤吧,供你参考:

(ps:qt3是可以建立 C++工程的,qt4只能做界面)

现在,我要建立一个对话框,对话框内只有一个按钮(pushButton),点击按钮会d出一个MessageBox步骤如下:

1、新建一个文件夹test3,打开designer制作好界面

2、在test3文件夹内添加3个文件,分别为test3h,test3cpp,maincpp,在test3h添加如下代码:

#ifndef TEST3_H

#define TEST3_H

#include <QtGui/QDialog>

#include <QStandardItemModel>

#include "ui_test3h"

class test : public QDialog

{

Q_OBJECT

public:

test(QWidget parent = 0);

~test();

private:

Ui_Dialog ui;

private slots:

void on_pushButton_clicked();

};

#endif

在test3cpp中添加如下代码:

#include "test3h"

#include <QLibrary>

#include <QMessageBox>

test::test(QWidget parent)

: QDialog(parent)

{

uisetupUi(this);

}

test::~test()

{

}

void test::on_pushButton_clicked()

{

QMessageBox::information(this,tr("hello"),tr("Mars"));

}

在maincpp中添加如下代码:

#include <QtGui>

#include <QApplication>

#include "test3h"

int main(int argc, char argv[])

{

QApplication app(argc,argv);

test dialog = new test;

dialog->show();

return appexec();

}

3、打开控制台,输入如下命令:qmake -project会生成一个test3pro的工程文件

4、打开kdevelop,选择project->import existing project,选中test3文件夹。

5、build->build project

6、运行吧

再说两句(ps:我承认我多嘴)

vc里面给一个按钮添加事件只需要通过双击按钮就可以了,但是这里不一样,通常情况下有两种方法。1、按照一定的命名规则为一个函数取名字,规则如下:on_name_singal,比如要为pushButton_2添加一个事件,只需要将相应函数命名为 on_pushButton_2_clicked();就可以了2、使用connect连接控件和相应的函数,比如上面的例子我们可以在构造函数里添加 connect(pushButton,SIGNAL()clicked(),this,SLOT(hahaha()));

(ps:先把on_pushButton_clicked()函数改名为hahaha)

也行。那么,我想你也应该明白代码写在那里了吧,就是在on_pushButton_clicked()函数里面。

我讲完了

其实你都有了widget接受pushbutton的signald出dialog的代码,你反过来在把dialog里面的pushbutton signal关联到widget的一个slot函数,不就能实现你要的效果了嘛。

以上就是关于qt中文本光标的使用全部的内容,包括:qt中文本光标的使用、我用QT写个对话框点击按钮在该窗口上的label sta上显示信息,出错,详情如下、qt怎样知道自己发送哪个按钮等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存