在业务开始时,线程自动向每个按钮发送clicked()信号,按钮接收到该信号后,执行该信号,从而模拟人单击按钮,但整个过程按钮不能接收键盘鼠标事件,防止人干扰线程自动模拟按钮的执行。首先想到的是调用按钮的setEnable(false)函数,这样确实可以使按钮不接收键盘鼠标消息了为实现鼠标移上按钮时,光(鼠)标样式发生变化,需要重载public bool eventFilter方法还有另一种设置图标和文字的方法网上还、还、有另一种设置按钮图标的办法QT下执行程序的图标设置还没有一种跨平台的解决方案,这里介绍的时windows平台下的方法。
首先当然要准备一个ico图标文件(假定为exeico),将其复制到工程目录当中(pro文件所在的目录)。
然后在QT Creator中Ctrl+N或 File - New File or Project,选择General中的Text File,名称填写为rc文件(如exeIconrc),在里面只用写一行: 这里arg()里的参数分别用来填充%1和%2处的内容。其中x()和y()分别用来返回鼠标光标所在位置的x和y坐标值。这样,当鼠标在界面上点击时,按钮就会显示出当前鼠标的坐标值。除了鼠标按下事件,还有鼠标释放、双击、移动、滚轮等事件,其处理方式与这个例子是相似的。
鼠标移动到对话框状态变化那个带图标的按钮, 其实是个QToolButton, 可以设置前面图标,后面文字。
2使用QLabel 显示
m_pStandardLabel = new QLabel(this);
QPixmap pixmap(qApp->applicationDirPath() + "/scoreStandardpng");
m_pStandardLabel->setPixmap(pixmap);
m_pStandardLabel->resize(619, 471);
m_pStandardLabel->hide();
3安装事件过滤器(需要给QToolButton 和显示的QLabel都要安装)
ui->scoreStandardBtn->installEventFilter(this);
m_pStandardLabel->installEventFilter(this);
4重写事件过滤器
Qt控件先处于隐藏状态,经按键或动作,再显示出来具体,下面举个具体例子:
1、先设定分别叫做widgetDown, widgetUp的窗口,先隐藏widgetUp。
2、我们靠鼠标悬停移动来显示隐藏区域。
3、当鼠标移到widgetDown时,显示widgetUp。
4、当鼠标从widgetDown和widgetUp移开时widgetUp隐藏。
qt设置鼠标选中当前窗口方法如下
1设置按钮焦点。加入下面语句则使焦点在设定的button1按钮上,此时按下space空格键可关闭当前窗口。
ui->button1->setFocus();
2显示默认选中状态。只加入这条语句,则button1会显示选中状态,但是敲空格键没有反应,不会关闭窗口。
ui->button1->setDefault(1);
3显示选中状态并且按回车会关闭窗口。这里只需把1和2中的语句都添加上即可,按空格键也可关闭窗口,这个功能比较常见,使用软件出现提示框经常是显示选中确定或取消,
第一个问题
如果编译时出现 collect2: ld returned 1 exit status 这种错误,说明当前工程之中有一个已经编译好了的程序在运行,你需要关闭该程序。重新ctrl+R 一次。
第二个问题
从你的编译信息来看,主要需要注意下面这一句
debug/moc_widgeto:D:\QT\myexerise\ngui-build-desktop/debug/moc_widgetcpp:72: undefined reference to `Widget::on_pushButton_clicked()'
这一句编译信息其实是说 Widget::on_pushButton_clicked() 这个槽函数未定义或者未实现,你需要定义并实现on_pushButton_clicked() 这个槽函数。
以上就是关于qt按钮不关联光标全部的内容,包括:qt按钮不关联光标、qt鼠标移动到对话框状态变化的原因、Qt初学者,使用QtCreator,请教如何能使控件先处于隐藏状态,经按键或动作,再显示出来主要是如何隐藏等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)