如何实现按下某按键时触发信号

liyuanhe211 2013-03-02 01:15:57
如设计一个做选择题的程序,窗口内只有QLabel,如何实现按下某一按键时触发信号,并将与按键相关的信息传给特定的槽
...全文
517 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyuanhe211 2013-03-05
  • 打赏
  • 举报
回复
引用 5 楼 yuan8222 的回复:
我也不知道怎么回复了,这只要走进Qt最起码都得知道信号/槽了啊 引用 1 楼 openXMPP 的回复:这个。。。太基础了吧 我都不知道怎么回复了
我不是说按下某个PushButton~~Widget里可以没有任何其他对象~~是按下某个键盘按键~~该用哪个对象的什么槽呢?还是要使用键盘事件?
liyuanhe211 2013-03-05
  • 打赏
  • 举报
回复
引用 4 楼 fsx92 的回复:
你只要随便看点qt的教材就能知道。不要一有问题就拿出来问,第一,你失去了学习和思考的机会;第二,浪费了别人的时间。
我不是说按下某个PushButton~~是按下某个键盘按键~~该用哪个对象的什么槽呢?还是要使用键盘事件?
雲天之巔 2013-03-05
  • 打赏
  • 举报
回复
引用 7 楼 liyuanhe211 的回复:
引用 5 楼 yuan8222 的回复:我也不知道怎么回复了,这只要走进Qt最起码都得知道信号/槽了啊 引用 1 楼 openXMPP 的回复:这个。。。太基础了吧 我都不知道怎么回复了 我不是说按下某个PushButton~~Widget里可以没有任何其他对象~~是按下某个键盘按键~~该用哪个对象的什么槽呢?还是要使用键盘事件?
具我多年的经验,这个必须要使用键盘事件,或者安装事件处理器 事件处理器麻烦死了 所以还是使用键盘事件好了
嵌入式农民工 2013-03-05
  • 打赏
  • 举报
回复
重写你的键盘事件函数。 类似下面这样的代码: void DisplayLabel::keyPressEvent(QKeyEvent *ev) { if (!_isAvailable) return; if (ev->key() == Qt::Key_Escape) this->close(); else if (ev->key() == Qt::Key_Right) { if (count > 0) m_grade++; this->display(); } else if (ev->key() == Qt::Key_Return) this->display(); }
子曰过 2013-03-04
  • 打赏
  • 举报
回复
connect(ui->IDC_BTN_GENGIN, SIGNAL(clicked()), this, SLOT(OnBnClickedBtnBengin())); IDC_BTN_GENGIN是控件名,OnBnClickedBtnBengin()是槽函数 类里的定义: private slots: void OnBnClickedBtnBengin()
__阿飞__ 2013-03-04
  • 打赏
  • 举报
回复
我也不知道怎么回复了,这只要走进Qt最起码都得知道信号/槽了啊
引用 1 楼 openXMPP 的回复:
这个。。。太基础了吧 我都不知道怎么回复了
嵌入式农民工 2013-03-04
  • 打赏
  • 举报
回复
你只要随便看点qt的教材就能知道。不要一有问题就拿出来问,第一,你失去了学习和思考的机会;第二,浪费了别人的时间。
  • 打赏
  • 举报
