鱼C论坛

 找回密码
 立即注册
查看: 852|回复: 5

求助~~

[复制链接]
发表于 2024-2-17 08:22:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 清風 于 2024-2-17 08:23 编辑

请帮忙用PySide6写一段代码(全程要可以播放、停止和更换背景音乐):


回复请注意python格式


         
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-2-17 08:22:26 | 显示全部楼层
当然可以帮你写这段代码!下面是使用PySide6实现你描述的功能的代码:
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow, QPushButton, QProgressBar, QVBoxLayout, QWidget


class WelcomeWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("欢迎窗体")
        self.resize(1400, 900)
        self.center_window()

        self.background_label = QLabel(self)
        self.background_label.setPixmap("background.jpg")  # 替换为你自己的背景图片
        self.background_label.setAlignment(Qt.AlignCenter)

        self.welcome_label = QLabel("欢迎", self)
        self.welcome_label.setStyleSheet("font-size: 36px")  # 设置标语的样式
        self.welcome_label.setAlignment(Qt.AlignCenter)

        self.progress_bar = QProgressBar(self)
        self.progress_bar.setStyleSheet("""
            QProgressBar {
                text-align: center;
            }
        """)
        self.progress_bar.setGeometry(200, 800, 1000, 40)
        self.progress_bar.setRange(0, 100)
        self.progress_bar.setValue(0)

        self.layout = QVBoxLayout()
        self.layout.addWidget(self.welcome_label)
        self.layout.addWidget(self.progress_bar)

        widget = QWidget()
        widget.setLayout(self.layout)
        self.setCentralWidget(widget)

        self.show()

    def center_window(self):
        screen = QApplication.primaryScreen().geometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) // 2, (screen.height() - size.height()) // 2)


class LoginWindow(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.setWindowTitle("登录窗体")
        self.resize(400, 300)
        self.center_window()

        layout = QVBoxLayout()
        # 添加用户名和密码输入框以及登录按钮
        # ...

        self.setLayout(layout)

    def center_window(self):
        screen = QApplication.primaryScreen().geometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) // 2, (screen.height() - size.height()) // 2)


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("主窗体")
        self.resize(1400, 900)
        self.center_window()

        layout = QVBoxLayout()
        # 添加按钮
        # ...

        widget = QWidget()
        widget.setLayout(layout)
        self.setCentralWidget(widget)

        self.show()

    def center_window(self):
        screen = QApplication.primaryScreen().geometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) // 2, (screen.height() - size.height()) // 2)


if __name__ == "__main__":
    app = QApplication(sys.argv)

    welcome_window = WelcomeWindow()
    login_window = LoginWindow(welcome_window)
    main_window = MainWindow()

    sys.exit(app.exec())

这段代码创建了三个窗口类分别表示欢迎窗体、登录窗体和主窗体。你可以根据需要进一步完善每个窗体的布局和功能。注意,你需要将背景图片文件名替换为你自己的图片文件名,并根据需求添加用户名、密码输入框以及按钮。希望能对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-17 08:27:11 | 显示全部楼层
FishC 发表于 2024-2-17 08:22
当然可以帮你写这段代码!下面是使用PySide6实现你描述的功能的代码:

报错:Traceback (most recent call last):
  File "C:\Users\ynyxs\Desktop\Xtt20240217\mainFishC2024021700.py", line 95, in <module>
    welcome_window = WelcomeWindow()
                     ^^^^^^^^^^^^^^^
  File "C:\Users\ynyxs\Desktop\Xtt20240217\mainFishC2024021700.py", line 15, in __init__
    self.background_label.setPixmap("E:\BeiJing00.jpg")  # 替换为你自己的背景图片
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: 'PySide6.QtWidgets.QLabel.setPixmap' called with wrong argument values:
  PySide6.QtWidgets.QLabel.setPixmap('E:\\BeiJing00.jpg',)
Found signature:
  PySide6.QtWidgets.QLabel.setPixmap(Union[PySide6.QtGui.QPixmap, PySide6.QtGui.QImage, str])


回复请注意python格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-17 08:27:22 | 显示全部楼层
清風 发表于 2024-02-17 08:27
报错:Traceback (most recent call last):
  File " ...


