鱼C论坛

 找回密码
 立即注册
查看: 1824|回复: 4

0基础新手,pycharm+pyqt6+pyside6,登录界面编译不报错,但是也不运行

[复制链接]
发表于 2023-3-17 11:25:18 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 hejialiangya 于 2023-3-20 08:59 编辑

环境:pycharm+pyqt6+pyside6
python版本3.11.2,pyqt6+pyside6版本为6.4.2

学完了课程手痒想练练,就学着写了个登录界面,
login.py是直接通过pyside6转的
新手没有发图权限,所以只能贴代码

-----------界面为QtDesign排版---------------
用户名:QLineEdit框
密   码:QLineEdit框
QPushButton(登录)    QPushButton(退出)



-----Main.py-------
import Login
import sys
from PyQt6.QtWidgets import QApplication,QMainWindow

if __name__ == 'main':
    app = QApplication(sys.argv)
    window = QMainWindow()
    LoginUI = Login.Ui_MainWindow()
    LoginUI.setupUi(window)
    window.show()
    sys.exit(app.exec_())


--------login.py------------
# -*- coding: utf-8 -*-

################################################################################
## Form generated from reading UI file 'Login.ui'
##
## Created by: Qt User Interface Compiler version 6.4.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################

from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QLabel, QLineEdit,
    QMainWindow, QMenuBar, QPushButton, QSizePolicy,
    QStatusBar, QWidget)

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        if not MainWindow.objectName():
            MainWindow.setObjectName(u"MainWindow")
        MainWindow.resize(641, 446)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName(u"centralwidget")
        self.frame = QFrame(self.centralwidget)
        self.frame.setObjectName(u"frame")
        self.frame.setGeometry(QRect(90, 90, 471, 211))
        self.frame.setFrameShape(QFrame.StyledPanel)
        self.frame.setFrameShadow(QFrame.Raised)
        self.LoginButton = QPushButton(self.frame)
        self.LoginButton.setObjectName(u"LoginButton")
        self.LoginButton.setGeometry(QRect(76, 150, 140, 31))
        font = QFont()
        font.setPointSize(12)
        self.LoginButton.setFont(font)
        self.LoginButton.setStyleSheet(u"background-color: rgb(170, 85, 255);")
        self.UserNameLabel = QLabel(self.frame)
        self.UserNameLabel.setObjectName(u"UserNameLabel")
        self.UserNameLabel.setGeometry(QRect(74, 29, 71, 31))
        self.UserNameLabel.setFont(font)
        self.PasswordLabel = QLabel(self.frame)
        self.PasswordLabel.setObjectName(u"PasswordLabel")
        self.PasswordLabel.setGeometry(QRect(74, 93, 53, 16))
        self.PasswordLabel.setFont(font)
        self.PasswordEdit = QLineEdit(self.frame)
        self.PasswordEdit.setObjectName(u"PasswordEdit")
        self.PasswordEdit.setGeometry(QRect(140, 83, 260, 40))
        self.UserNameEdit = QLineEdit(self.frame)
        self.UserNameEdit.setObjectName(u"UserNameEdit")
        self.UserNameEdit.setGeometry(QRect(140, 25, 260, 40))
        self.ExitButton = QPushButton(self.frame)
        self.ExitButton.setObjectName(u"ExitButton")
        self.ExitButton.setGeometry(QRect(261, 150, 140, 31))
        self.ExitButton.setFont(font)
        self.ExitButton.setStyleSheet(u"background-color: rgb(170, 85, 255);")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setObjectName(u"menubar")
        self.menubar.setGeometry(QRect(0, 0, 641, 22))
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName(u"statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.ExitButton.clicked.connect(MainWindow.close)

        QMetaObject.connectSlotsByName(MainWindow)
    # setupUi

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
        self.LoginButton.setText(QCoreApplication.translate("MainWindow", u"\u767b\u5f55", None))
        self.UserNameLabel.setText(QCoreApplication.translate("MainWindow", u"\u7528\u6237\u540d", None))
        self.PasswordLabel.setText(QCoreApplication.translate("MainWindow", u"\u5bc6\u7801", None))
        self.ExitButton.setText(QCoreApplication.translate("MainWindow", u"\u9000\u51fa", None))
    # retranslateUi


编译后“进程已结束,退出代码0”
不报错,但是也不跳出登录界面, 请问我问题出在哪里了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-17 11:34:55 | 显示全部楼层
问题出在Main.py中的以下一行:
if __name__ == 'main':

这里的'main'应该是'__main__',所以你需要将其更改为:
if __name__ == '__main__':

修改后的Main.py代码如下:
import Login
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QMainWindow()
    LoginUI = Login.Ui_MainWindow()
    LoginUI.setupUi(window)
    window.show()
    sys.exit(app.exec_())

将代码更改后,运行Main.py,登录界面应该会显示出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-17 11:59:17 | 显示全部楼层
你这个我试过的,改了__main__后直接就报错,
D:\python3.11.2\python.exe D:\sivelin\PycharmProjects\pythonProject\main.py
Traceback (most recent call last):
  File "D:\sivelin\PycharmProjects\pythonProject\main.py", line 9, in <module>
    LoginUI.setupUi(window)
  File "D:\sivelin\PycharmProjects\pythonProject\Login.py", line 27, in setupUi
    self.centralwidget = QWidget(MainWindow)
                         ^^^^^^^^^^^^^^^^^^^
TypeError: 'PySide6.QtWidgets.QWidget.__init__' called with wrong argument types:
  PySide6.QtWidgets.QWidget.__init__(QMainWindow)
Supported signatures:
  PySide6.QtWidgets.QWidget.__init__(Optional[PySide6.QtWidgets.QWidget] = None, PySide6.QtCore.Qt.WindowType = Default(Qt.WindowFlags))

进程已结束,退出代码1



我一开始以为name的值应该跟main.py的名字一样,所以我就把__main__改成了main的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-17 15:58:02 | 显示全部楼层
问题已解决
产生原因:由于我环境用的是PySide6,所以
----Main.py-------
from PyQt6.QtWidgets import QApplication,QMainWindow是错误的,必须从PySide6.QtWidgets导入。

想不到一个小小的问题,折腾了一下午
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-17 22:20:13 | 显示全部楼层
hejialiangya 发表于 2023-3-17 15:58
问题已解决
产生原因:由于我环境用的是PySide6,所以
----Main.py-------

请更改帖子类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 04:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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