软件工程—QyPt—00—用户界面设计

界面初步设计

界面的初步设计可以通过QtDesigner完成,存在的问题就是能够完成的部分十分有限,例如插入图片、设计接口等功能仍需要将ui文件输出,并转为python代码进行二次编辑。

QtDesigner界面

输出一次代码

class Ui_MainWindow(QWidget):
    def setupUi(self, MainWindow):
        super().__init__()
        MainWindow.setObjectName("MainWindow")
        # 限定窗口大小
        MainWindow.resize(800, 600)
        # 设置窗口中心
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        # 设置姓名label
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(110, 40, 121, 101))
        self.label.setObjectName("label")
        # 设置点击按钮
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(360, 380, 112, 34))
        self.pushButton.setObjectName("pushButton")
        # 设置文本读取窗口
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(260, 40, 201, 111))
        self.lineEdit.setObjectName("lineEdit")
        # 设置文本输出窗口
        self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser.setGeometry(QtCore.QRect(230, 160, 256, 192))
        self.textBrowser.setObjectName("textBrowser")
        # 一些默认设置
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 30))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

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

运行后的界面
运行初步界面

简单功能实现

    def __init__(self, parent=None):
        super(MyMainForm, self).__init__(parent)
        self.setupUi(self)
        # 添加登录按钮信号和槽。注意display函数不加小括号() 
        self.pushButton.clicked.connect(self.display)


    def display(self):
        # 利用line Edit控件对象text()函数获取界面输入 
        username = self.lineEdit.text()
        # 利用text Browser控件对象setText()函数设置界面显示 
        self.textBrowser.setText("登录成功!\n" + "用户名是: " + username + '!')

实现的功能即:1)将类中pushButton的click动作与display函数连接 2)在click动作触发后,读取类中lineEdit变量的text字符串并赋值给username,最后输出

页面跳转

增加界面跳转功能,即再编写一个Window,并通过一个“跳转”按钮连接起来。

	# 设置连接——按钮转换界面
    self.jumpButton.clicked.connect(self.openAnotherWindow)
	
    def openAnotherWindow(self):
        self.another_window = QtWidgets.QMainWindow()
        self.ui = Ui_AnotherWindow()
        self.ui.setupUi(self.another_window)
        self.another_window.show()

学号检测

增加一个文本读取窗口,并将其与“跳转”按钮连接,当检测正确时才可以显示“跳转”按钮。
MainWindow

退出设置

退出功能是内置的,因此在按钮创建之初就可以将其与close绑定

# 设置连接——退出当前界面
self.exitButton.clicked.connect(AnotherWindow.close)

完整代码

MyLog.py 窗口类

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QWidget


class Ui_AnotherWindow(QWidget):
    def setupUi(self, AnotherWindow):
        # super().__init__()
        AnotherWindow.setObjectName("AnotherWindow")
        AnotherWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(AnotherWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(110, 40, 181, 101))
        self.label.setObjectName("label")

        self.exitButton = QtWidgets.QPushButton(self.centralwidget)
        self.exitButton.setGeometry(QtCore.QRect(360, 380, 112, 34))
        self.exitButton.setObjectName("exitButton")
        # 设置连接——退出当前界面
        self.exitButton.clicked.connect(AnotherWindow.close)

        AnotherWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(AnotherWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 30))
        self.menubar.setObjectName("menubar")
        AnotherWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(AnotherWindow)
        self.statusbar.setObjectName("statusbar")
        AnotherWindow.setStatusBar(self.statusbar)

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

    def retranslateUi(self, AnotherWindow):
        _translate = QtCore.QCoreApplication.translate
        AnotherWindow.setWindowTitle(_translate("AnotherWindow", "AnotherWindow"))
        self.label.setText(_translate("AnotherWindow", "This is another window"))
        self.exitButton.setText(_translate("AnotherWindow", "退出"))


class Ui_MainWindow(QWidget):
    def setupUi(self, MainWindow):
        super().__init__()
        MainWindow.setObjectName("MainWindow")
        # 限定窗口大小
        MainWindow.resize(800, 600)
        # 设置主窗口
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        # 设置姓名label
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(110, 40, 121, 50))
        self.label.setObjectName("label")
        self.label1 = QtWidgets.QLabel(self.centralwidget)
        self.label1.setGeometry(QtCore.QRect(110, 100, 121, 50))
        self.label1.setObjectName("label")
        # 设置点击按钮
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(360, 380, 112, 34))
        self.pushButton.setObjectName("pushButton")
        self.jumpButton = QtWidgets.QPushButton(self.centralwidget)
        self.jumpButton.setGeometry(QtCore.QRect(200, 380, 112, 34))
        self.jumpButton.setObjectName("jumpButton")
        self.jumpButton.setVisible(False)
        self.exitButton = QtWidgets.QPushButton(self.centralwidget)
        self.exitButton.setGeometry(QtCore.QRect(360, 480, 112, 34))
        self.exitButton.setObjectName("exitButton")
        # 设置连接——退出当前界面
        self.exitButton.clicked.connect(MainWindow.close)
        # 设置文本读取窗口
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(260, 40, 200, 50))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit1 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit1.setGeometry(QtCore.QRect(260, 100, 200, 50))
        self.lineEdit1.setObjectName("lineEdit1")
        # 设置文本输出窗口
        self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
        self.textBrowser.setGeometry(QtCore.QRect(230, 160, 256, 192))
        self.textBrowser.setObjectName("textBrowser")
        # 一些默认设置
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 30))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        # 设置背景
        MainWindow.setStyleSheet("#MainWindow{border-image:url(background.jpg)}")

        # 设置连接——按钮转换界面
        self.jumpButton.clicked.connect(self.openAnotherWindow)

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


    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "姓名:"))
        self.label1.setText(_translate("MainWindow", "学号:"))
        self.pushButton.setText(_translate("MainWindow", "提交"))
        self.jumpButton.setText(_translate("MainWindow", "跳转"))
        self.exitButton.setText(_translate("MainWindow", "退出"))

    def openAnotherWindow(self):
        self.another_window = QtWidgets.QMainWindow()
        self.ui = Ui_AnotherWindow()
        self.ui.setupUi(self.another_window)
        self.another_window.show()

