PyQt5是Python语言的一组绑定,用于QT库。它允许python的程序员使用C++的QT库的全部写出程序,从而获得了良好的GUI能力。在这里,我将介绍如何用Python3和PyQt5构建一个简单的GUI程序。
首先我们要安装PyQt5和pymysql这两个库。可以使用pip从命令行安装这两个库。输入以下命令:
```pip install PyQt5```
```pip install pymysql```
下面我们开始构建一个简单的GUI程序。
#### 步骤1:创建一个GUI窗口
```Python
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口的标题和大小
self.setWindowTitle("PyQt5程序")
self.setGeometry(100, 100, 500, 500)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
```
我们创建了一个MainWindow类,它继承了QMainWindow类,这意味着我们创建了一个主窗口。我们使用```__init()__```方法定义了窗口的标题和大小。通过```app = QApplication(sys.argv)```创建应用程序对象。通过```main_window = MainWindow()```创建一个MainWindow实例,通过```main_window.show()```显示出窗口,通过```sys.exit(app.exec_()) ```终止程序运行。
此时,你应该能够看到一个大小为500x500像素的空白窗口。
#### 步骤2:添加标签、文本框及按钮
```Python
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 定义一个标签
label = QLabel("username:", self)
label.move(50, 100)
# 定义一个文本框
self.edit = QLineEdit(self)
self.edit.setGeometry(QRect(110, 100, 220, 25))
# 添加一个按钮,点击后可以连接到一个槽函数
button = QPushButton("提交", self)
button.setGeometry(QRect(270, 140, 80, 28))
button.clicked.connect(self.submit)
# 设置窗口的标题,大小和背景颜色
self.setWindowTitle("PyQt5程序")
self.setGeometry(100, 100, 500, 500)
self.setStyleSheet("background-color: #456;")
def submit(self):
text = self.edit.text()
QMessageBox.information(self, 'PyQt5', "你输入的是:" + text)
```
我们添加了一个标签和一个文本框。通过```QLabel```添加标签,我们在窗口上指定标签的位置;通过```QLineEdit```添加文本框,我们在窗口上指定文本框的大小和位置。
我们还添加了一个按钮,它将在单击时调用submit函数。上面的submit函数是一种槽,它将从文本框中读取文本并将其显示在一个对话框中。对话框是通过```QMessageBox```函数创建的。我们在函数末尾调用exec_()方法,以展示对话框。
#### 步骤3:连接MySQL数据库
```Python
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 定义一个标签
label = QLabel("username:", self)
label.move(50, 100)
# 定义一个文本框
self.edit = QLineEdit(self)
self.edit.setGeometry(QRect(110, 100, 220, 25))
# 添加一个按钮,点击后可以连接到一个槽函数
button = QPushButton("提交", self)
button.setGeometry(QRect(270, 140, 80, 28))
button.clicked.connect(self.submit)
# 设置窗口的标题,大小和背景颜色
self.setWindowTitle("Python GUI程序")
self.setGeometry(100, 100, 500, 500)
self.setStyleSheet("background-color: #456;")
# 连接MySQL数据库
self.conn = pymysql.connect(host='localhost', user='root', password='password', db='test')
self.cur = self.conn.cursor()
def submit(self):
text = self.edit.text()
self.cur.execute("INSERT INTO user(name) VALUES('%s')" % text)
self.conn.commit()
QMessageBox.information(self, 'Python GUI程序', "插入数据成功!")
```
我们通过```pymysql.connect()```来连接MySQL数据库。我们使用```self.conn.cursor()```定义一个游标对象,以便我们可以执行SQL命令和从数据库中检索数据。
我们还添加了submit()函数,以将文本框的内容插入到MySQL数据库中。通过```INSERT INTO```命令将值插入```user```表中的```name```字段。
好了,现在我们就创建了一个基于PyQt5和Python的GUI程序,它可以将用户输入插入到MySQL数据库中。
以上是本程序的核心代码,完整代码可以见下方。