【问题标题】:Why isn't the PyQt5 QPushButton or QAction showing the desired image in Qtoolbar为什么 PyQt5 QPushButton 或 QAction 没有在 Qtoolbar 中显示所需的图像
【发布时间】:2022-10-18 00:46:08
【问题描述】:

我有以下代码使用 QPushButton 以 jpg 和 png 格式显示 16x16 或 16x12 的图像:

navbar=QToolBar()
btn=QPushButton()
btn.setIcon(QIcon(QPixmap("back.jpg"))) #or .png
btn.clicked.connect(self.btn_pressed)
navbar.addWidget(btn)

我也尝试过像这样使用 QAction:

navbar=QToolBar()
action=QAction(QIcon(QPixmap("back.jpg")),"back",self)
action.triggered.connect(self.btn_pressed)
navbar.addAction(action)

它们总是显示文本或实际按钮,但没有文本或渲染图像为空,我看不出一切都失败了。

【问题讨论】:

  • 您没有为 QPushButton 设置任何文本,因此不应显示任何文本。您确定图像的路径正确且正确加载 (print(QPixmap("back.jpg").isNull()))?请注意,相对路径总是相对于工作目录.
  • 是的,所有这些文件都在同一个目录中
  • 我得到 True to isNull()
  • 我不想在按钮上显示文本我只想将图像视为图标
  • 好吧,您已经找到了答案:如果isNull() 返回True,则表示没有加载任何图像。所以文件名错误,或者相对路径不正确,因为您是从另一个路径启动脚本或解释器。请注意,我清楚地写了关于工作目录,这与“在同一目录中”无关。

标签: python pyqt5


【解决方案1】:

正如@furas 提到的Current Working Directory 取决于文件启动的命令行路径并且它不断变化,因此对我的相对路径的依赖导致了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 2016-07-12
    相关资源
    最近更新 更多