如何在 PyQt 中编写图像按钮?
我正在尝试做简单的音频播放器,但我想使用图像(图标)作为按钮。
Im trying to do simple audio player, but I want use a image(icon) as a pushbutton.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我正在尝试做简单的音频播放器,但我想使用图像(图标)作为按钮。
Im trying to do simple audio player, but I want use a image(icon) as a pushbutton.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
您可以子类化 QAbstractButton 并制作您自己的按钮。这是一个基本的简单示例:
这不是一个超级简单的方法,但它为您提供了很多控制权。您可以添加第二个像素图,并且仅当鼠标指针悬停在按钮上时才绘制它。您可以将当前的拉伸行为更改为居中行为。您可以使其不具有矩形形状等等...
在鼠标悬停和按下时更改图像的按钮:
You can subclass QAbstractButton and make a button of your own. Here is a basic simple example:
That's not a super easy way, but it gives you a lot of control. You can add second pixmap and draw it only when the mouse pointer is hover over button. You can change current stretching behavior to the centering one. You can make it to have not a rectangular shape and so on...
Button that changes images on mouse hover and when pressed:
您可以使用 QToolButton 并将 autoraise 属性设置为 true,并且还可以设置图像。
You can use QToolButton with set autoraise property true and there you can set your image also.
我看到很多人都遇到这个问题,并决定编写一个适当的示例来解决它。您可以在这里找到它: 示例如何使QLabel可点击
我帖子中的解决方案通过扩展 QLabel 使其发出 clicked() 信号来解决该问题。
扩展的 QLabel 看起来像这样:
我希望这有帮助!
I've seen that a lot of people have this problem and decided to write a proper example on how to fix it. You can find it here: An example on how to make QLabel clickable
The solution in my post solves the problem by extending QLabel so that it emits the clicked() signal.
The extended QLabel looks something like this:
I hope this helps!
也许是这样的?
Something like this, maybe?
另一种选择是使用样式表。像这样的东西:
Another option is to use stylesheets. Something like:
如果您想在菜单或工具栏中使用图像而不是
QPushButton
,您可以通过QAction
来完成。工作示例:If you want use an image instead of a
QPushButton
in menubar or in toolbar, you can do it viaQAction
. Working example: