C#抽奖程序开发:简易Windows活动抽奖系统

版权申诉
0 下载量 162 浏览量 更新于2024-10-27 收藏 1.28MB ZIP 举报
资源摘要信息: "lucky.zip_Windows编程_C#_" 是一个用于活动抽奖的代码项目,该代码由C# 2005编写而成,涉及到Windows编程的知识领域。该项目包括多个文件,每个文件承担着不同的职责,共同构成了一个完整的活动抽奖系统。在深入分析之前,先对文件进行简要分类,主要包括设计视图文件、代码文件、资源文件和项目文件。 1. 设计视图文件(*.Designer.cs):这类文件是由Visual Studio自动生成的,包含控件声明和布局信息,用于简化Windows窗体应用程序的设计工作。例如: - **FrmMain_lite.Designer.cs** 和 **FrmMain.Designer.cs**:这两个文件都是针对主要的抽奖界面设计视图文件,后者可能是一个更完整的版本。文件中包含了界面上所有控件的实例化代码以及它们的初始设置。 - **FrmResult.Designer.cs**:这个文件是抽奖结果展示界面的设计视图文件,用于展示抽奖结果。 2. 代码文件(*.cs):这类文件包含了实际的C#代码逻辑,是项目的核心。例如: - **FrmMain.cs** 和 **FrmMain_lite.cs**:与各自对应的设计视图文件相辅相成,包含了抽奖界面的事件处理逻辑、数据绑定以及与抽奖功能相关的所有代码。 - **FrmResult.cs**:该文件负责抽奖结果界面的逻辑处理,比如结果显示、数据更新等。 - **Aword.cs**:根据上下文推测,这个文件可能包含抽奖奖项的定义,或者是奖项数据结构的代码。 - **MyLucky.csproj**:这是一个C#项目文件,用于定义整个项目的构建过程、依赖关系等信息。 3. 资源文件(*.resx):这类文件用于存储资源信息,比如字符串、图片等。例如: - **FrmMain.resx**:这个文件可能包含了FrmMain窗体所使用的本地化资源信息,如按钮文本、提示信息等。 4. 程序入口文件(Program.cs):这是一个特殊的代码文件,包含了Windows应用程序的入口点,即Main方法。Main方法是程序开始执行的地方,负责启动应用程序。 从项目标签来看,“Windows编程 C#”指明了项目的技术栈,即在Windows平台上使用C#语言进行编程开发。C# 2005是微软公司推出的.NET框架的第一个版本中的C#语言版本,因此该项目在技术层面上应属于较早期的.NET技术栈。 结合以上分析,该抽奖系统可能包含以下知识点: - **Windows窗体应用程序开发**:这是Windows平台上进行图形界面应用程序开发的一种方式,使用C#语言在Visual Studio这样的集成开发环境中实现。 - **控件使用与布局**:系统中各个界面所包含的控件(如按钮、文本框、列表等)以及它们在界面上的布局都是通过设计视图文件来实现的。 - **事件驱动编程**:Windows窗体应用程序中用户与界面的交互通常是通过事件来驱动的,即用户操作引发事件,事件触发对应的事件处理函数,执行相应的逻辑。 - **数据绑定与处理**:程序可能会涉及到数据的存储、处理和显示,比如存储抽奖结果,处理用户的输入,以及更新界面显示。 - **项目构建与编译**:通过MyLucky.csproj项目文件和Program.cs入口文件的相互协作,可以实现整个项目的编译构建过程。 以上内容概述了给定的"lucky.zip_Windows编程_C#_"项目的基本结构、文件功能和可能涉及的关键知识点,为理解该项目提供了详细的背景信息。

