• 8009阅读
  • 10回复

关于符号&的用途(已解决) [复制链接]

上一主题 下一主题
离线wzsiatf
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-17
— 本帖被 XChinux 执行加亮操作(2010-11-18) —
关键词: 求助QT4&
最近刚刚开始看些程序,对于语句中label = new QLabel(tr("Find &what:"));的&符号很不理解,我试着去除这个符号,重新运行发现效果没有什么变化,那这个符号到底是什么作用呢?
[ 此帖被wzsiatf在2010-11-18 15:27重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2010-11-17
From manual:

On certain widgets, using '&' in front of a character will automatically create a mnemonic (a shortcut) for that character, e.g. "E&xit" will create the shortcut Alt+X (use '&&' to display an actual ampersand).
离线wzsiatf
只看该作者 2楼 发表于: 2010-11-17
回 1楼(dbzhang800) 的帖子
这个快捷键设置我知道,但是我这句话是一个label的显示为Find &what,根本不存在快捷键问题呀,我是新手.
离线dbzhang800

只看该作者 3楼 发表于: 2010-11-17
Re:回 1楼(dbzhang800) 的帖子
引用第2楼wzsiatf于2010-11-17 20:49发表的 回 1楼(dbzhang800) 的帖子 :
这个快捷键设置我知道,但是我这句话是一个label的显示为Find &what,根本不存在快捷键问题呀,我是新手.


1. 既然不存在快捷键问题,你在QLabel上用它做什么?

2. 你前面的帖子也没说不存在快捷键问题,而且QLabel确实可以用快捷键。具体去看 QLabel::setBuddy 的Manual

3. 多看Manual
离线roywillow

只看该作者 4楼 发表于: 2010-11-17
这个是一些ui编程的基本知识吧……
&后的英文字符会在按下alt后显示下划线,表明alt+这个字母是快捷键
菜单的那些什么“文件(F)”、“编辑(E)”不就是这种效果吗?
label的快捷键需要setBuddy后才有效果
比如label的buddy是个lineedit,按下快捷键后光标就跳到lineedit里面了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线wzsiatf
只看该作者 5楼 发表于: 2010-11-17
回 4楼(roywillow) 的帖子
相关程序在这
label = new QLabel(tr("Find &what:"));
    lineEdit = new QLineEdit;
    label->setBuddy(lineEdit);

    caseCheckBox = new QCheckBox(tr("Match &case"));
    backwardCheckBox = new QCheckBox(tr("Search &backward"));

    findButton = new QPushButton(tr("&Find"));
    findButton->setDefault(true);
    findButton->setEnabled(false);
运行结果如图,我的意思是,我把程序中的&去掉,运行结果还是这样,没有区别,那为什么还要加&?我是新手,刚刚开始学习Qt,十分感谢!
离线wzsiatf
只看该作者 6楼 发表于: 2010-11-17
回 4楼(roywillow) 的帖子
哦,我突然发现了,运行完程序按下Alt键,会在在&符号后的字母下面出现下划线,那这么做有什么用呢?引起注意?
离线wzsiatf
只看该作者 7楼 发表于: 2010-11-17
回 4楼(roywillow) 的帖子
哦,对不起,我刚开始没读懂你的意思,现在全明白了!非常感谢!
离线roywillow

只看该作者 8楼 发表于: 2010-11-17
当焦点在不是那个文本框的地方你按下alt+w看看有啥效果?
然后再试试alt+c、alt+b看看呢
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线wzsiatf
只看该作者 9楼 发表于: 2010-11-17
回 8楼(roywillow) 的帖子
恩,我明白了,是我没仔细看到下划线出来了!谢谢你!
顺便问一句,在这论坛里怎么加你为好友呢?
离线godkhpr
只看该作者 10楼 发表于: 2011-11-01
回 4楼(roywillow) 的帖子
那请问一下,我的电脑上加了&符号,如“&New”,为什么N没有显示下划线?非要按下Alt才能显示,但是有的电脑上不用按Alt也能看见,谢谢你
快速回复
限100 字节
 
上一个 下一个