Qt学习(1)pyside2、pyqt5实现简单的界面跳转(登录界面)

pyside2实现简单的界面跳转

1、前言

废话不说,先上效果图gif:
在这里插入图片描述
这里增加简单的判断,如果没有输入名字,则提示,如果没有输入密码,则提示。

当账号和密码都有(任意)的时候,成功跳转到另一个界面

以此模拟登录界面。

2、代码pyside2

下面看看login.py代码:

# -*- coding: utf-8 -*-
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtWidgets import *
from login_confirm import *


class Ui_login_form(QtWidgets.QWidget):
    def setupUi(self, login_form):
        login_form.setObjectName("login_form")
        login_form.resize(400, 300)
        self.name_label = QtWidgets.QLabel(login_form)
        self.name_label.setGeometry(QtCore.QRect(80, 100, 60, 20))
        self.name_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.name_label.setObjectName("name_label")
        self.password_label = QtWidgets.QLabel(login_form)
        self.password_label.setGeometry(QtCore.QRect(80, 150, 60, 20))
        self.password_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
        self.password_label.setObjectName("password_label")
        self.name_lineedit = QtWidgets.QLineEdit(login_form)
        self.name_lineedit.setGeometry(QtCore.QRect(150, 100, 150, 20))
        self.name_lineedit.setMaxLength(15)
        self.name_lineedit.setEchoMode(QtWidgets.QLineEdit.Normal)
        self.name_lineedit.setObjectName("name_lineedit")
        self.password_lineedit = QtWidgets.QLineEdit(login_form)
        self.password_lineedit.setGeometry(QtCore.QRect(150, 150, 150, 20))
        self.password_lineedit.setMaxLength(15)
        self.password_lineedit.setEchoMode(QtWidgets.QLineEdit.Password)
        self.password_lineedit.setObjectName("password_lineedit")
        self.ok_btn = QtWidgets.QPushButton(login_form)
        self.ok_btn.setGeometry(QtCore.QRect(220, 200, 80, 20))
        self.ok_btn.setObjectName("ok_btn")

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

        '''
        signal&slot
        '''
        self.ok_btn.clicked.connect(self.login_ok)

    def retranslateUi(self, login_form):
        _translate = QtCore.QCoreApplication.translate
        login_form.setWindowTitle(_translate("login_form", "login"))
        self.name_label.setText(_translate("login_form", "name:"))
        self.password_label.setText(_translate("login_form", "password:"))
        self.ok_btn.setText(_translate("login_form", "Ok"))

    def login_ok(self):
        if self.name_lineedit.text() == '':
            ret = QMessageBox.about(self, 'Tips', 'Please input your name!')
        else:
            if self.password_lineedit.text() == '':
                ret = QMessageBox.about(self, 'Tips', 'Please input your passwords!')
            else:
                login_info = Ui_login_info_form()
                self.window = QWidget()
                login_info.setupUi(self.window)
                self.window.show()


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    login_form = QtWidgets.QWidget()
    ui = Ui_login_form()
    ui.setupUi(login_form)
    login_form.show()
    sys.exit(app.exec_())

login.py的代码直接由Qt Creator生成.ui文件通过pyuic5转换而来

转换后,将父类从object改成QtWidgets.QWidget即可

其余代码就不摆在这里啦,放在了github仓库里:
Github: https://github.com/cssdcc1997/qt_learning

其他qt系列博客请点击:Qt学习(0) 系列目录

欢迎大家一起讨论~~~~

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pyside6和PyQt6都是用于Python编写界面的工具包,它们都是基于Qt框架的Python绑定。它们都提供了丰富的界面组件和工具,可以帮助开发者快速构建各种类型的应用程序界面。两者的语法和使用方法都非常相似,但是Pyside6是由Qt公司官方支持的,而PyQt6则是由第三方开发者开发和维护的。因此,如果您需要更好的技术支持和文档资料,建议选择Pyside6。 ### 回答2: PySide6和PyQt6是用于创建Python GUI应用程序的两个库。这两个库非常相似,因为它们都是对Qt框架的Python绑定。 第一点区别是,PyQt在1998年发布,而PySide在2009年发布。起初,它们有相似的代码库,但随着时间的推移,两组独立开发,因此也有了一些不同之处,例如不同的模块名称、不同的安装过程等等。 在使用这两个库时,主要的区别在于PyQt6需要付费使用,而PySide6是完全免费的。PyQt6可以作为商业用途使用,但需要购买一个商业许可证。PySide6不需要许可证,可以自由使用。 另一个不同之处是PyQt6提供了更好的文档支持和示例程序。有许多教程和例子可以用来学习PyQt6的使用。当然,对于PySide6也有相应的教程和例子。 在性能上,两者也有一些不同。其中PySide6可能会比PyQt6快一些,因为PySide6是使用C++编写的,而PyQt6则是使用C++和Python混合编写的。然而,这个差异并不大,所以一般不需要选择一个库来获得更好的性能。 总的来说,使用PySide6还是PyQt6主要取决于需求和个人喜好。如果项目需要商业许可证或需要更好的文档和支持,则PyQt6是更好的选择。如果寻求免费使用,或者只是想要一个简单的库来创建Python GUI应用程序,PySide6也是不错的选择。 ### 回答3: Pyside6和PyQt6都是Python语言的GUI编程框架,用于创建富有交互性的图形用户界面。两者的API非常相似,而且都是基于Qt6的。Qt6是由Qt开发团队开发的跨平台的应用程序框架,包含了丰富的GUI组件,包括窗口、按钮、标签、文本框、列表框等等。在使用Pyside6和PyQt6进行GUI编程时,我们可以使用这些GUI组件来创建用户界面,也可以自定义组件,以满足应用程序的需求。 Pyside6和PyQt6都有我们需要的所有功能,包括用户界面的构建、数据绑定、事件处理和动画效果等。然而,Pyside6是由The Qt Company主导开发,而PyQt6是由Riverbank Computing Ltd.主导开发。对于用户而言,两者最大的区别在于许可证。Pyside6使用的是LGPL协议,而PyQt6则采用GPL协议。想用Pyside6的话,只需要将Qt6库纳入应用程序,不需要公开源代码。使用PyQt6时,如果想要以闭源形式发布应用程序,就必须购买Commercial License,否则需要遵守GPL协议并将源代码公开。 总之,Pyside6和PyQt6都是极好的Python GUI编程框架。在比较两者时,我们应该注意到许可证的不同,以及对性能、稳定性和注重开发者体验等需求的不同,以选择最适合我们的框架。无论使用哪种框架,GUI编程都需要花费大量的时间和精力进行学习和开发,在使用过程中,需要注意控件的排版、颜色搭配、字体设置等因素,不断对界面进行优化,以提高用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值