Demo.py

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
# 导入designer工具生成的login模块 
from mylog import Ui_MainWindow


class MyMainForm(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MyMainForm, self).__init__(parent)
        self.setupUi(self)
        # 添加登录按钮信号和槽。注意display函数不加小括号()
        self.pushButton.clicked.connect(self.display)

    def display(self):
        # 真实学号
        Stuid_true = "自定义"
        # 利用line Edit控件对象text()函数获取界面输入 
        username = self.lineEdit.text()
        Stuid = self.lineEdit1.text()
        # 利用text Browser控件对象setText()函数设置界面显示
        if Stuid == Stuid_true:
            self.textBrowser.setText("登录成功!\n" + "用户名是: " + username + '!')
            # 设置显示跳转按钮
            self.jumpButton.setVisible(True)
        else:
            self.textBrowser.setText("登录失败!\n" + "请确定学号输入正确!")


if __name__ == "__main__":
    # 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行 
    app = QApplication(sys.argv)
    # 初始化 
    myWin = MyMainForm()
    # 将窗口控件显示在屏幕上 
    myWin.show()
    # 程序运行,sys.exit 方法确保程序完整退出。
    sys.exit(app.exec_())
  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: qypt5是一种使用按钮来实现界面跳转的技术。按钮是一种常用的用户交互元素,通过点击按钮可以触发特定的操作或事件。在qypt5中,我们可以通过编写代码来实现按钮的功能。 首先,我们需要创建一个按钮元素,并定义其样式和位置。可以使用HTML标签或qypt5的自定义标签来实现这一点。例如,可以使用"<button>"标签,并设置其ID、类样式和位置等属性。 接下来,我们需要编写相关的事件处理程序,以响应按钮的点击动作。可以使用JavaScript或者qypt5的脚本语言来实现。我们可以为按钮绑定一个点击事件并指定相应的处理函数。在该函数中,我们可以使用跳转功能来实现界面的跳转。 在qypt5中,我们可以使用内置的跳转函数来实现界面的跳转。例如,可以使用"window.location.href"来指定要跳转的URL地址。我们可以将目标页面的URL作为参数传递给这个跳转函数,当按钮被点击时,页面将会跳转到指定的URL。 此外,我们还可以使用qypt5提供的其他功能来实现更多复杂的跳转操作,例如使用路由功能来实现页面间的跳转和传递参数等。 总之,qypt5通过按钮跳转界面的实现比较简单,我们只需要创建按钮元素,并编写相应的事件处理程序即可。通过调用跳转函数,我们可以实现在按钮点击时跳转到指定的界面。 ### 回答2: qypt5是通过按钮来实现页面跳转的。在网页开发中,按钮是一种常见的交互元素,用于触发某些特定的操作或动作。 qypt5通过按钮的点击事件来动态地改变当前页面的显示内容,进而实现页面的跳转。按钮的点击事件通常在前端代码中通过监听按钮的点击事件来触发相应的跳转操作。 在实际应用中,我们可以使用HTML和JavaScript来实现qypt5的按钮跳转。首先,在HTML中我们可以使用<button>标签来创建按钮元素,并为按钮指定一个特定的id或class属性。接着,通过JavaScript编写相应的代码,来监听按钮的点击事件。一旦按钮被点击,相关的代码会执行,包括跳转到指定的页面。 例如,我们可以在JavaScript中使用getElementById()方法根据按钮的id属性获取按钮元素,并通过addEventListener()方法为按钮添加一个click事件监听器。当用户点击按钮时,监听器会触发相应的处理函数,可以使用window.location.href属性来改变当前页面的URL,实现页面的跳转。 总之,通过按钮跳转界面是一种常见的实现方式,可以通过前端技术来实现。qypt5通过监听按钮的点击事件,动态改变当前页面的显示内容,从而实现页面的跳转。 ### 回答3: qypt5是一种通过按钮来跳转到不同界面的技术。在计算机软件或应用程序中,按钮是一种常见的用户界面元素,它通常用来执行特定的操作或触发特定的事件。通过设置按钮的属相和事件处理函数,可以实现界面之间的跳转。 要使用qypt5通过按钮跳转界面,首先需要设置一个按钮对象。按钮对象可以通过界面设计器或代码编写来创建,具体的实现方式取决于开发使用的平台和工具。 一旦按钮对象创建完成,可以为按钮添加事件处理函数。这个事件处理函数会在按钮被点击时触发,可以在这个函数中编写跳转逻辑。跳转的方式可以根据具体需求而定,例如打开一个新的窗口、切换到另一个界面、加载新的内容等等。 为了实现跳转功能,需要将目标界面的信息储存在按钮中。可以通过属性或参数的方式传递信息。然后在事件处理函数中获取这些信息,并根据需要执行相应的跳转操作。 除了通过按钮来触发跳转,还可以使用其他用户行为,例如键盘按键、鼠标点击等方式来激活跳转动作。可以根据具体的需求和交互设计,选择合适的方式来实现界面之间的切换。 总的来说,qypt5通过按钮跳转界面是一种常见且常用的方法,能够提供方便的用户交互体验和界面导航功能。通过合理设计和编码,我们可以实现功能丰富、操作流畅的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gantnd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值