pyqt5怎么显示class QueryThread(QThread): query_result = pyqtSignal(object) def __init__(self, id): super().__init__() self.id = id def run(self): conn = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', database='jj_tset') cursor = conn.cursor() cursor.execute("SELECT * FROM employee_table WHERE user_id='%s'" % self.id) result = cursor.fetchone() conn.close() self.query_result.emit(result) # 发送查询结果信号 class MainWindow(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.query_thread = None # 查询线程 def read_data(self): data = self.ser.readline() if data: id = data.decode().strip() if not self.query_thread: # 如果查询线程不存在,则创建并启动 self.query_thread = QueryThread(id) self.query_thread.query_result.connect(self.update_ui) self.query_thread.start() else: self.query_thread.id = id # 如果查询线程已存在,则更新查询ID QTimer.singleShot(100, self.read_data) def update_ui(self, result): if result: self.id_label.setText("员工ID:" + result[0]) self.name_label.setText("姓名:" + str(result[1])) self.six_label.setText("性别:" + result[2]) self.sfz_label.setText("身份证:" + str(result[3])) self.tel_label.setText("电话:" + result[4]) else: self.id_label.setText("员工ID:") self.name_label.setText("姓名:") self.six_label.setText("性别:") self.sfz_label.setText("身份证:") self.tel_label.setText("电话:") def closeEvent(self, event): self.ser.close() if self.query_thread: self.query_thread.quit() self.query_thread.wait()

2023-05-27 上传

class MainWindow(QMainWindow): def init(self, user_id): super().init() self.user_id = user_id self.initUI() # 打开串口 self.ser = serial.Serial('COM7', 9600, timeout=1) def initUI(self): # 创建用于显示员工信息的控件 self.info_label = QLabel("员工信息", self) self.info_label.move(100, 50) self.info_label.setStyleSheet("font-size: 24px; color: black; background-color: #eee; border-radius: 10px;") self.id_label = QLabel("员工ID:", self) self.id_label.move(70, 100) self.id_label.setStyleSheet("font-size: 18px; color: black;") self.name_label = QLabel("姓名:", self) self.name_label.move(70, 150) self.name_label.setStyleSheet("font-size: 18px; color: black;") self.six_label = QLabel("性别:", self) self.six_label.move(70, 200) self.six_label.setStyleSheet("font-size: 18px; color: black;") self.sfz_label = QLabel("身份证:", self) self.sfz_label.move(70, 250) self.sfz_label.setStyleSheet("font-size: 18px; color: black;") self.tel_label = QLabel("电话:", self) self.tel_label.move(70, 300) self.tel_label.setStyleSheet("font-size: 18px; color: black;") self.setFixedSize(800, 500) self.setWindowTitle('员工信息') # 查询员工信息 def query_employee(self, id): conn = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', database='jj_tset') cursor = conn.cursor() cursor.execute("SELECT * FROM employee_table WHERE user_id='%s'" % id) result = cursor.fetchone() conn.close() return result # 读取数据 def read_data(self): data = self.ser.readline() if data: # 解析数据 id = data.decode().strip() # 查询员工信息 result = self.query_employee(id) if result: # 更新UI界面 self.id_label.setText("员工ID:" + result[0]) self.name_label.setText("姓名:" + str(result[1])) self.six_label.setText("性别:" + result[2]) self.sfz_label.setText("身份证:" + str(result[3])) self.tel_label.setText("电话:" + result[4]) print(result[0],result[1],result[2],result[3],result[4]) else: # 显示空白信息 self.id_label.setText("员工ID:") self.name_label.setText("姓名:") self.six_label.setText("性别:") self.sfz_label.setText("身份证:") self.tel_label.setText("电话:") # 定时读取数据 QTimer.singleShot(100, self.read_data) def closeEvent(self, event): # 关闭串口 self.ser.close()把这个改为多线程

2023-05-27 上传

