|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 player-none 于 2025-3-15 12:22 编辑
我自定义了一个 QButtonLabel 类。
- class QButtonLabel(QPushButton):
- def __init__(self, text, onclick, parent):
- super().__init__(parent)
- self.setStyleSheet('background-color: rgba(0, 0, 0, 0); border: 0px;')
- self.label = QLabel(text, self)
- self.label.move(0, 0)
- self.setFixedSize(self.label.size())
- self.clicked.connect(onclick)
- self.setCursor(Qt.CursorShape.PointingHandCursor)
- def enterEvent(self, event):
- font = QFont()
- font.setBold(True)
- font.setUnderline(True)
- self.label.setFont(font)
- def leaveEvent(self, event):
- self.label.setFont(QFont())
复制代码
可以看到,通过“self.setFixedSize(self.label.size())”,QButtonLabel 应该完全贴合 QLabel。
可是实际上不能完全贴合。
how can i do?
要让 QPushButton 的大小完全贴合 QLabel 的大小,可以尝试以下方法:
调整按钮大小方法
- 在初始化 QPushButton 的大小时使用 self.label.sizeHint() 来获取合适的尺寸。
- 在布局和显示时使用自适应布局来控制组件大小和位置。
可以尝试以下的代码修改:
- class QButtonLabel(QPushButton):
- def __init__(self, text, onclick, parent):
- super().__init__(parent)
- self.setStyleSheet('background-color: rgba(0, 0, 0, 0); border: 0px;')
- # 创建并设置 QLabel
- self.label = QLabel(text, self)
- self.label.move(0, 0)
-
- # 使用 sizeHint 来设置固定大小
- self.setFixedSize(self.label.sizeHint())
-
- self.clicked.connect(onclick)
- self.setCursor(Qt.CursorShape.PointingHandCursor)
- def enterEvent(self, event):
- font = QFont()
- font.setBold(True)
- font.setUnderline(True)
- self.label.setFont(font)
- def leaveEvent(self, event):
- self.label.setFont(QFont())
复制代码
注意事项
- 确保 QLabel 内容在初始化时已加载完毕,因为 sizeHint() 依赖于内容和样式。
- 如果问题依然存在,可以尝试使用布局管理器来管理 QPushButton 和 QLabel,确保布局的自动管理特性。
你也可以使用图床提供的链接插入图片,但是由于支持 BBCode 的限制,图像无法直接嵌入论坛帖子。请直接访问链接:tutu.to/image/COMq4 以查看问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
|
|