QT如何获取文本框中输入的内容

QT如何获取文本框中输入的内容,第1张

我擦, 你这要能写进去才怪呢。

你obtainputname函数里的一个临时变量想要在这个函数外面使用??

// FILE fp;

// string strname;

// fp=fopen("Macrotestini","w+");

connect(lineEdit,SIGNAL(editingFinished()),this,SLOT(obtainputname()));

// const char str1=strnamec_str();

// fprintf(fp, "%s\n", str1);

void obtainputname()

{

QString strname = lineEdit->text();

FILE fp;

fp=fopen("Macrotestini","w+");

fprintf(fp, "%s\n", strnametoLatin1()data());

fclose(fp);

}

重新实现一下QLineEdit的keypressevent事件,然后捕获输入的按键,进行设置,具体可看此处。

void HotkeyLineEdit::keyPressEvent(QKeyEvent event)

{

//捕获输入的键, 除了A-Z以及Ctrl/Shift,其它都无视

if (event->key() >= Qt::Key_A && event->key() <= Qt::Key_Z)

{

QChar strKey = (QChar)event->key();

 

if (event->modifiers() == Qt::ControlModifier)

{

this->setText(QString("CTRL+%0")arg(strKey));

}

else if (event->modifiers() == Qt::ShiftModifier)

{

this->setText(QString("SHIFT+%0")arg(strKey));

}

else if (event->modifiers() == (Qt::ShiftModifier | Qt::ControlModifier))

{

this->setText(QString("CTRL+SHIFT+%0")arg(strKey));

}

}

}

原文链接:>

我这边给你举一个例子吧,假如你的程序的A类中有一个QLineEdit,

然后你想从B类去给这个QLineEdit设定内容或者获取这个QLineEdit的内容

C/C++ code

Ah:

public:

void setLineEditValue(const QString& value);

QString getLineEditValue();

Acpp:

void A::setLineEditValue(const QString& value)

{

LineEdit->setText(value);

}

QString A::getLineEditValue()

{

return LineEdit->text();

}

Bcpp

A a = new A(this);

a->setLineEditValue("Hello Qt!!!);

QString string;

string = a->getLineEditValue();

这样在B类中就可以通过A类的对象来访问自身的私有变量了

你试试用QString str(c);

或QString str=QString::fromLatin1(c);

或QString str=QString::fromUtf8(c);

看看哪个好用,然后调用QLineEdit的setText(str)方法显示

1connect(&button,SIGNAL(clicked()),this,SLOT(copy())

试试。

2

connect(sender, signal, receiver, slot)

即当sender的signal被触发时,由receiver的slot来响应。

如果你重载了QLineEdit:

class QMyLineEdit : public QLineEdit {

//

}

并重写了copy方法:

void QMyLineEdit::copy()

{

QString str;

str = editline->text();

editline2->setText(str);

QLineEdit::copy();

}

然后:

QMyLineEdit editline2;

那么,你的代码是可行的。

3QLineEdit::copy [slot]的默认行为是把编辑框中的文本传递到剪贴板中的。如果这里的copy只是根据第一个编辑框的内容来设置第二个编辑框的内容,建议换成其它函数名。

楼上说的不错。

本人用的是qt45+vs2008,qt38也在同步搞。现在做的就是移植。

首先这里用textEdited这个信号没有问题,当然用textChanged也行。这2个就是参数的含义不同。还有发出的条件有点不一样。

你这里connect的信号名字应该小写吧,后面参数也不对

connect(uilineEdit,SIGNAL(textEdited(const QString &)),this,SLOT(setEnablebutton()));

这个信号就是在QlineEdit里面的内容被编辑时发出。

其实你应该考虑使用信号的参数来做判断会更好,也更Qt

槽修改如下:

void dialogtest::setEnablebutton(const QString & text)

{

if(!textisEmpty())

uipushButton->setEnabled(true);

else

uipushButton->setEnabled(false);

}

QLineEdit

{

background-color: rgba(255, 255, 255, 0%);

border:1px solid #b9babb;

}

设置调节背景的透明度就好。

以上就是关于QT如何获取文本框中输入的内容全部的内容,包括:QT如何获取文本框中输入的内容、qt的QLineEdit如何显示输入快捷键的键名,比如同时按ctrl和c,在QLineEdit里面显示 ctrl+c、Qt中A种的槽函数,怎样就可以调用B类的私有变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9510980.html

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

发表评论

登录后才能评论

评论列表(0条)

保存