【问题标题】:PyQt5 StackedWidget the first page border image does not workPyQt5 StackedWidget首页边框图片不起作用
【发布时间】:2018-09-14 14:35:43
【问题描述】:

我正在使用带有 PyQt5 的堆叠小部件来实现菜单页面和子菜单页面,我正在尝试设置一个欢迎页面,一旦你运行应用程序并在 3 秒后切换到主菜单页面,就会显示该页面。 我遇到的问题是,当我将 .ui 文件转换为 .py 文件并执行脚本时,除了欢迎页面边框图像(未显示)之外,所有页面边框图像都可以正常工作。

请注意,我使用的是 Qt Designer

这是错误... 这是欢迎页面不显示边框图像:

并且其他页面在这个其他页面上都可以正常工作(它显示了它的边框图像): 谢谢你

代码:

 # -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'G:\Users\Mohamed.Souilem\Projects\Smart Updater - BLT SLT\smart updater UI\smartupdater.ui'
#
# Created by: PyQt5 UI code generator 5.11.2
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_smartUpdaterUI(object):
    def setupUi(self, smartUpdaterUI):
        smartUpdaterUI.setObjectName("smartUpdaterUI")
        smartUpdaterUI.resize(667, 357)
        smartUpdaterUI.setMinimumSize(QtCore.QSize(667, 357))
        smartUpdaterUI.setMaximumSize(QtCore.QSize(667, 16777215))
        font = QtGui.QFont()
        font.setFamily("Ubuntu Mono")
        smartUpdaterUI.setFont(font)
        smartUpdaterUI.setToolTipDuration(0)
        smartUpdaterUI.setAutoFillBackground(True)
        smartUpdaterUI.setStyleSheet("color:white")
        smartUpdaterUI.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        smartUpdaterUI.setTabShape(QtWidgets.QTabWidget.Triangular)
        self.Main_menu = QtWidgets.QWidget(smartUpdaterUI)
        self.Main_menu.setStyleSheet("border-image: url(:/img/img/main menu.png);")
        self.Main_menu.setObjectName("Main_menu")
        self.deviceInfo_Button = QtWidgets.QPushButton(self.Main_menu)
        self.deviceInfo_Button.setGeometry(QtCore.QRect(56, 44, 123, 119))
        self.deviceInfo_Button.setStyleSheet("border-image: url(:/img/img/info_button.png);")
        self.deviceInfo_Button.setText("")
        self.deviceInfo_Button.setObjectName("deviceInfo_Button")
        self.wifi_Button = QtWidgets.QPushButton(self.Main_menu)
        self.wifi_Button.setGeometry(QtCore.QRect(270, 44, 123, 119))
        self.wifi_Button.setStyleSheet("border-image: url(:/img/img/wifi_button.png);")
        self.wifi_Button.setText("")
        self.wifi_Button.setObjectName("wifi_Button")
        self.lan_Button = QtWidgets.QPushButton(self.Main_menu)
        self.lan_Button.setGeometry(QtCore.QRect(470, 44, 125, 119))
        self.lan_Button.setStyleSheet("border-image: url(:/img/img/lan_button.png);")
        self.lan_Button.setText("")
        self.lan_Button.setObjectName("lan_Button")
        self.power_Button = QtWidgets.QPushButton(self.Main_menu)
        self.power_Button.setGeometry(QtCore.QRect(56, 200, 123, 119))
        self.power_Button.setStyleSheet("border-image: url(:/img/img/power_button.png);")
        self.power_Button.setText("")
        self.power_Button.setObjectName("power_Button")
        self.user_Button = QtWidgets.QPushButton(self.Main_menu)
        self.user_Button.setGeometry(QtCore.QRect(270, 200, 123, 119))
        self.user_Button.setStyleSheet("border-image: url(:/img/img/user_button.png);")
        self.user_Button.setText("")
        self.user_Button.setObjectName("user_Button")
        self.test_Button = QtWidgets.QPushButton(self.Main_menu)
        self.test_Button.setGeometry(QtCore.QRect(470, 200, 125, 119))
        self.test_Button.setStyleSheet("border-image: url(:/img/img/test_button.png);")
        self.test_Button.setText("")
        self.test_Button.setObjectName("test_Button")
        self.deviceInfo_text = QtWidgets.QLabel(self.Main_menu)
        self.deviceInfo_text.setGeometry(QtCore.QRect(70, 170, 95, 20))
        font = QtGui.QFont()
        font.setFamily("Segoe UI Semibold")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.deviceInfo_text.setFont(font)
        self.deviceInfo_text.setStyleSheet("color:white ")
        self.deviceInfo_text.setObjectName("deviceInfo_text")
        self.wirelessConnection_text = QtWidgets.QLabel(self.Main_menu)
        self.wirelessConnection_text.setGeometry(QtCore.QRect(296, 170, 75, 20))
        font = QtGui.QFont()
        font.setFamily("Segoe UI Semibold")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.wirelessConnection_text.setFont(font)
        self.wirelessConnection_text.setAutoFillBackground(False)
        self.wirelessConnection_text.setStyleSheet("color:white ")
        self.wirelessConnection_text.setObjectName("wirelessConnection_text")
        self.lanConnection_text = QtWidgets.QLabel(self.Main_menu)
        self.lanConnection_text.setGeometry(QtCore.QRect(520, 170, 31, 20))
        font = QtGui.QFont()
        font.setFamily("Segoe UI Semibold")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.lanConnection_text.setFont(font)
        self.lanConnection_text.setStyleSheet("color:white ")
        self.lanConnection_text.setObjectName("lanConnection_text")
        self.powerOFF_text = QtWidgets.QLabel(self.Main_menu)
        self.powerOFF_text.setGeometry(QtCore.QRect(76, 328, 87, 20))
        font = QtGui.QFont()
        font.setFamily("Segoe UI Semibold")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.powerOFF_text.setFont(font)
        self.powerOFF_text.setStyleSheet("color:white ")
        self.powerOFF_text.setObjectName("powerOFF_text")
        self.user_text = QtWidgets.QLabel(self.Main_menu)
        self.user_text.setGeometry(QtCore.QRect(316, 328, 41, 20))
        font = QtGui.QFont()
        font.setFamily("Segoe UI Semibold")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.user_text.setFont(font)
        self.user_text.setStyleSheet("color:white ")
        self.user_text.setObjectName("user_text")
        self.test_text = QtWidgets.QLabel(self.Main_menu)
        self.test_text.setGeometry(QtCore.QRect(476, 328, 117, 20))
        font = QtGui.QFont()
        font.setFamily("Segoe UI Semibold")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.test_text.setFont(font)
        self.test_text.setStyleSheet("color:white ")
        self.test_text.setObjectName("test_text")
        self.menu_text = QtWidgets.QLabel(self.Main_menu)
        self.menu_text.setGeometry(QtCore.QRect(6, 6, 73, 19))
        font = QtGui.QFont()
        font.setFamily("MS Reference Sans Serif")
        font.setPointSize(17)
        font.setBold(True)
        font.setWeight(75)
        self.menu_text.setFont(font)
        self.menu_text.setObjectName("menu_text")
        smartUpdaterUI.setCentralWidget(self.Main_menu)

        self.retranslateUi(smartUpdaterUI)
        QtCore.QMetaObject.connectSlotsByName(smartUpdaterUI)

    def retranslateUi(self, smartUpdaterUI):
        _translate = QtCore.QCoreApplication.translate
        smartUpdaterUI.setWindowTitle(_translate("smartUpdaterUI", "Yamaichi Electronics Smart Updater "))
        self.deviceInfo_text.setText(_translate("smartUpdaterUI", "DEVICE INFO"))
        self.wirelessConnection_text.setText(_translate("smartUpdaterUI", "WIRELESS "))
        self.lanConnection_text.setText(_translate("smartUpdaterUI", "LAN"))
        self.powerOFF_text.setText(_translate("smartUpdaterUI", "POWER OFF"))
        self.user_text.setText(_translate("smartUpdaterUI", "USER"))
        self.test_text.setText(_translate("smartUpdaterUI", "TESTING MODE"))
        self.menu_text.setText(_translate("smartUpdaterUI", "Menu"))

