python关闭主页面返回登录界面

python关闭主页面返回登录界面,第1张

有很多种方法,但是很多方法要么这个有问题,要么那个有问题,最后终于找到一种没问题的方法。记录一下:

Loginpy(登录窗口)文件

import sys

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5QtCore import

from PyQt5QtWidgets import QFileDialog, QMessageBox, QDockWidget, QListWidget

from PyQt5QtGui import

from Ui_Login import Ui_Login_Window #由UI文件生成py文件后,导入创建的GUI类

from Main import # Mainpy为 主窗口代码文件

from class_MSSQL import MSSQL

#QtWidgetsQMainWindow:继承该类方法

class Login_window(QtWidgetsQMainWindow,Ui_Login_Window):

#__init__: 析构函数,也就是类被创建后就会预先加载的项目。

# 马上运行,这个方法可以用来对你的对象做一些你希望的初始化。

def __init__(self):

#这里需要重载一下Login_window,同时也包含了QtWidgetsQMainWindow的预加载项。

super(Login_window, self)__init__()

selfsetupUi(self)

# 将点击事件与槽函数进行连接

selfbtn_loginclickedconnect(selfbtn_login_fuc)

#登录按钮 函数

def btn_login_fuc(self):

#1 获取输入的账户和密码

account = selftxt_1text() # 记得text要打括号()!

password = selftxt_2text()

if account == "" or password == "":

reply = QMessageBoxwarning(self,"警告","账号密码不能为空,请输入!")

return

#2 查询数据库,判定是否有匹配

ms = MSSQL()

result = msLogin_result(account, password)

if(len(result) > 0):

#1打开新窗口

Ui_Mainshow()#2关闭本窗口

selfclose()

else:

reply = QMessageBoxwarning(self,"警告","账户或密码错误,请重新输入!")

if __name__ == '__main__': #如果这个文件是主程序

app = QtWidgetsQApplication(sysargv) #QApplication相当于main函数,也就是整个程序(很多文件)的主入口函数。对于GUI程序必须至少有一个这样的实例来让程序运行。

window = Login_window() #生成一个实例(对象)

Ui_Main = Ui_Main() #生成主窗口的实例

windowshow() #有了实例,就得让它显示。这里的show()是QWidget的方法,用来显示窗口。

sysexit(appexec_()) # 调用sys库的exit退出方法,条件是appexec_()也就是整个窗口关闭。

Mainpy(主窗口)文件

import sys

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5QtCore import

from PyQt5QtWidgets import

from PyQt5QtGui import

from Ui_Main import Ui_MainWindow #由UI文件生成py文件后,导入创建的GUI类

import math

from PIL import Image, ImageDraw, ImageFont

import numpy as np

import os

import cv2 as cvcv

from class_Detection import Detection

class Ui_Main(QtWidgetsQMainWindow,Ui_MainWindow):

def __init__(self):

super(Ui_Main, self)__init__()

selfsetupUi(self)

# 将点击事件与槽函数进行连接

selfbtn_videoclickedconnect(selfbtn_video_fuc)

def btn_video_fuc(self):

filename = QFileDialoggetOpenFileName(self,'open file','/')

selftimer_camera = QTimer(self)

selfcap = cvcvcv2VideoCapture(filename[0])

selftimer_cameratimeoutconnect(selfshow_pic)

selftimer_camerastart(10) #1毫秒

def show_pic(self):

dc = Detection()

success,frame = selfcapread()

if success:

show = dcprocess_image(frame)

showImage = QImage(showdata, showshape[1], showshape[0],QImageFormat_RGB888)

selflabelsetPixmap(QPixmapfromImage(showImage))

selflabelsetScaledContents(True) #自适应

selftimer_camerastart(10)

if __name__ == '__main__':

app = QtWidgetsQApplication(sysargv)

window = Ui_Main()

windowshow()

sysexit(appexec_())

QT4和QT5版本的头文件不同,需要把QT4中的头文件#include <QtGui/QHBoxLayout>改为#include <QtWidgets/QHBoxLayout>,或者把安装的QT版本降为程序所对应的QT版本。

qt使用的是gcc的编译器,准确的说,是g++编译器。

使用qt是可以写C语言的程序的,因为g++编译器,或者说所有的C++编译器,均可以兼容大部分的C语言程序,只在关键字和void 指针转换上略有区别。

不过,qt的强大在于其C++界面,所以用qt来写C程序,并不是好的选择。

总结就是,能用,但是不好用。

弄了一下午的qt,到现在总算出来效果了,下面的代码,添加了个滑动条,拖拽可以实现窗体透明效果,button自然就更不在话下了,由于对qt不熟悉(答案基本是doc + google出来的),所以细节不好说,呵呵,事件是connect加上的,而要加控件,需要加一个布局吧。

from PyQt4 import QtCore, QtGui

from PyQt4QtGui import

from PyQt4QtCore import

class MyForm(QWidget):

def __init__(self, parent=None):

super(MyForm,self)__init__(parent)

selfpix = QPixmap("macpng")

selfresize(selfpixsize())

selfsetMask(selfpixmask())

slider = QSlider(QtHorizontal, self)

slidervalueChangedconnect(selfsetAlpha)

layout = QVBoxLayout()

layoutaddWidget(slider)

selfsetLayout(layout)

def setAlpha(self, value):

selfsetWindowOpacity((100 - value)/100)

def paintEvent(self,event):

painter = QPainter(self)

painterdrawPixmap(0,0,selfpixwidth(),selfpixheight(),selfpix)

app = QApplication([])

form = MyForm()

formshow()

appexec_()

以上就是关于python关闭主页面返回登录界面全部的内容,包括:python关闭主页面返回登录界面、vs2010新建QT项目中,引用#include <QtGui/QApplication>出“Error! 无法打开源文件QtGui/QApplication”、qt 只能写c++程序吗,不能写c语言的程序吗,要写c只能用 gtk吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9849368.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存