【发布时间】:2013-02-21 12:59:36
【问题描述】:
我想使用 QLineEdit 来获取我想要使用的整数值。我的问题是我想等到输入文本。如果我可以在开始时提供一个默认文本,在单击 QEditLine 后会自动删除它,那也很好,例如:
对于第一点,我尝试了这个,但它没有用:
......
int num =0;
QLineEdit *qtest = new QLineEdit();
........
mailayout->addWiget(qtest);// when I use the while loop the QLineEdit won't be added !!
while(num ==0 ){
num = qtest->text.toInt();
}
.............
程序停留在while循环中,有什么想法我做错了吗?
【问题讨论】:
-
从您发布的代码来看,“num”永远不会是“0”以外的任何东西,因此循环自然会无限循环。你必须做一些事情来使“num”不同,比如从 QLineEdit 中解析出一个数字。干杯!
-
num 会在循环中改变它的值 ??
-
@Engine 不,它不会,因为
QLineEdit依赖于事件队列来输入文本,但事件队列永远无法处理,因为执行被卡在了 while循环。 -
@Engine 您需要阅读信号和插槽以及事件循环。否则你将无法理解如何为 Qt 编程。
-
您只需要使用
editingFinished()信号