pyqt5开发的漂亮界面_pyqt5美化包

pyqt5开发的漂亮界面_pyqt5美化包今天闲来无事,用python写了一个抽奖程序pyqt版本:pyqt5python版本:3.6.6下面直接上代码,有建议的话,欢迎大家交流评论!#-*-coding:utf-8-*-#Formimplementationgeneratedfromreadinguifile’Lucky_draw.ui’##Createdby:PyQt5UIcodegenerator5.15.1##WARNING:Anymanualchangesmadeto

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

今天闲来无事,用python写了一个抽奖程序
pyqt版本:pyqt5
python版本:3.6.6
下面直接上代码,有建议的话,欢迎大家交流评论!

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Lucky_draw.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QMainWindow, QApplication,QLabel,QLineEdit,QMessageBox,QComboBox)
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtCore import Qt, QThread, pyqtSignal
import sys
import random
import time

tester = ["发", "我", "人", "他", "去", "个", "给", "如", "吃", "分"]


class Ui_Lucky_draw(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(658, 526)
        self.horizontalLayoutWidget = QtWidgets.QWidget(Dialog)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(9, 9, 641, 401))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.textEdit_2 = QtWidgets.QTextEdit(self.horizontalLayoutWidget)
        self.textEdit_2.setEnabled(False)
        self.textEdit_2.setObjectName("textEdit_2")
        self.horizontalLayout.addWidget(self.textEdit_2)
        self.label = QtWidgets.QLabel(self.horizontalLayoutWidget)
        self.label.setObjectName("label")
        self.horizontalLayout.addWidget(self.label)
        self.textEdit = QtWidgets.QTextEdit(self.horizontalLayoutWidget)
        self.textEdit.setEnabled(False)
        self.textEdit.setObjectName("textEdit")
        self.horizontalLayout.addWidget(self.textEdit)
        self.verticalLayoutWidget = QtWidgets.QWidget(Dialog)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 430, 641, 91))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        self.pushButton_2 = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton_2.setObjectName("pushButton_2")
        self.verticalLayout.addWidget(self.pushButton_2)
        qssStyle = ''' QPushButton{background-color:orange} '''
        # 加载设置好的样式
        self.verticalLayoutWidget.setStyleSheet(qssStyle)
        self.font = QtGui.QFont()
        self.font.setFamily("Arial")  # 括号里可以设置成自己想要的其它字体
        self.font.setPointSize(20)  # 括号里的数字可以设置成自己想要的字体大小
        self.textEdit.setFont(self.font)
        self.textEdit_2.setFont(self.font)
        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "欢乐大抽奖"))
        self.label.setText(_translate("Dialog", "-》"))
        self.pushButton.setText(_translate("Dialog", "开始游戏"))
        self.pushButton.clicked.connect(self.test)
        #self.textEdit.setPlaceholderText("大奖究竟花落谁家,敬请期待!!!")
        self.pushButton_2.setText(_translate("Dialog", "抽奖结束"))
        self.pushButton_2.clicked.connect(self.jump_to_success)



    def test(self):
        thread_conut = 0
        self.my_thread = MyThread()  # 实例化线程对象
        self.my_thread.my_signal.connect(self.set_label_func)
        self.my_thread.is_on = True
        self.my_thread.start()  # 启动线程
        self.pushButton.setEnabled(False)
        self.textEdit.setText("大奖究竟花落谁家,敬请期待!!!")
        # 线程自定义信号连接的槽函数


    def set_label_func(self, num):
        global tester
        self.textEdit_2.setPlainText(num)
        # 由于自定义信号时自动传递一个字符串参数,所以在这个槽函数中要接受一个参数

    def jump_to_success(self):
        #tester = ["发", "我", "人", "他", "去", "个", "给", "如", "吃", "分"]
        t = random.randint(0, 9)
        print(random.randint(0, 9))
        print('选中的幸运儿是:', tester[t], '新年快乐!')
        self.textEdit.setText('选中的幸运儿是:'+ tester[t]+' 新年快乐!')
        self.textEdit_2.setPlainText(tester[t])
        self.my_thread.is_on = False
        self.my_thread.count = 0
        self.pushButton.setEnabled(True)


    # 线程类