class LoginWindow(QWidget): def init(self): super().init() self.initUI() def initUI(self): self.setFixedSize(800, 500) self.setWindowTitle('鸡爪称重系统') # 创建一个QStackedWidget控件 self.stacked_widget = QStackedWidget(self) self.stacked_widget.setGeometry(0, 0, 800, 500) # 创建Login界面 login_widget = QWidget() self.stacked_widget.addWidget(login_widget) # 在Login界面上创建一个按钮 button = QPushButton('开始称重', login_widget) button.move(100, 100) button.setGeometry(300, 200, 200, 50) button.clicked.connect(self.startWeighing) def startWeighing(self): # 创建一个新的QWidget info_widget = QWidget(self.stacked_widget) # 将info_widget添加到QStackedWidget中 self.stacked_widget.addWidget(info_widget) # 切换到新的QWidget self.stacked_widget.setCurrentWidget(info_widget) self.info_label = QLabel("员工信息", self) self.info_label.move(100, 50) self.info_label.setStyleSheet("font-size: 24px; color: black; background-color: #eee; border-radius: 10px;") self.id_label = QLabel("员工ID:", self) self.id_label.move(70, 100) self.id_label.setStyleSheet("font-size: 18px; color: black;") self.name_label = QLabel("姓名:", self) self.name_label.move(70, 150) self.name_label.setStyleSheet("font-size: 18px; color: black;") self.six_label = QLabel("性别:", self) self.six_label.move(70, 200) self.six_label.setStyleSheet("font-size: 18px; color: black;") self.sfz_label = QLabel("身份证:", self) self.sfz_label.move(70, 250) self.sfz_label.setStyleSheet("font-size: 18px; color: black;") self.tel_label = QLabel("电话:", self) self.tel_label.move(70, 300) self.tel_label.setStyleSheet("font-size: 18px; color: black;") self.setFixedSize(800, 500) self.setWindowTitle('员工信息') # 创建数字显示框和外框 value_widget = QWidget(self) value_widget.setGeometry(500, 100, 200, 100) self.lcd_1 = QLCDNumber(value_widget) self.lcd_1.setSegmentStyle(QLCDNumber.Flat) self.lcd_1.setDigitCount(10) self.lcd_1.display('0 KG') # self.thread = DataThread() # self.thread.valueUpdated.connect(self.lcd_1.display) # self.thread.start() hbox_layout = QHBoxLayout(value_widget) hbox_layout.addWidget(self.lcd_1) hbox_layout.setContentsMargins(0, 0, 0, 0) hbox_layout.setSpacing(0) value_widget.setStyleSheet(''' background-color: #eee; border-radius: 10px; border: 2px solid black; ''') # 创建返回按钮 back_button = QPushButton('返回', self) back_button.setGeometry(600, 400, 100, 50) back_button.clicked.connect(self.backToLoginWindow) # 设置窗口大小和标题 self.setFixedSize(800, 500) self.setWindowTitle('员工信息') def backToLoginWindow(self): self.stacked_widget.setCurrentIndex(0)没有显示label

2023-05-27 上传
2023-05-27 上传

def initUI(self): self.setFixedSize(800, 500) self.setWindowTitle('鸡爪称重系统') # 创建一个QStackedWidget控件 self.stacked_widget = QStackedWidget(self) self.stacked_widget.setGeometry(0, 0, 800, 500) # 创建Login界面 login_widget = QWidget() self.stacked_widget.addWidget(login_widget) # 在Login界面上创建一个按钮 button = QPushButton('开始称重', login_widget) button.move(100, 100) button.setGeometry(300, 200, 200, 50)怎么点击按钮后跳转下个界面,class NextWindow(QWidget): def __init__(self): super().__init__() self.user_id = user_id self.initUI() # 打开串口 self.ser = serial.Serial('COM7', 9600, timeout=1) def initUI(self): # 创建用于显示员工信息的控件 self.info_label = QLabel("员工信息", self) self.info_label.move(100, 50) self.info_label.setStyleSheet("font-size: 24px; color: black; background-color: #eee; border-radius: 10px;") self.id_label = QLabel("员工ID:", self) self.id_label.move(70, 100) self.id_label.setStyleSheet("font-size: 18px; color: black;") self.name_label = QLabel("姓名:", self) self.name_label.move(70, 150) self.name_label.setStyleSheet("font-size: 18px; color: black;") self.six_label = QLabel("性别:", self) self.six_label.move(70, 200) self.six_label.setStyleSheet("font-size: 18px; color: black;") self.sfz_label = QLabel("身份证:", self) self.sfz_label.move(70, 250) self.sfz_label.setStyleSheet("font-size: 18px; color: black;") self.tel_label = QLabel("电话:", self) self.tel_label.move(70, 300) self.tel_label.setStyleSheet("font-size: 18px; color: black;") self.setFixedSize(800, 500) self.setWindowTitle('员工信息')

2023-05-27 上传