回复
connect(XXX, SIGNAL(triggered(), XXXX, SLOT()); 可以在槽函数中通过sender()获得发送的对象
乔巴好萌 2013-03-02
  • 打赏
  • 举报
回复
这个。。。太基础了吧 我都不知道怎么回复了
TM DP系列LED光源控制器使用说明书 奥普特自动化科技有限公司 OPTIC MACHINE VISION TECH.CO,.LTD. 2007年7月修订 公司地址:中国广东省东莞市长安镇乌沙牌坊口怡丰商业大厦4F 公司网址:www.optmv.com 电话:0769-86068808 传真:0769-81606698 版权所有 本手册中所提及的其它软硬件产品的商标与名称,都属于相应公司所有。 本手册的版权属于东莞市奥普特自动化科技有限公司所有。未得到本公司的正式许可,任何组织或个人均不得以任何手段和形式对本手册内容进行复制或传播。本手册的内容若有任何修改,恕不另行通知。 注意事项: 警告 本产品外接220VAC,在插拨电源,请保证控制器的电源开关是关闭状态,以防触电。 在使用本产品前,请详读此说明书;使用本产品,请按照本说明书中的操作进行。 出现非正常情况,请致电我司,请勿自己对产品进行拆装。 请保证本产品的良好接地,以防触电。 请勿直视光源发出的光线,以防对眼睛造成损伤。 目录 第一章 产品介绍 3 概述 3 型号分类型号 3 性能参数 3 第二章 使用方法 4 面板说明 4 接线 6 第三章 手动操作 7 亮度设置 7 通道开关设置 7 关闭输出 7 打开输出 7 第四章 演示程序 8 第五章 触发功能 9 第六章 通信协议 10 硬件规范 10 数据格式(帧格式) 10 第七章 附录 13 机械参数 13 第一章 产品介绍 概述 首先感谢您选用OPT的产品。DP系列LED光源亮度控制器,是一款可编程数字控制器。其具有以下几种功能:255级亮度调节功能(标准型通道最多4路,每一路亮度单独可控)、计算机通信功能(RS232接口)、触发功能(软件触发和硬件触发均可)。 型号分类型号 型 号 串口控制方式 通 道 外部触发 控制光源类型 DP1024-1 yes 1 Yes 24V光源 DP1024-2 yes 2 Yes 24V光源 DP1024-3 yes 3 Yes 24V光源 DP1024-4 yes 4 Yes 24V光源 性能参数 项 目 参 数 说 明 LED电源输出电压 24V 总功率最大可达45W 亮度可调级别 255级 外部触发输入 5V输入 触发间 <10us 外部触发频率 <1/T 由频闪间决定:如T=1ms,则外部触发频率最大可达1K。 RS-232通讯波特率 9600bps 为用户开放通讯协议 工作环境温度 0~60oC 单路输出 1A 注意:4路总输出不超过1.8A 电 源 100~240VAC 1.5A 宽电压输入 功 耗 <3W 外型尺寸 165mm×105mm×95mm 重 量 0.85kg 注意:控制器中的寄存器寿命为10万次。使用寿命到期后,寄存器便不再具有数据储存的功能(重启后,并不恢复为上次关机的值)。 第二章 使用方法 面板说明 操作面板三按键输入,三位数码管显示输出,见下图: 图1 前面板 图2 后面板 界面 说明 备注 1 三位数码管显示输出 左起第一位为通道显示位,数值从1~4可调; 例:150表示第1通道亮度为50,注意,50是是十六进制表示的。 后两位为参数状态位,以十六进制表示,数值从00~FF可调(对应十进制0~255)。 2 信号信号灯分别一一对应每路通道,信号灯的状态有两种,为亮和灭,亮表示此通道处于打开状态,灭表示此通道处于关闭状态 当外部接入触发信号,或使用频闪功能信号灯将和光源同步进行频闪,即一亮一灭。此就可以通过观察信号灯的状态得知光源的工作状态。 3 三按键输入 左起第一位按键(S)为选择键。可以切换数码管当前位。 左起第二位按键(+)为参数加,每按1次,数码管当前位加1,直到最大; 左起第三位按键(-)为参数减,每按1次,数码管当前位减1,直到最小。 注: 1 当参数选择位数值为“00”,再按一次参数减按键,则参数选择位将变为“--”,此对应的通道被关闭,无电压输出。 2 任一通道的参数状态位的数值在00~FF范围内信号灯等处于亮的状态,通道被关闭信号灯状态为灭。 3 每次接通电源后打开控制器,数码管显示输出为上一次关闭控制器前的状态,如上一次关闭控制器前的显示输出“368”,本次打开显示输出也为“368”。 接线 图3 接线图 步骤 1 将光源与控制器连接好(参考图3) 步骤 2 如果需要进行外部触发,请将外部触发信号源与控制器连接好(参考图3) 步骤 3 接入电源(220VAC),把红色开关按钮“-”按下,“○”凸起,指示灯亮,表示已上电。 步骤 4 如果需要用计算机对光源亮度进行控制,请关机的状态下 用RS232数据线将PC和控制器接好,然后用我司提供的Demo程序或贵公司自己编写的程序进行控制即可。在用串口方式进行操作,仍然可用手动的方式对各通道的参数进行设置,即上位机和控制器都可对参数进行设置,而不需要进行模式转换。Demo程序介绍请参考第四章 步骤 5 如需要用到频闪功能,请参照第五章 说明操作。同样,在使用频闪功能,上位机和控制器仍然可对参数进行设置,而不需要进行模式转换,操作简单、方便 第三章 手动操作 亮度设置 每次接通电源后打开控制器,数码管显示输出为上一次关闭控制器前的状态,如上一次关闭控制器前的显示输出“368”,本次打开显示输出也为“368”。按选择键S,数码管中通道显示位“3”开始闪烁,按功能键+和-,便可对通道进行选择。通道选择确定后,按S键,数码管中参数状态位的高位“6”开始闪烁,按功能键+和-,便可对其进行选择,范围从0~F,光源亮度也随之变化;同理再次按S键,可对参数状态位的低位进行选择,范围同样从0~F。以上动作完成后,按S键,对你的设置进行保存,数码管也不再闪烁,如还需要设置,则按S键,重新进行以上操作。 通道开关设置 关闭输出 步骤 1 选择需要关闭的通道。 步骤 2 用“-”按键将亮度值设为00,此,再按一次“-”按键,则参数选择位将变为“--”,此对应的通道被关闭,无电压输出。 例:数码管显示输出为“200”(2通道的信号灯亮),再按一次参数减按键,则变为“2--”(2通道的信号灯灭),此2通道被关闭。 打开输出 步骤 1 选择需要打开的通道。相应的亮度显示为“--”。 步骤 2 按“+”按键,则对应通道打开,(对应通道的信号灯亮), 步骤 3 调整对应通道的亮度值至合适的值 第四章 演示程序 图4 Demo界面 串口选择:选择控制器所连接的通信串口。 功能选择:选择执行何种功能。 通道选择:选择光源的通道。 数值选择:选择光源的亮度等级。 执行键:执行相应的操作(点击执行键,上位机会根据功能选择、通道选择和数值选择的相应设置向控制器发送命令)。 退出键:退出演示程序。 状态栏:上位机和控制器通信的状态。 滑块和亮度调节:同一作用,调节光源的亮度。 通道开关:控制某一通道的关和开。 第五章 触发功能 外部触发: 外部触发的条件是,对TR端口输入TTL高电平,光源灭,输入TTL低电平,光源亮。通过控制TTL电平的高低,就可以控制光源的频闪周期。 外部端子 控制器内部 图5 触发端接线图 软件触发: 用软件实现触发功能,即使用串口对通道进行控制,使通道按照做好的设定打开和关闭,以此控制光源频闪。请参照第五章 说明操作。 第六章 通信协议 硬件规范 波特率 9600 bps 数据长度 8 bits 停止位 1 bit 奇偶校验 无 数据格式(帧格式) 1字节 1字节 1字节 3字节 2字节 特征字 命令字 通道字 数据 异或和校验字 注: 所有通讯字节都采用ASCII代码 特征字 = $ 命令字 = 1,2,3,4 1: 打开对应通道电源 2: 关闭对应通道电源 3: 设置对应通道电源参数 4: 读出对应通道电源参数 对于第1,2,3项接收正确返回特征字$,接收错误返回&。 对于第4项接收正确返回对应通道的电源设置参数(返回格式跟发送格式相同),接收错误返回&。 通道字 = 1,2,3,4。分别代表4个输出通道。 数据 = 0XX(XX=00~FF内的任一数值),对应通道电源的设置参数,高位在前,低位在后。 异或和校验字 = 除校验字外的(从特征字-数据)异或校验和,校验和的高半字节ASCII码在前,低半字节ASCII码在后。 例:将第1通道亮度设为50,则以ASCII码向下写“$3103217” 异或校验字运算过程如下: 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 3 51 33 0011 0011 通道字 1 49 31 0011 0001 数据 0 48 30 0011 0000 3 51 33 0011 0011 2 50 32 0011 0010 异或和 0001 0111 异或校验字 1 7 注:打开对应通道电源、关闭对应通道电源和读出对应通道电源参数3个功能的异或校验字的运算过程中,数据的3个字节的值对异或结果无影响,保证格式为0XX(XX=00~FF内的任一数值)即可。 以下为若干组实验数据,若用户自行编写Demo程序,可以下列数据进行对比测试 关闭2通道:$2206416 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 2 50 32 0011 0010 通道字 2 50 32 0011 0010 数据 0 48 30 0011 0000 6 54 36 0011 0110 4 52 34 0011 0100 异或和 0001 0110 异或校验字 1 6 打开2通道:$1206415 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 1 49 31 0011 0001 通道字 2 50 32 0011 0010 数据 0 48 30 0011 0000 6 54 36 0011 0110 4 52 34 0011 0100 异或和 0001 0101 异或校验字 1 5 读取2通道电源参数:$4206410 字符串 ASCII码 ASCII码以十六进制表示 将高半字节和低半字节分别以8421码表示 特征字 $ 36 24 0010 0100 命令字 4 52 34 0011 0100 通道字 2 50 32 0011 0010 数据 0 48 30 0011 0000 6 54 36 0011 0110 4 52 34 0011 0100 异或和 0001 0000 异或校验字 1 0 第七章 附录 机械参数 前视图 侧视图 后视图
用面包板制作四人抢答器 四人智力竞赛抢答器 一、设计目的 1.掌握四人智力竞赛抢答器电路的设计、组装与调试方法。 2.熟悉数字集成电路的设计和使用方法。 二、设计任务与要求 1、设计任务 设计一台可供4名选手参加比赛的智力竞赛抢答器。 用数字显示抢答倒计间,由“9”倒计到“0”,无人抢答,蜂鸣器连续响1秒。选手抢答,数码显示选手组号,同蜂鸣器响1秒,倒计停止。 2、设计要求 (1)4名选手编号为:1,2,3,4。各有一个抢答按钮,按钮的编号与选手的编号对应,也分别为1,2,3,4。 (2)给主持人设置一个控制按钮,用来控制系统清零(抢答显示数码管灭灯)和抢答的开始。 (3)抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,该选手编号立即锁存,并在抢答显示器上显示该编号,同扬声器给出音响提示,封锁输入编码电路,禁止其他选手抢答。抢答选手的编号一直保持到主持人将系统清零为止。 (4)抢答器具有定(9秒)抢答的功能。当主持人按下开始按钮后,定器开始倒计,定显示器显示倒计间,若无人抢答,倒计结束,扬声器响,音响持续1秒。参赛选手在设定间(9秒)内抢答有效,抢答成功,扬声器响,音响持续1秒,同器停止倒计,抢答显示器上显示选手的编号,定显示器上显示剩余抢答间,并保持到主持人将系统清零为止。 (5)如果抢答定已到,却没有选手抢答,本次抢答无效。系统扬声器报警(音响持续1秒),并封锁输入编码电路,禁止选手超后抢答,间显示器显示0。 (6)可用石英晶体振荡器或者555定器产生频率为1Hz的脉冲信号,作为定计数器的CP信号。 三、四人智力竞赛抢答器电路原理及设计 1、设计方案 抢答器具有锁存、定、显示和报警功能。即当抢答开始后,选手抢答按动按钮,锁存器锁存相应的选手编码,同用LED数码管把选手的编码显示出来,并且开始抢答间的倒计,同用LED数码管把选手的所剩抢答间显示出来。而在选手按键抢答以及抢答间倒计候都有报警以提醒主持人和选手。抢答间设定9秒,报警响声持续1秒。接通电源后,主持人将开关拨到“清除”状态,抢答器处于禁止状态,编号显示器灭灯,定器显示设定间;主持人将开关置“开始”状态,宣布“开始”抢答器工作。定器倒计,扬声器给出声响提示。选手在定间内抢答,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定器停止、禁止二次抢答、定器显示剩余间。如果再次抢答必须由主持人再次操作“清除”和“开始”状态开关。 2、系统框图 当主持人宣布开始,定电路开始秒脉冲电路的作用而进行倒记,并通过译码器在显示器中显示。报警电路给出声音提示。当选手首先按某一开关键,可通过触发锁存电路被触发并锁存,在输出端产生相应的开关电平信息,同为防止其它开关随后触发而产生紊乱,最先产生的输出电平变化又反过来将触发电路锁定。然后在译码器中译码,将触发器输出的数据转换为数码管需要的逻辑状态。最后在显示电路中显示出所按键选手的号码。若有多个开关同按下,则在它们之间存在着随机竞争的问题,结果可能是它们中的任一个产生有效输出。如图1. 图1系统框图 3、方案比较 方案1:采用CD4511芯片作为抢答信号触发、锁存和译码输出。这样虽然比较简便,但实际在实现锁存功能比较繁琐难实现。 方案2:采用D触发器和译码器来完成抢答部分。虽然元件较多,但在实现锁存功能可以简单的实现。 经过对比两方案的优缺点,决定采用抢答信号锁存简单实现的方案2。然后利用软件Multisim来进行仿真调试,再进行逐步改进。 4、单元电路设计及元器件选择 (1)抢答电路 电路如图2所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁定74LS175的功能真值表即优先抢答者的编号,同译码显示电路显示选手编号;二是要使其他选手随后的按键操作无效。

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