class MyThread(QThread):
    # 自定义信号对象。参数str就代表这个信号可以传一个字符串
    my_signal = pyqtSignal(str)
    def __init__(self):
        super(MyThread, self).__init__()
        self.count = 0
        self.is_on = True


    def run(self): #线程执行函数
        global tester
        while self.count < (len(tester)):
            while self.is_on:
                print('次数',self.count+1)
                self.my_signal.emit(str(tester[self.count]))  #释放自定义的信号
                self.count = random.randint(0, 9)
                #通过自定义信号把str(self.count)传递给槽函数
                self.sleep(1)  #本线程睡眠n秒【是QThread函数】

if __name__ == "__main__":
    app = QApplication(sys.argv)
    form = QtWidgets.QWidget()
    window = Ui_Lucky_draw()
    window.setupUi(form)
    form.show()
    sys.exit(app.exec_())
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184383.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu杀死进程命令_ubuntu系统安装教程图解

    ubuntu杀死进程命令_ubuntu系统安装教程图解在用ubuntu的时候遇到几次程序卡死,但是不知道怎么关闭,心想有没有跟window一样的程序管理器存在?所以就去网上找了下解决方式记录一下:1、打开系统监视器:gnome-ststem-monitor然后就可以选择进程结束掉啦。2、如果知道程序名称可以命令杀死:killallXXX杀掉所有的进程killxxx(PID)杀死进程号xxx的进程,查看所有运行进程的命令:ps-aux…

    2022年9月21日
    0
  • 51单片机最小系统的检查

    51单片机最小系统的检查以STC89C52为例(洞洞板、蚀刻板都要检查,工厂打板部分步骤可省略)准备:万用表(调至电压档),单片机最小系统(需供电)1.测量单片机供电是否正常51单片机的P20脚为GND,P40脚为VCC,红表笔接VCC,黑表笔接地:如果结果不为5V(2.6V或者其他),考虑是电源的问题。1.1首先检查电源线,红表笔接正极,黑表笔接负极,显示为5V左右,电源线正常。考虑是电路板的问题1.2将电压表调至通断档(红黑表笔短接电压表鸣叫)。首先检查GND连接是否…

    2022年6月23日
    29
  • python协程系列_python scrapy

    python协程系列_python scrapy协程的定义协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动

    2022年7月31日
    2
  • 计算流体力学基础与网格概述(与书同行)——ANSYS ICEM CFD网格划分从入门到精通——丁源「建议收藏」

    计算流体力学基础与网格概述(与书同行)——ANSYS ICEM CFD网格划分从入门到精通——丁源「建议收藏」一、计算流体力学基础:1、 建立物理模型,将其抽象为数学、力学模型后,要分析几何体的空间影响区域;2、 建立整个几个形体与其空间影响区域(计算区域的CAD模型),将整个计算区域进行空间网格划分。3、 加入求解所需要的初始条件;4、 选择适当的算法,设置具体的控制求解过程和精度的一些条件,对所研究的问题进行分析,保存数据文件结果;5、 选择合适的后处理器(postprocessor)读取计算结果文件,分析并且显示出来。数值模拟方法:1、 有限差分法;2、 有限元法;3、 有限体积法;子域法

    2022年5月26日
    48
  • keil5安装教程简单易上手

    keil5安装教程简单易上手keil5安装教程简单易上手首先对于开发ARM系列MCU来说常用MDK来进行开发废话不多说。文章最后含F0-F7系列pcak包链接1.下载keil5安装包(内含pack包)链接:https://pan.baidu.com/s/1wUH3K-0bxkLhKcDaL92X5A提取码:mnjb2.安装keil5(1).下载打开安装内容分别为如下如果没看见破解机请解压里面的key压缩包(2).打开安装包界面如下(3).先勾选协议在点击NEXT(4).建议不要安装系统盘自行

    2022年5月23日
    61
  • Bug.PotPlayer播放视频上下、左右翻转

    Bug.PotPlayer播放视频上下、左右翻转2018/8/8 PotPlayer作为一款全能、绿色的视频播放器倍受喜爱。在使用中偶尔可能会出现播放视频上下倒置、左右翻转的情况,一时让人摸不着头脑。其实是误触了快捷键导致图像颠倒,再次按下快捷键即可恢复。上下倒置的情况,这时在播放界面按下“Ctrl+V”快捷键;界面左上角提示“图像上下翻转:关闭”,视频播放恢复正常。左右翻转时,如果无字幕其实并不影响观看;这时按下快捷键“Ctrl+…

    2022年5月12日
    163

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号