5. pyqt实战:英文字母大小写转换工具

目录

成果展示

UI页面设计

逻辑代码

动态打包


1、成果展示

英文字母大小写转换工具演示

2、UI页面设计

        因为实现的功能很简单,所以页面也很简单。

         页面设计这块,我一下1个布局设置这块,也就是上面一行4个按钮的地方。可以看到红框里,我并没有加弹簧,但是几个按钮之间的间隔是不是也比较大?

        选中之后我们看属性编辑器里有一个名为layoutSpacing的属性,我们调节后面的数值大小,就能调整这4个按钮之间的空隙啦~第2个布局中也是同理。

扫描二维码关注公众号,回复: 16058039 查看本文章

3、逻辑代码

        直接上代码吧,代码都很简单,只要Python刚入门都会写,也没啥好讲的。重点讲一下逻辑吧,可以看到前面6行代码都是和控件有关的,后面基本都是定义的函数,函数里的代码就是我们想实现的操作。

        我们点击控件,然后控件运行背后的函数或者代码实现功能,那我们是不是得先将控件和函数关联起来,这样我们在点击控件的时候,函数或者代码才能运作,对不对?

        这里你可能想到信号和槽,但是这些都是专业术语,不好理解,我就直接大白话跟你讲,你能理解,这才是关键。

        我们将实现的功能写到自定义函数里,然后将控件和函数关联,就能达到我们的目的了。那怎么将这两者关联?我们以第2句代码为例:

self.pushButton_2.clicked.connect(self.clear_pt)

           这句代码我翻译一下:self. + 控件名称 + .clicked.connect(self. + 自定义函数的名称),这样是不是就很容易理解了?像前面的self,还有中间的clicked.connect都是固定的写法,直接照搬就行了,中文部分才是需要我们去改变的部分。

        至于你想点击控件之后实现什么,就得看你往自定义函数里写什么了。比如,我这里想实现:点击“全部大写”这个按钮之后,让输入内容的英文字母都变成大写,那我是不是得用到upper()这个函数,然后你得获取输入内容然后赋值给一个变量,然后对这个变量使用upper()函数,再然后把结果再在另一个控件了显示出来,这个过程呢,就是我们要写进自定义函数里的。

        那么怎么获取输入的内容?怎么把结果在另一个控件里显示出来?在qt里,每个控件都有不同的功能,需要用特定的代码去让它们帮我们做事。比如我这里用到了plainTextEdit文本输入框控件,我想把用户输入的值赋给变量a,那我就可以这样写:a = self.plainTextEdit.toPlainText()。

        记住啊,每个控件有不同的特点,所以有有着不同的函数方式,控件有很多,方法就更多了。你用到哪个控件,就把那个控件名字放在百度搜索,然后找到你想要那个方法,再去用就行了。

        # 业务逻辑代码
        # 设置输入框里的默认提示文本
        self.plainTextEdit.setPlaceholderText('此处粘贴需要转换的内容:')

        # 1、实现 “清空输入” 按钮功能
        self.pushButton_2.clicked.connect(self.clear_pt)

        # 2、实现 “全部大写” 按钮功能
        self.pushButton_5.clicked.connect(self.upper_pt)

        # 3、实现 “全部小写” 按钮功能
        self.pushButton_4.clicked.connect(self.lower_pt)

        # 4、实现 “首字母大写” 按钮功能
        self.pushButton_3.clicked.connect(self.capitalize_pt)

        # 5、实现 ”一键复制“ 按钮功能
        self.pushButton.clicked.connect(self.copy_pt)


    # 清空输入框的函数
    def clear_pt(self):
        self.plainTextEdit.clear()

    # 全部大写的函数
    def upper_pt(self):
        a = self.plainTextEdit.toPlainText()
        b = a.upper()
        self.plainTextEdit_2.setPlainText(b)
        self.label.setText(f'共计{len(b)}个字符')

    # 全部小写的函数
    def lower_pt(self):
        c = self.plainTextEdit.toPlainText()
        d = c.lower()
        self.plainTextEdit_2.setPlainText(d)
        self.label.setText(f'共计{len(d)}个字符')

    # 首字母大写的函数
    def capitalize_pt(self):
        e = self.plainTextEdit.toPlainText()
        f = e.title()
        self.plainTextEdit_2.setPlainText(f)
        self.label.setText(f'共计{len(f)}个字符')

    # 一键复制的函数
    def copy_pt(self):
        g = self.plainTextEdit_2.toPlainText()
        pyperclip.copy(g)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

4、动态打包

        打包的话,有2种,1种是静态打包,还有1种就是比较常用的动态打包。两者的区别就是,静态打包是把所有文件,涉及到的库啊什么的一股脑放在一个exe文件里,优点是只有一个可执行文件,缺点也是致命缺点,就是打开炒鸡慢!

        动态打包与之相反,打包之后,会有文件夹,里面形形色色各种文件,有时候少了某个文件运行后的结果就不是我们想要的了,我们还得手动往文件夹里加文件,比较麻烦。但是他最大的优点就是打开速度快啊,有这点就足够了。

        首先我们需要打开安装好pyInstaller的虚拟环境,并且进入到该py文件所在的文件夹,然后进行操作。

1.动态库形式打包exe程序并指定应用程序图标:

pyinstaller -D -w -i=logo.ico test.py


2.静态形式打包成一个单独的exe程序并指定应用程序图标:

pyinstaller -F -w -i=logo.ico test.py

5、结语

        这个案例很简单,本文的目的就是想帮助刚入门的qt小伙伴们理解从页面设计到打包成可执行程序的逻辑和流程。通过这个案例,让你明白实现的核心是什么。要知道,我之前为了搞懂这个,前前后后花了差不多2个月,emmm~往事不堪回首,可能是我太笨了吧~

        如果还有不理解的小伙伴,欢迎在评论区留言,我看到就会立即回复的哈~

        

猜你喜欢

转载自blog.csdn.net/weixin_53989417/article/details/125892295
今日推荐