• 11820阅读
  • 9回复

在窗体上按回车,为什么默认按钮没有响应? [复制链接]

上一主题 下一主题
离线sflute
 
只看楼主 倒序阅读 楼主  发表于: 2007-11-15
— 本帖被 XChinux 执行加亮操作(2007-12-07) —
把一个按钮设置成默认的,理论上应该是在窗体上按回车,会执行默认按钮的代码,可是不论是用Designer还是直接写代码将按钮设置成默认,按回车的时候都没有反应,不知各位是否遇到这种问题。我用的是Windows2000 + Qt4.3.2 + eclipse 3.2。
离线youngst

只看该作者 1楼 发表于: 2007-11-15
按空格键也不行吗?
离线sflute
只看该作者 2楼 发表于: 2007-11-15
如果把焦点移到按钮上,空格和回车当然都可以。可是默认按钮应该是不论按钮是否处于焦点上,都应该能响应回车呀。
离线sflute
只看该作者 3楼 发表于: 2007-11-20


界面如上。关键代码:
窗体类构造函数添加:
defButton::defButton(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
    ui.pushButton->setDefault(true);
}
按钮响应函数:
void defButton::on_pushButton_clicked()
{
    QMessageBox::critical(this, "test", "OK!");
}

编译运行后,单击按钮会弹出提示窗口,但是当焦点处于lineEdit中时,按键盘回车却没有反应。如何让按钮响应回车呢?
离线suntongo

只看该作者 4楼 发表于: 2007-11-21
将那个lineEdit的acceptReturn属性设为True即可。
叫我神童哥,不要叫哥哥或者大哥什么的.
离线dinghwy

只看该作者 5楼 发表于: 2007-11-21
空格吧 好像QT默认的时候空格键
离线米饭拌面

只看该作者 6楼 发表于: 2007-12-04
引用第3楼sflute于2007-11-20 10:16发表的  :
[图片]
界面如上。关键代码:
窗体类构造函数添加:
defButton::defButton(QWidget *parent)
.......

把这句加上试试
ui.pushButton->setAutoDefault(TRUE);
QQ:32336134
离线米饭拌面

只看该作者 7楼 发表于: 2007-12-04
加上句 
setAutoDefault(TRUE)
试试
QQ:32336134
离线sflute
只看该作者 8楼 发表于: 2007-12-18
好像还是不行哦~~
离线xiaoxianlg
只看该作者 9楼 发表于: 2012-05-29
哥来回答你,你的基类为QWidget。。。这个不好。你把基类换成QDialog就OK了!
快速回复
限100 字节
 
上一个 下一个