• 9262阅读
  • 11回复

如何限定QLineEdit的值的范围? [复制链接]

上一主题 下一主题
离线wangvance
 

只看楼主 倒序阅读 楼主  发表于: 2010-08-10
— 本帖被 XChinux 执行加亮操作(2010-09-04) —
    如标题,在UI放慢SLIDER 可以用setrange,但lineedit 好像没这个内容,只有一个REGEXP,但这个是限定 输入的规定的 没有值。希望有大侠指教。
离线sillyball
只看该作者 1楼 发表于: 2010-08-10
lineedit本来就是任意字符输入
你可以用spinbox,更简单一些
离线xtfllbl

只看该作者 2楼 发表于: 2010-08-10
对输入的内容判断下。
上海欢迎您
离线dbzhang800

只看该作者 3楼 发表于: 2010-08-10
引用楼主wangvance于2010-08-10 15:20发表的 如何限定QLineEdit的值的范围? :
    如标题,在UI放慢SLIDER 可以用setrange,但lineedit 好像没这个内容,只有一个REGEXP,但这个是限定 输入的规定的 没有值。希望有大侠指教。


如果你坚持 QLineEdit,那么你应该去看 void QLineEdit::setValidator ( const QValidator * v )


如果你只是与数字打交道,应该考虑 QSpinBox 和 QDoubleSpinBox (如果你不喜欢它们带的按钮,直接隐藏便是)
离线wangvance

只看该作者 4楼 发表于: 2010-08-10
因为我需要把这个EDIT的值在赋值给LABEL(有上限,下限),而且这个值可能很大,用SPINBOX,来点击很麻烦。
离线wangvance

只看该作者 5楼 发表于: 2010-08-10
  版主,初学QT,如何判断啊。
离线dbzhang800

只看该作者 6楼 发表于: 2010-08-10
引用第4楼wangvance于2010-08-10 16:51发表的  :
因为我需要把这个EDIT的值在赋值给LABEL(有上限,下限),。

这个有什么关系? 你是说超出了 QSpinBox 或 QDoubleSpinBox 的表示范围(比如你用的 long long 或 long double)

引用第4楼wangvance于2010-08-10 16:51发表的  :
而且这个值可能很大,用SPINBOX,来点击很麻烦。


哪儿说的 SPINBOX 只能用来点击呢?只要将按钮隐藏,对用户来说它看上去和用起来和QLineEdit没任何区别


题外:如果用QLineEdit,请去看 QValidator
离线wangvance

只看该作者 7楼 发表于: 2010-08-11
多谢,我先看看,不懂再来问
离线wangvance

只看该作者 8楼 发表于: 2010-08-12
   看了一下,HELP文档,也了解一下。但是用下面的函数还是限制不住,依旧可以输入很大的值
display->setValidator(new QIntValidator(100, 999, display));
display是LINEEDIT,希望大侠指点!!!
离线dbzhang800

只看该作者 9楼 发表于: 2010-08-12
引用第8楼wangvance于2010-08-12 13:35发表的  :
   看了一下,HELP文档,也了解一下。但是用下面的函数还是限制不住,依旧可以输入很大的值
display->setValidator(new QIntValidator(100, 999, display));
display是LINEEDIT,希望大侠指点!!!

刚试了一下,我这儿一切正常

  1. import sys
  2. from PyQt4.QtCore import *
  3. from PyQt4.QtGui import *
  4. app = QApplication(sys.argv)
  5. edit = QLineEdit()
  6. edit.setValidator(QIntValidator(100, 999, edit))
  7. edit.show()
  8. sys.exit(app.exec_())

离线wangvance

只看该作者 10楼 发表于: 2010-08-13
我在试试吧,多谢了
离线wangvance

只看该作者 11楼 发表于: 2010-08-13
我知道了 这个是程序一开始就限定了,而我是中间过程才限定,所以不行,有没解决办法
快速回复
限100 字节
 
上一个 下一个