• 8172阅读
  • 12回复

[讨论]如何实现下面的界面 [复制链接]

上一主题 下一主题
离线jmchx16ww
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-07
这个界面是用设计师 编的,我想实现通过按钮能将数字输入到各个linetext中,不懂怎么识别 输入的》

[ 此帖被jmchx16ww在2011-05-08 22:09重新编辑 ]
离线hitler++

只看该作者 1楼 发表于: 2011-05-08
vs下直接点击按钮,自动生成代码,开始写按钮要做的事
不是vs插件就自己写个connect(按钮,信号,编辑框,糟)
离线jmchx16ww
只看该作者 2楼 发表于: 2011-05-08
不知道咋写呀?我没用啥vs,谁有编过相关界面,能不嫩提供一下源代码,给参考一下啊。
离线jmchx16ww
只看该作者 3楼 发表于: 2011-05-08
谁做过这种界面的,能不能贡献一下源代码呀,谢谢啦,很急。
离线xhybba

只看该作者 4楼 发表于: 2011-05-08
直接右键转到槽     ui->lineEdit->insert ("1");
离线jmchx16ww
只看该作者 5楼 发表于: 2011-05-08
回 4楼(xhybba) 的帖子
你呢只能实现向某一个linetext输入呀,我呢可有好几个呢
离线zllang

只看该作者 6楼 发表于: 2011-05-08
.你定个标志 ,确定当前是哪个输入框激活状态,再用insert
离线duduqq

只看该作者 7楼 发表于: 2011-05-09
在QT 在例子中的计算器就是你想要的东西吧
离线langzi

只看该作者 8楼 发表于: 2011-05-09
你把代码发上来才能明白嘛
离线wuweihuan
只看该作者 9楼 发表于: 2011-05-09
6楼正解
离线zheng501gf

只看该作者 10楼 发表于: 2011-05-10
感觉你可以使用鼠标焦点的位置的来判断,另外好像有这方面的例子(计算器,软件键盘)!
你可以把输入的数字暂时保存到临时变量内,等你输入结束后,再根据焦点位置把数据输入到你指定的位置。
[ 此帖被zheng501gf在2011-05-10 10:05重新编辑 ]
离线cutemmll
只看该作者 11楼 发表于: 2011-05-10
首先你需要知道右侧点击的是哪一个按键。其次是你需要知道当前是哪一个lineedit获取到焦点。

关于第一个问题,你可以用下面的方式来获取当前是点击的哪一个按键,来确定要插入什么数据到lineedit中:

关联你所有按键的released ()信号到一个槽里面。假设你的槽的名字叫 slotReleased ()

则有代码如下,从0到9 的按键都应该按下面的方式进行信号槽的连接
connect(ui->pushButton_0,SIGNAL(released ()),this,SLOT(slotReleased ()));
......

然后是slotReleased()槽的实现,在槽内部应获取是哪一个按键发出的信号,并获取按键上的文本内容,然后将内容插入到lineedit中

基本上就如同下面代码
void MainWindow::slotReleased()
{
    //将信号发送给强制转换成QPushButton类型
    QPushButton* p_pushBtn = qobject_cast<QPushButton*>(QObject::sender());
    //获取到当前是哪一个lineEdit获取到键盘焦点事件,并插入按键上的文本
    QLineEdit* p_editer = qobject_cast<QLineEdit*>(focusWidget());
    p_editer->insert(p_pushBtn->text());
}

上面是比较简单的写法,可能会存在问题,并导致程序crash,不过基本上这样是最简单的实现方式。至于你的清除按键,则可以单独关联到另一个槽里面,主要用来清空当前获取到焦点事件的lineedit中的内容
[ 此帖被cutemmll在2011-05-10 10:59重新编辑 ]
c------------enjoy qt & enjoy life-----------++
离线米饭拌面

只看该作者 12楼 发表于: 2011-05-13
你会写一个lineedit和右边数字输入的以后再加多个的吧,
QQ:32336134
快速回复
限100 字节
 
上一个 下一个