python界面图片预览与标题描述上传练习

附件图片预览,标题描述等信息传递

import sys
import datetime
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtWidgets import *
import pymysql


class picture(QWidget):
    def __init__(self):
        super(picture, self).__init__()
        #主体窗口的宽度高度
        self.resize(800, 600)
        #主体窗口标题
        self.setWindowTitle("label显示图片")



        #
        self.label_1 = QtWidgets.QLabel(self)
        self.label_1.setGeometry(QtCore.QRect(10, 10, 55, 25))
        self.label_1.setText("工单标题")

        self.label_2 = QtWidgets.QLabel(self)
        self.label_2.setGeometry(QtCore.QRect(10, 50, 55, 25))
        self.label_2.setText("工单描述")

        self.lineEdit_1 = QtWidgets.QLineEdit(self)
        self.lineEdit_1.setGeometry(QtCore.QRect(70, 10, 400, 25))

        self.lineEdit_2 = QtWidgets.QLineEdit(self)
        self.lineEdit_2.setGeometry(QtCore.QRect(70, 50, 400, 25))

        self.lineEdit_3 = QtWidgets.QLineEdit(self)
        self.lineEdit_3.setGeometry(QtCore.QRect(70, 90, 400, 25))

        self.lineEdit_4 = QtWidgets.QLineEdit(self)
        self.lineEdit_4.setGeometry(QtCore.QRect(70, 130, 400, 25))

        self.lineEdit_5 = QtWidgets.QLineEdit(self)
        self.lineEdit_5.setGeometry(QtCore.QRect(70, 170, 400, 25))

        self.pushButton_2 = QtWidgets.QPushButton(self)
        self.pushButton_2.setGeometry(QtCore.QRect(10, 90, 55, 25))
        self.pushButton_2.setText('读取文件')
        self.pushButton_2.clicked.connect(self.openimage1)

        self.pushButton_3 = QtWidgets.QPushButton(self)
        self.pushButton_3.setGeometry(QtCore.QRect(10, 130, 55, 25))
        self.pushButton_3.setText('读取文件')
        self.pushButton_3.clicked.connect(self.openimage2)

        self.pushButton_4 = QtWidgets.QPushButton(self)
        self.pushButton_4.setGeometry(QtCore.QRect(10, 170, 55, 25))
        self.pushButton_4.setText('读取文件')
        self.pushButton_4.clicked.connect(self.openimage3)

        self.pushButton_5 = QtWidgets.QPushButton(self)
        self.pushButton_5.setGeometry(QtCore.QRect(10, 210, 55, 25))
        self.pushButton_5.setText('文件提交')
        self.pushButton_5.clicked.connect(self.file_tj)

        self.pushButton_6 = QtWidgets.QPushButton(self)
        self.pushButton_6.setGeometry(QtCore.QRect(630, 210, 55, 25))
        self.pushButton_6.setText('刷新')
        self.pushButton_6.clicked.connect(self.shuju_xs)

        # 信息反馈
        self.label_fk = QLabel(self)
        self.label_fk.setText("信息反馈")
        self.label_fk.move(70,  210)
        self.label_fk.setFixedSize( 550, 25)



        #内部 显示图片 框属性
        self.label = QLabel(self)
        # 内部 显示图片 框标题初始
        self.label.setText("图片预览")
        # 内部窗口的宽度高度
        self.label.setFixedSize(300, 185)
        # 内部窗口的显示位置
        self.label.move(490, 10)
        # 内部窗口的内属性 font-size 字体大小,
        self.label.setStyleSheet("QLabel{background:white;}"
                                 "QLabel{color:rgb(300,300,300,120);font-size:20px;font-weight:bold;font-family:宋体;}"
                                 )

        layout = QVBoxLayout()
        # 表格
        self.table_widget = QTableWidget(20, 8)  # 行数,列数
        # self.table_widget.setGeometry(QtCore.QRect(0, 280, 801, 281))
        self.table_widget.setFixedSize(800, 350)  # 宽度,高度
        self.table_widget.setColumnWidth(0, 55)
        # self.table_widget.setRowHeight(10, 10)
        self.table_widget.setHorizontalHeaderLabels(['工单编号', '工单标题', '工单描述', '发起人编码',
                                                     '发起时间', '附件1', '附件2', '附件3'])
        self.table_widget.setEditTriggers(QAbstractItemView.NoEditTriggers)  # 表格内容只读
        self.table_widget.setSelectionBehavior(QAbstractItemView.SelectRows)  # 点击选择整行
        self.shuju_xs()
        self.spacerItem = QtWidgets.QSpacerItem(1, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        layout.addItem(self.spacerItem)
        layout.addWidget(self.table_widget)

        self.setLayout(layout)





    def openimage1(self):
        """图片打开窗体"""
        #"*.jpg;;*.png;;All Files(*)" 是在打开窗体下显示的类型
        imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;All Files(*)")
        self.lineEdit_3.setText(imgName) #打开文件路径
        jpg = QtGui.QPixmap(imgName).scaled(self.label.width(), self.label.height())
        # 在窗体显示
        self.label.setPixmap(jpg)

    def openimage2(self):
        """图片打开窗体"""
        #"*.jpg;;*.png;;All Files(*)" 是在打开窗体下显示的类型
        imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;All Files(*)")
        self.lineEdit_4.setText(imgName) #打开文件路径
        jpg = QtGui.QPixmap(imgName).scaled(self.label.width(), self.label.height())
        # 在窗体显示
        self.label.setPixmap(jpg)

    def openimage3(self):
        """图片打开窗体"""
        #"*.jpg;;*.png;;All Files(*)" 是在打开窗体下显示的类型
        imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;All Files(*)")
        self.lineEdit_5.setText(imgName) #打开文件路径
        jpg = QtGui.QPixmap(imgName).scaled(self.label.width(), self.label.height())
        # 在窗体显示
        self.label.setPixmap(jpg)

    def file_tj(self):
        """图片打开窗体"""
        if len(self.lineEdit_1.text())== 0 :
            self.label_fk.setText('标题为空')
        elif len(self.lineEdit_2.text())== 0 :
            self.label_fk.setText('描述为空')
        else:
            self.label_fk.setText(self.lineEdit_1.text() +':'+ self.lineEdit_2.text())
            # 登录数据库
            self.conn = pymysql.connect(host='127.0.0.1', port=3306, user='szc', password='szcNSP850219',
                                        database='szc_sql', charset='utf8')
            # 得到一个可以执行SQL语句的光标对象
            self.cursor = self.conn.cursor()
            sql = "insert into zibo_gd_wjsc (BIAOTI,MIAOSHU,USER_ID,IN_TIME,URL1,URL2,URL3) " \
                  "values('%s','%s','%s',now(),'%s','%s','%s') " % (
                self.lineEdit_1.text(), self.lineEdit_2.text(), 'shazhicheng',self.lineEdit_3.text(),self.lineEdit_4.text(),self.lineEdit_5.text(),)
            self.count = self.cursor.execute(sql)
            self.conn.commit()
            # 关闭光标对象
            self.cursor.close()
            # 关闭数据库连接
            self.conn.close()
            self.shuju_xs()
            self.label_fk.setText("导入成功")


    def shuju_xs(self):
        # 添加数据
        # 登录数据库
        self.conn = pymysql.connect(host='127.0.0.1', port=3306, user='szc', password='szcNSP850219',
                                    database='szc_sql', charset='utf8')
        # 得到一个可以执行SQL语句的光标对象
        self.cursor = self.conn.cursor()
        sql = "select id,biaoti,miaoshu,user_id,in_time,url1,url2,url3 from zibo_gd_wjsc ORDER BY id DESC "
        self.cursor.execute(sql)
        count = self.cursor.execute(sql)  # 数据库条数
        fetchall = self.cursor.fetchall()  # 获取数据
        # 关闭光标对象
        self.cursor.close()
        # 关闭数据库连接
        self.conn.close()
        for i in range(count):
            #print(fetchall[i])
            for t in range(8):
                if fetchall[i][t] is None or fetchall[i][t] =='' :
                    newItem = QTableWidgetItem('无数据')
                elif t == 0:
                    newItem = QTableWidgetItem(str(fetchall[i][t]))
                elif t == 4:
                    newItem = QTableWidgetItem(fetchall[i][t].strftime('%Y-%m-%d %H:%M:%S'))
                else:
                    newItem = QTableWidgetItem(fetchall[i][t])

                self.table_widget.setItem(i, t, newItem)




if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    #窗体显示
    my = picture()
    my.show()

    sys.exit(app.exec_())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值