#登录函数
def login(self):
username = self.lineEdit.text()
password = self.lineEdit_2.text()
# 在此处添加验证逻辑
if username == "admin" and password == "admin":
QtWidgets.QMessageBox.information(None, "登录", "登录成功!")
else:
QtWidgets.QMessageBox.warning(None, "登录", "用户名或密码错误!")
def login(self): username = self.lineEdit.text() password = self.lineEdit_2.text() with open('accounts.csv', 'r', newline='') as file: reader = csv.DictReader(file) for row in reader: if row['username'] == username and row['password'] == password: QtWidgets.QMessageBox.information(None, "登录", "登录成功!") return QtWidgets.QMessageBox.warning(None, "登录", "用户名或密码错误!")
这段代码打开名为accounts.csv的文件,并使用csv.DictReader来读取CSV内容。然后,它逐行检查用户名和密码是否与输入匹配。如果找到匹配项,显示登录成功的消息框并返回。如果没有找到匹配项,则显示错误消息框
PS D:\免密ui_obe> & D:/Amaconda/python.exe d:/免密ui_obe/密码学obe/denglu.py
Traceback (most recent call last):
File "d:\免密ui_obe\密码学obe\denglu.py", line 56, in login
with open('D:\免密ui_obe\密码学obe\accounts.csv', 'r', newline='') as file:
OSError: [Errno 22] Invalid argument: 'D:\\免密ui_obe\\密码学obe\x07ccounts.csv'
要将控件的颜色设置为粉色,您可以在样式表中使用颜色属性来实现。请尝试以下样式表代码:
setStyleSheet
self.frame.setStyleSheet("background-color: rgb(255, 192, 203);") # 设置背景色为粉色 self.label.setStyleSheet("color: rgb(255, 192, 203);") # 设置字体颜色为粉色 self.checkBox.setStyleSheet("color: rgb(255, 192, 203);") # 设置字体颜色为粉色 self.checkBox_2.setStyleSheet("color: rgb(255, 192, 203);") # 设置字体颜色为粉色 self.pushButton.setStyleSheet("background-color: rgb(255, 192, 203);") # 设置背景色为粉色 self.lineEdit.setStyleSheet("background-color: rgb(255, 192, 203);") # 设置背景色为粉色 self.lineEdit_2.setStyleSheet("background-color: rgb(255, 192, 203);") # 设置背景色为粉色
将上述代码放置在setupUi
方法中的适当位置,以设置相应控件的颜色为粉色。
self.right_folder_button1 = QtWidgets.QPushButton(qtawesome.icon('fa.user-circle', color='balck'), "查询")
self.right_folder_button1.setObjectName('right_search_button')
self.right_folder_button1.setStyleSheet('''QPushButton{border:none;color:black;}''')
self.right_folder_button1.setFont(qtawesome.font('fa', 20))
self.right_folder_button1.clicked.connect(self.view_data111)
self.right_folder_button1.setFixedSize(110, 30) # 设置按钮大小
self.right_folder_button1.setStyleSheet(
"QPushButton{color:highlight}"
"QPushButton:hover{color:white}"
"QPushButton{background-color:rgb(0,191,255)}"
"QPushButton{border:2px}"
"QPushButton{border-radius:10px}"
"QPushButton{padding:5px 6px}"
"QPushButton{font-size:14pt}")
#导入数据库 def right_folder_button_clicked51(self): try: file = open("8.txt", 'w').close() ap = demo.right_bar_widget_folder_input9.text() if ap == '': QMessageBox.information(self, '错误', '输入不能为空', QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) else: book = xlrd.open_workbook(ap) sheet = book.sheet_by_index(0) # 建立一个MySQL连接 conn = pymysql.connect( host='localhost', user='root', passwd='@hdp020280', db='警务人员管控表', charset='utf8' ) # 获得游标 cur = conn.cursor() # 创建插入SQL语句 query = 'insert into student(学号,姓名,专业,班级,高级程序语言,python编程,数据库原理,数据结构与算法,数学分析,高等数学,网络爬虫,数据可视化,数据挖掘,数据分析) values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' # 创建一个for循环迭代读取xls文件每行数据的, 从第二行开始是要跳过标题行 for r in range(0, sheet.nrows): 学号 = sheet.cell(r, 0).value 姓名 = sheet.cell(r, 1).value 专业 = sheet.cell(r, 2).value 班级 = sheet.cell(r, 3).value 高级程序语言 = sheet.cell(r, 4).value python编程 = sheet.cell(r, 5).value 数据库原理 = sheet.cell(r, 6).value 数据结构与算法 = sheet.cell(r, 7).value 数学分析 = sheet.cell(r, 8).value 高等数学 = sheet.cell(r, 9).value 网络爬虫 = sheet.cell(r, 10).value 数据可视化 = sheet.cell(r, 11).value 数据挖掘 = sheet.cell(r, 12).value 数据分析 = sheet.cell(r, 13).value #8.txt是存储学号和姓名的 with open('8.txt', 'a') as f3: f3.write(sheet.cell(r, 0).value + " " + sheet.cell(r, 1).value+"\n") values = (学号, 姓名, 专业, 班级, 高级程序语言, python编程, 数据库原理, 数据结构与算法, 数学分析, 高等数学, 网络爬虫, 数据可视化, 数据挖掘, 数据分析) # 执行sql语句 cur.execute(query, values) cur.close() conn.commit() conn.close() QMessageBox.information(self, '成功', '导入成功', QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes) except: QMessageBox.information(self, '错误', '导入失败', QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
这段代码是一个用于导入数据库的函数。它的作用是读取一个Excel文件并将数据插入到MySQL数据库中。
首先,函数会尝试打开一个名为"8.txt"的文件,并清空其内容。
接下来,它获取用户在界面上输入的文件路径,并使用xlrd库打开该Excel文件。然后,通过指定索引值为0,获取Excel文件的第一个表格(sheet)。
sheet = book.sheet_by_index(0)
之后,代码建立一个与MySQL数据库的连接,使用pymysql库提供的`connect()`函数,并传入数据库的相关信息,如主机名(host)、用户名(user)、密码(passwd)、数据库名(db)和字符集(charset)等。
接下来,通过调用`cursor()`方法创建一个游标对象,该对象用于执行SQL语句。
然后,代码定义了一个插入SQL语句的字符串变量`query`,其中包含了插入语句的结构和占位符。
在一个for循环中,代码迭代读取Excel文件的每一行数据,从第二行开始(跳过标题行)。然后,它使用`sheet.cell()`方法获取单元格的值,并将这些值赋给相应的变量,如学号、姓名、专业等。
在每次迭代中,代码将学号和姓名写入到"8.txt"文件中,然后将所有变量的值组成一个元组`values`。
#8.txt是存储学号和姓名的
with open('8.txt', 'a') as f3:
f3.write(sheet.cell(r, 0).value + " " + sheet.cell(r, 1).value+"\n")
接下来,代码执行SQL语句,使用游标对象的`execute()`方法,传入插入语句和值的元组。
循环结束后,代码关闭游标对象,并使用连接对象的`commit()`方法提交事务,然后关闭数据库连接。
最后,根据导入的结果,使用`QMessageBox.information()`方法显示相应的提示框,提示导入是否成功。
如果出现任何异常,代码会捕获异常,并显示导入失败的提示框。
需要注意的是,该代码存在一些潜在的问题和安全隐患,比如没有对用户输入进行验证和过滤,没有异常处理的具体信息等,建议在使用之前进行相关的优化和改进。
#信息查询中查询全部信息 def view_data(self): try: global db db = QtSql.QSqlDatabase.addDatabase('QMYSQL') db.setHostName('localhost') db.setDatabaseName('student') db.setUserName('root') db.setPassword('@hdp020820') if not db.open(): # 判断数据库是否打开 print(db.lastError().text()) # 打印操作数据库时出现的错误 return False else: print("连接成功") except: pass
这段代码是一个用于查询全部信息的函数。它使用了QtSql模块来连接MySQL数据库,并查询数据库中的全部数据。
首先,函数定义了一个全局变量`db`,用于存储数据库连接对象。
然后,通过调用`QtSql.QSqlDatabase.addDatabase()`方法创建一个数据库连接对象,并指定数据库类型为MySQL。
接下来,通过设置数据库连接对象的相关属性,如主机名(setHostName)、数据库名(setDatabaseName)、用户名(setUserName)和密码(setPassword),来配置数据库连接信息。
在代码中,主机名设置为'localhost',数据库名设置为'student',用户名设置为'root',密码设置为'@hdp020820'。你可以根据实际情况进行修改。
然后,代码使用`db.open()`方法来尝试打开数据库连接。如果连接成功,将打印"连接成功"的消息;如果连接失败,将打印操作数据库时出现的错误信息,并返回False。
最后,代码使用try-except块来捕获任何可能的异常,如果出现异常,则通过`pass`语句进行忽略。
需要注意的是,该代码中的数据库连接信息是硬编码在代码中的,建议将敏感信息存储在安全的位置,并通过配置文件或其他方式进行读取。另外,代码中只是进行了数据库连接的操作,还需要进一步的代码来执行查询操作并获取查询结果。
你可以根据具体需求,在函数中添加相应的代码来执行查询操作,并处理查询结果。
self.jiami = QtWidgets.QPushButton(self.verticalLayoutWidget) self.jiami.setObjectName("jiami") self.verticalLayout.addWidget(self.jiami) self.jiemi = QtWidgets.QPushButton(self.verticalLayoutWidget) self.jiemi.setObjectName("jiemi")
qt与windows平台的驱动
class ImgWindow(): # 显示图片的窗口 def __init__(self): super().__init__() # 使用ui文件导入定义界面类 self.ui = QUiLoader().load('img_window.ui') self.ui.Button_exit.clicked.connect(self.exit_b) # global_ms.ms.connect(self.load_img) # 连接信号与槽 def exit_b(self): os.remove("temp.png") # 删除生成的临时文件 self.ui.close() def load_img(self, object): im = Image.open(object) # 这里把原来的jpg转化成png之后打开 im.save('temp.png') pixmap = QtGui.QPixmap('temp.png') label = self.ui.img_label label.setPixmap(pixmap) # 加载图片 label.setScaledContents(True) # 自适应
控件属性
全部教程
https://www.cnblogs.com/xuhongfei/p/14023230.html
plt.figure(figsize = (8,3))
plt.subplot(121)
plt.hist(df['total acid'], bins = 50, color = color[0])
plt.xlabel('total acid')
plt.ylabel('Frequency')
plt.subplot(122)
plt.hist(np.log(df['total acid']), bins = 50 , color = color[0])
plt.xlabel('log(total acid)')
plt.ylabel('Frequency')
plt.tight_layout()
print("Figure 5: Total Acid Histogram")
设置背景图片
超详细且简单的Qt Designer设置界面背景图_qtdesigner改dialog背景_府学路18号车神的博客-CSDN博客