import resource_rc

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    smartUpdaterUI = QtWidgets.QMainWindow()
    ui = Ui_smartUpdaterUI()
    ui.setupUi(smartUpdaterUI)
    smartUpdaterUI.show()
    sys.exit(app.exec_())

【问题讨论】:

  • 您可以提供minimal reproducible example 来指明错误所在。
  • @eyllanesc 我添加了一些图片
  • @eyllanesc 问题似乎在欢迎页面的设置中,这里是代码的一瞥
  • 显示“部分代码”不是minimal reproducible example。大多数人都想尝试重现错误的代码,而不是繁琐的代码校对。
  • @Mailerdaimon 请给我几分钟 :)

标签: python pyqt5 qt-designer


【解决方案1】:

这很令人困惑,但它正在工作!我刚刚再次转换了 .qrc 文件,现在运行良好

【讨论】:

  • 很高兴听到它正在工作!为了让每个人都知道您的问题已得到解答,您可以将任何答案标记为已接受(绿色勾号)。您可以在 48 小时后接受您自己的答案(以便其他人也有时间发布答案)。您可以随时更改接受的答案,例如未来会给出一个新的(更好的答案)。
【解决方案2】:

我试过你的代码,它对我有用。

你应该检查什么:

  • 文件路径是否正确:/img/img/main menu.png
  • 尝试将映像放入磁盘并重试
  • 尝试使用简单的名称将映像放在磁盘上,例如 D:/im.png
  • 尝试使用已用于其他页面的图片
  • 检查您的资源文件是否已编译(您可以在 Qt Creator 的编译器日志中找到对 rcc.exe 的调用)。

从 Qt 的角度来看,它看起来不错。

【讨论】:

  • 是的,你提到的所有观点都很好,我什至尝试了一个已经在另一个页面上运行的图像,它运行良好......这令人困惑。
  • 它的工作!我只是试图一次又一次地转换 .qrc 文件,它现在可以工作了!谢谢
猜你喜欢
  • 2015-05-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
相关资源
最近更新 更多