• 6614阅读
  • 8回复

[提问]求助:如何这样实现lineedit [复制链接]

上一主题 下一主题
离线lalale
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-28
我想实现这样的功能
在lineedit中 前面20个字节中显示的中文字体 在20字节后面显示的是密码 但是输密码的时候一定得是" * "表示
不知道这样的想法是否可以实现呢?
请求协助谢谢!
离线jdwx

只看该作者 1楼 发表于: 2011-05-28
前面用QLabel显示中文,QLineedit 属性echomode改为password
[ 此帖被jdwx在2011-05-28 13:17重新编辑 ]
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线lalale
只看该作者 2楼 发表于: 2011-05-28
中文和密码是放在同一个对话框里面的
所以我才纳闷该如何处理:
离线roywillow

只看该作者 3楼 发表于: 2011-05-28
还真是奇怪的要求啊
不过那个东西也就只是看上去像是一个文本框吧,尝试把一个label的parent设置为一个文本框然后看看能不能调节lineedit的缩进?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线tianye2856
只看该作者 4楼 发表于: 2011-05-28
可以继承QLineEdit类并且重新实现,实时检测用户输入的变化,如果输入为密码位的话则显示为“*”,同时记录下用户输入的密码。
离线XChinux

只看该作者 5楼 发表于: 2011-05-28
放一个QFrame,在QFrame上布局QHBoxLayout,里面添加一个QLabel,添加一个QLineEdit,通过CSS设置QLabel和QLineEdit的背景全透明,设置QFrame的背景为白色。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线liuxp1988

只看该作者 6楼 发表于: 2011-05-29
和5楼做法所见略同啊,呵呵。

代码:
frame = new QFrame(this);
        frame->setGeometry(QRect(120, 100, 161, 31));
        frame->setStyleSheet(QString::fromUtf8("QFrame {\n"
"    background-color: white;\n"
"}"));
        frame->setFrameShape(QFrame::Panel);
        frame->setFrameShadow(QFrame::Sunken);
        horizontalLayout = new QHBoxLayout(frame);
        label = new QLabel(frame);

        horizontalLayout->addWidget(label);

        lineEdit = new QLineEdit(frame);
        lineEdit->setStyleSheet(QString::fromUtf8("QLineEdit {\n"
"    border:none;\n"
"}\n"
"QLineEdit[echoMode=\"2\"] {\n"
"     lineedit-password-character: 42;\n"
"}"));
        lineEdit->setEchoMode(QLineEdit::Password);

        horizontalLayout->addWidget(lineEdit);
大功告成!
离线lalale
只看该作者 7楼 发表于: 2011-05-30
谢谢各位帮忙
问题已经成功解决 ^_^
用的是5楼的方法 嘿嘿
离线醉爱品茗
只看该作者 8楼 发表于: 2011-05-30
这个样子的哇
http://www.zuipin.cn/wulongcha/tieguanyin.html
快速回复
限100 字节
 
上一个 下一个