程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了QT C++ 最后创建的 QPushButton 是唯一处理鼠标点击事件的 QPushButton大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决QT C++ 最后创建的 QPushButton 是唯一处理鼠标点击事件的 QPushButton?

开发过程中遇到QT C++ 最后创建的 QPushButton 是唯一处理鼠标点击事件的 QPushButton的问题如何解决?下面主要结合日常开发的经验,给出你关于QT C++ 最后创建的 QPushButton 是唯一处理鼠标点击事件的 QPushButton的解决方法建议,希望对你解决QT C++ 最后创建的 QPushButton 是唯一处理鼠标点击事件的 QPushButton有所启发或帮助;

我编写了一个 C++ QT 测试应用程序来在主窗口上放置 4 个 QPushbutton(QuitBtn1、QuitBtn2、QuitBtn3、QuitBtn4)。最后创建的 QPushbutton QuitBtn4 是唯一一个处理鼠标点击事件的 QPushbutton。其他三个 QPushbutton 不响应它们的鼠标点击事件。

我需要做什么才能让所有 QPushbutton 响应它们的鼠标点击事件?

我的代码如下。

最终的应用程序将有一个背景图像,上面有按钮。按钮的位置不允许我使用 QLayout 小部件。我使用 setGeometry() 使用绝对定位。

我没有使用 QT Creator 或 QT Designer。

谢谢。

F

解决方法

即使您从 QWidget 派生 MyButton,它也不会使 MyButton 成为合适的小部件。为此,应在头文件中声明 MyButton,该头文件将传递到 moc 以获取必要的详细信息,例如元信息等。然后,MyButton 还需要一个 Q_OBjeCT 声明。
这里最简单的解决方法是更改​​以下行:

auto *myBtn = new QPushButton(str,parent);

通过传递 parent 而不是 this,您可以正确连接隐藏在 QApplication 中的 QObjects 和按钮。

如上所述,您可以省略 QWidget 部分,使 MyButton 成为一个简单的 C++ 类。

大佬总结

以上是大佬教程为你收集整理的QT C++ 最后创建的 QPushButton 是唯一处理鼠标点击事件的 QPushButton全部内容,希望文章能够帮你解决QT C++ 最后创建的 QPushButton 是唯一处理鼠标点击事件的 QPushButton所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。