python

1、ini参数设置
if not os.path.exists('setting.ini'):
    config = configparser.ConfigParser()
    config.add_section('Directories')
    config.set('Directories', 'last_used_directory', 'c:')
    with open('setting.ini', 'w') as configfile:
        config.write(configfile)
config = configparser.ConfigParser()
config.read('setting.ini')
last_used_directory = config.get('Directories', 'last_used_directory')

2、打开目录

def get_directory(self, last_used_directory):
    # root = tk.Toplevel()
    # root.withdraw()
    if not last_used_directory:
        last_used_directory = os.getcwd()
    directory = filedialog.askdirectory( initialdir=last_used_directory,)

    return directory

3、ui界面 简单界面,直接用代码实现

class MyApp(QApplication):
    FileName=""

    def __init__(self, argv):
        super().__init__(argv)
        self.loop = asyncio.get_event_loop()
        self.queue = asyncio.Queue()

        self.timer = QTimer()
        self.timer.timeout.connect(self.update_text)
        self.timer.start(100)
        self.initUI()

    def initUI(self):
        self.window = QWidget()
        self.log = QTextEdit()
        self.btnOpenFile = QPushButton('打开文件')
        self.btnOpenFile.clicked.connect(self.browseFile)
        self.btnOutputDir = QPushButton('设置输出目录')
        self.btnOutputDir.clicked.connect(self.setOutputDir)
        self.btnMake = QPushButton('生成语句')
        self.btnMake.clicked.connect(self.on_click)

        self.hbox = QHBoxLayout()
        # hbox = QHBoxLayout()

        self.hbox.addWidget(self.btnOpenFile)
        self.hbox.addWidget(self.btnOutputDir)
        self.hbox.addWidget(self.btnMake)

        self.vbox = QVBoxLayout()
        # vbox = QVBoxLayout()
        self.vbox.addLayout(self.hbox)
        self.vbox.addWidget(self.log)


        self.window.setLayout(self.vbox)
        self.window.setWindowTitle('数据处理')
        self.window.setGeometry(300, 300, 800, 1000)
        self.window.setWindowIcon(QIcon('icon.png'))
        self.window.show()

if __name__ == '__main__':
    import sys
    app = MyApp(sys.argv)
    sys.exit(app.exec_())

4、复杂的界面,在qtcreator 添加文件-》 qt-》Qt Designer Form

pip install pyqt5

直接加界面和槽函数,参考Pyqt5一小时速成精髓_哔哩哔哩_bilibili中的处理方法。

from PyQt5.QtWidgets import QApplication,QWidget,QMainWindow,QAbstractItemView
from PyQt5.Qt import  QWidget,QApplication,QTableWidgetItem
from PyQt5.uic import loadUi
from PyQt5 import QtCore,QtGui
import sys

QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) #QtCore.Qt.AA_EnableHighDpiScaling
class MainWindow(QWidget):
    def __init__(self):
        super(QWidget,self).__init__()
        loadUi("./main01.ui",self)
    def btn5(self):
        print("aaaaaaaaaaa")
        self.chkSex.setChecked(True)
        self.txtName.setText("aaaaaaaaaaaaaaa")
        return
    def btn6(self):
        print("yyyy")
        print(self.txtName.text())
        print(self.chkSex.isChecked())
        self.chkSex.setChecked(False)

        self.txtName.setText("")
        return
    def chk(self):
        print("chk")
        return
if __name__ == "__main__":
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts)
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
    app = QApplication(sys.argv)
    app=QApplication.instance()
    if app is None:
        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts)

    Widget=MainWindow()
    Widget.show()


    # ...
    sys.exit(app.exec())

5、用信号槽更新界面

 界面参考Pyqt5一小时速成精髓_哔哩哔哩_bilibili中的处理方法。

相应的ui.ui 和代码 下载https://download.csdn.net/download/sunnf/88761480

import time

from PyQt5.QtWidgets import QApplication,QWidget,QMainWindow,QAbstractItemView
from PyQt5.Qt import  QWidget,QApplication,QTableWidgetItem
from PyQt5.uic import loadUi
from PyQt5 import QtCore,QtGui
from PyQt5.QtCore import QThread,pyqtSignal
import sys

QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling) #QtCore.Qt.AA_EnableHighDpiScaling

class Worker(QThread):
    updated=pyqtSignal(str)
    def run(self):
        for i in range(25):
            time.sleep(0.5)
            self.updated.emit(f'Updated {i + 1}')
class MainWindow(QWidget):
    def __init__(self):
        super(QWidget,self).__init__()
        loadUi("./ui.ui",self)
        self.worker=Worker()
        self.worker.updated.connect(self.update_text)

    def update_text(self,text):
        self.txtMsg.append(text)
    def btnClear_click(self):
        print("aaaaaaaaaaa")
        # self.chkSex.setChecked(True)
        # self.txtName.setText("aaaaaaaaaaaaaaa")
        return

    def start_work(self):
        self.worker.start()
    def btnDownLoad(self):
        print("yyyy")
        self.start_work()
        # for i in range(1,10):
        #     self.txtMsg.append(f"hello {i}")
        #     time.sleep(1)
        return


if __name__ == "__main__":
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts)
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
    app = QApplication(sys.argv)
    app=QApplication.instance()
    if app is None:
        QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts)

    Widget=MainWindow()
    Widget.show()


    # ...
    sys.exit(app.exec())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunnf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值