• 4606阅读
  • 4回复

问一个关于按钮的问题 [复制链接]

上一主题 下一主题
离线zww_9107
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-05
— 本帖被 jdwx 执行合并操作(2013-08-05) —
模拟一个界面界面里面有一个Button,当鼠标进入button时,这个按钮会变成两个,如图。我在按钮的enterEvent事件中创建新的QPushButton时,按钮不会显示Widget上,而是会重新弹出一个窗口。但是将方法写在Widget上的enterEvent事件中时,Widget的enterEvent确不响应。我在QPushButton的enterEvent中写的是                  this->setGemoetry(x1,y1,w,h);QPushButton *btn = new QPushButton;btn->setGeometry(x,y,w,h);btn->setIcon("xxxx.png");btn->show();在Widget中尝试的enterEvent是int mouse_x = QCursor::pos().x();int mouse_y = QCursor::pos().y();QPushButton *b = (QPushButton *)QApplication::widgetAt(mouse_x, mouse_y);if(b->objectName()=="tttt"){b->setGemoetry(x1,y1,w,h);QPushButton *btn = new QPushButton;btn->setGeometry(x,y,w,h);btn->setIcon("xxxx.png");btn->show();}求指点。
离线zww_9107

只看该作者 1楼 发表于: 2013-08-05
求教一个按钮的问题...
模拟一个界面界面里面有一个Button,当鼠标进入button时,这个按钮会变成两个,如图。
我在按钮的enterEvent事件中创建新的QPushButton时,按钮不会显示在Widget上,而是会重新弹出一个窗口。但是将方法写在Widget上的enterEvent事件中时,Widget的enterEvent确不响应。
我在QPushButton的enterEvent中写的是                  
this->setGemoetry(x1,y1,w,h);
QPushButton *btn = new QPushButton;
btn->setGeometry(x,y,w,h);
btn->setIcon("xxxx.png");
btn->show();
在Widget中尝试的enterEvent是
int mouse_x = QCursor::pos().x();
int mouse_y = QCursor::pos().y();
QPushButton *b = (QPushButton *)QApplication::widgetAt(mouse_x, mouse_y);
if(b->objectName()=="tttt")
{
b->setGemoetry(x1,y1,w,h);
QPushButton *btn = new QPushButton;
btn->setGeometry(x,y,w,h);
btn->setIcon("xxxx.png");
btn->show();}
求指点。

离线zww_9107

只看该作者 2楼 发表于: 2013-08-05
发错板块了
离线jdwx

只看该作者 3楼 发表于: 2013-08-05
回 2楼(zww_9107) 的帖子
最好是在button的enterEvent里发射一个信号,在button类外面处理这样的问题,在主窗口里增加一个槽,槽里new出新的button,parent为第一个button的parent,一般就是这么写:btn = new QPushButton(this);这个btn要声明为类变量。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线zww_9107

只看该作者 4楼 发表于: 2013-08-05
回 3楼(jdwx) 的帖子
谢谢,我自定义了一个信号,在enterEvent中发射后在Widger处理就好了...
快速回复
限100 字节
 
上一个 下一个