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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 系统日志查看journalctl命令详解

    系统日志查看journalctl命令详解简介从2012年开始,大部分linux发行版本开始从传统的systemv初始化系统移植到一个叫做systemd的全新系统。systemd用来启动系统并管理进程。systemd包含了一个叫做journalctl的辅助组件,其主要作用是管理系统的事件日志记录。journalctl可以查看所有的系统日志文件,由于日志信息量很大,journalctl还提供了各种参数帮助用户更快速的定位到日志信息。默认情况下,用户都可以访问自己的日志。对于系统主日志和其他用户的日志,仅限于有权限的用户访问,比如root用户,

    2022年5月10日
    36
  • idea代码颜色搭配方案_idea设置注释颜色

    idea代码颜色搭配方案_idea设置注释颜色Github开发的Atom编辑器相信大家都已经用过了。经过这两年的迭代开发,内存占用,启动慢,卡顿很多大坑都已经填上。目前他已经是我写shell/bat/js的主力,当前除了插件安装比较麻烦(需要梯子,或者github+npminstall)我最满意的一点就是Atom的配色方案。他的OneDark配色方案是我见过的最赞的方案之一。深沉的背景/天蓝色的函数/浅灰色的注释/粉色关键字/红色的变量/

    2022年8月28日
    5
  • 视觉欺骗:你绝不会相信A和B颜色相同!

    视觉欺骗:你绝不会相信A和B颜色相同!心理导读:图中标为A和B的两个方格其实具有相同的颜色。明明一黑一白的方格,EdwardH.Adelson却说它们颜色一样!到底应该相信科学家还是自己的眼睛?——www.xinli001.com要证明其实很简单,请下载这张图片,然后用任何可以取色的图像处理软件打开它,接着用取色工具提取A、B方格的颜色值。下图是本图在Paint.NET里面的取色结果。可以看出,A、B方格的

    2025年6月18日
    0
  • C语言之数组(数组赋值的三种形式)

    C语言之数组(数组赋值的三种形式)在C语言中,对数组进行赋值的三种形式1、通过循环的形式    即:数组名[下标]    对数组的元素进行依次赋值 #include&lt;stdio.h&gt;intmain(){inti;inta[10]={0};for(i=0;i&lt;10;i++){scanf("%d",&amp;a[…

    2022年7月11日
    17
  • c语言函数指针的用法_函数指针作为形参

    c语言函数指针的用法_函数指针作为形参前言函数指针和指针函数,在学习 C 语言的时候遇到这两个东西简直头疼,当然还有更头疼的,比如什么函数指针函数、指针函数指针、数组指针、指针数组、函数指针数组等等,描述越长其定义就越复杂,当然理解起来就越难,特别是刚开始学习这门语言的童鞋,估计碰到这些东西就已经要崩溃了,然后好不容易死记硬背下来应付考试或者面试,然后过了几天发现,又是根本不会用,也不知道该在哪些地方用,这就尴尬了。今天这里只讲两…

    2022年8月18日
    4
  • Android adb install 命令安装apk

    Android adb install 命令安装apk如果有人发送一个apk安装包给你安装,普通人都是先把apk文件拷到手机存储内,然后在手机存储找到该安装包,点击安装。但是这样太麻烦了,而且对我们程序猿来说不够逼格,其实我们可以通过adb命令,一行搞定adbinstallapk安装包路径C:\Users\Him>adbinstalld:/app-debug.apkd:/app-debug.apk:1filepu…

    2022年6月5日
    333

发表回复

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

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