QML图像未在应用程序中显示

时间:2018-02-05 15:23:15

标签: python qml pyqt5 qqmlapplicationengine

我在将简单图像显示到应用程序时遇到问题。 这是main.py:

import sys
from PyQt5.QtQml import QQmlApplicationEngine
from PyQt5.QtGui import QGuiApplication
from PyQt5.QtCore import QObject, QUrl


if __name__ == '__main__':
    sys.argv += ['--style', 'material']
    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine('basic.qml')
    sys.exit(app.exec_())  

并且basic.qml:

import QtQuick 2.0
import QtQuick.Controls 2.1
import QtQuick.Controls.Material 2.1

ApplicationWindow {
    visible: true
    width: 200
    height: 400
    title: qsTr("Hello World")
    Material.theme: Material.Light
    Material.accent: Material.Orange
    Column {
        anchors.centerIn: parent
        Button {
            width: 200; height:50;
            font.capitalization: Font.MixedCase
            text: qsTr("Button Name")
            objectName: "button_obj_name"
            highlighted: true
            Material.background: Material.Orange

        }
        Image{
                width: 100; height: 100
                fillMode: Image.PreserveAspectFit
                source: "logo_name.jpg"
            }
    }
}

在应用程序窗口中,似乎已分配空间但未显示任何内容。 [logo_name.jpg位于basic.qml和main.py所在的文件夹中]

3 个答案:

答案 0 :(得分:0)

您的代码看起来正确。我的窗户盒上有类似的问题。在树莓机上工作的代码无法在Windows机器上运行。删除并重新安装PyQt5再次运行。

pip3 uninstall pyqt5 

答案 1 :(得分:0)

它与我试图显示的图像有关(正如@Jason R. Mick所提到的),我相信我试图使用的图像是通过更改它的扩展名来转换的。

  

作为一个完整性检查,您可以发布您尝试的图像   显示器和显示器图像/文件夹内容列表? - 杰森R.米克

答案 2 :(得分:0)

您应该更好地检查当前路径。 您可以使用sys.argv[0]打印出当前路径。 获取路径后,将图像文件复制到该路径。 然后,再次运行。

我也认为这不是源代码的问题,而是开发环境。