我擦, 你这要能写进去才怪呢。
你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类的私有变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)