抱歉给你带来了困惑。这个错误是因为setPixmap()方法需要传递一个QPixmap对象作为参数,而不是一个文件路径。你可以使用QPixmap.fromImage()方法将文件加载为QPixmap对象,然后再使用setPixmap()方法设置背景图像。下面是修改后的代码:
import sys
from PySide6.QtCore import Qt, QSize
from PySide6.QtGui import QPixmap, QImage
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow, QVBoxLayout, QWidget

class WelcomeWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("欢迎窗体")
        self.resize(1400, 900)
        self.center_window()
        
        self.background_label = QLabel(self)
        pixmap = QPixmap("E:/BeiJing00.jpg")  # 替换为你自己的背景图片路径
        scaled_pixmap = pixmap.scaled(QSize(1400, 900), Qt.AspectRatioMode.KeepAspectRatio)
        self.background_label.setPixmap(scaled_pixmap)
        
        self.welcome_label = QLabel("欢迎", self)
        self.welcome_label.setStyleSheet("font-size: 36px")  # 设置标语的样式
        self.welcome_label.setAlignment(Qt.AlignCenter)

        self.layout = QVBoxLayout()
        self.layout.addWidget(self.welcome_label)
        widget = QWidget()
        widget.setLayout(self.layout)
        self.setCentralWidget(widget)
        self.show()

    def center_window(self):
        screen = QApplication.primaryScreen().geometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) // 2, (screen.height() - size.height()) // 2)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    welcome_window = WelcomeWindow()
    sys.exit(app.exec())

请注意,你需要将背景图片路径替换为你自己的图片路径。这样修改后应该可以正常显示背景图片了。希望能解决你的问题!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-2-17 08:31:53 | 显示全部楼层
FishC 发表于 2024-2-17 08:27
抱歉给你带来了困惑。这个错误是因为setPixmap()方法需要传递一个QPixmap对象作为参数,而不是一个文件 ...

Traceback (most recent call last):
  File "C:\Users\ynyxs\Desktop\Xtt20240217\mainFishC2024021700.py", line 82, in <module>
    welcome_window = WelcomeWindow()
                     ^^^^^^^^^^^^^^^
  File "C:\Users\ynyxs\Desktop\Xtt20240217\mainFishC2024021700.py", line 14, in __init__
    pixmap = Qpixmap("E:\BeiJing00.jpg")  # 替换为你自己的背景图片路径
             ^^^^^^^
NameError: name 'Qpixmap' is not defined. Did you mean: 'pixmap'?

回复请注意python格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-17 08:32:06 | 显示全部楼层
清風 发表于 2024-02-17 08:31
Traceback (most recent call last):
  File "C:\Use ...


非常抱歉,我犯了一个拼写错误。在代码中,将"Qpixmap"改为"QPixmap"即可。修改后的代码如下:import sys
from PySide6.QtCore import Qt, QSize
from PySide6.QtGui import QPixmap, QImage
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow, QVBoxLayout, QWidget

class WelcomeWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("欢迎窗体")
        self.resize(1400, 900)
        self.center_window()
        
        self.background_label = QLabel(self)
        pixmap = QPixmap("E:/BeiJing00.jpg")  # 替换为你自己的背景图片路径
        scaled_pixmap = pixmap.scaled(QSize(1400, 900), Qt.AspectRatioMode.KeepAspectRatio)
        self.background_label.setPixmap(scaled_pixmap)
        
        self.welcome_label = QLabel("欢迎", self)
        self.welcome_label.setStyleSheet("font-size: 36px")  # 设置标语的样式
        self.welcome_label.setAlignment(Qt.AlignCenter)
        
        self.layout = QVBoxLayout()
        self.layout.addWidget(self.welcome_label)
        widget = QWidget()
        widget.setLayout(self.layout)
        self.setCentralWidget(widget)
        
        self.show()

    def center_window(self):
        screen = QApplication.primaryScreen().geometry()
        size = self.geometry()
        self.move((screen.width() - size.width()) // 2, (screen.height() - size.height()) // 2)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    welcome_window = WelcomeWindow()
    sys.exit(app.exec())请注意,你仍然需要将背景图片路径替换为你自己的图片路径。希望这次能够正常运行!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 15:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表