网站怎么做搜素引擎,息烽县住房和城乡建设局网站,游戏开发物语攻略,吉野家网站谁做的软件实战开始#xff0c;快速提供编程能力#xff1b;通过实战#xff0c;分析产品需求#xff0c;梳理设计需求#xff0c;提升项目分析和架构的能力。快点跟着木辛老师一起学习吧#xff01;请点击右上角“关注”按钮关注我们哟#xff1a;跟着木辛老师学习Python编程…软件实战开始快速提供编程能力通过实战分析产品需求梳理设计需求提升项目分析和架构的能力。快点跟着木辛老师一起学习吧请点击右上角“关注”按钮关注我们哟跟着木辛老师学习Python编程知识变身快乐的编程达人吧~上节课的时候留了一个小尾巴不知道大家这几天有没有思考过这个问题呢“将主窗口的标题栏隐藏之后发现无法关闭窗口。这应该怎么解决”那么在这一节课里我们就讲一下通过编码的方式调用系统方法将窗口顺利的关闭。目前的登录页面还没有制作完毕还需要继续使用登录页面的设计稿。登录界面设计稿如果大家需要复习一下信号和槽的知识可以参考一下木辛老师之前的一篇教程传送门《木辛老师的编程课堂Python和Qt之页面布局实战篇2》。增加关闭按钮我们需要先按照设计稿的要求在主窗口中添加一个关闭按钮“x”。将关闭按钮的素材图片拷贝到当前项目的images目录下姑且名字就叫做close_windows.png
打开Qt Designer开发工具在弹出的对话框中点击“打开”按钮选择构建登录页面的.ui文件在这里是“LoginMainWin.ui”双击打开或者单击选中这个文件之后点击右下角的“打开”按钮。打开登录界面文件成功打开之后大家就可以看到之前尚未完成的登录页面。拖拽左侧Buttons区的QPushButton到主窗口并按照设计稿将这个按钮放置在560px x 10px的位置。通过右侧的属性编辑窗口修改geometry属性将这个控件的X、Y、宽度和高度分别修改为560、10、25、20。起个名字在之前的课程里并没有提到这个关闭按钮所以这个关闭按钮目前还没名没姓属于一个黑户那咱们给他起一个名字吧按照之前的规定这个关闭按钮就叫它btn_close_window
同时一定要修改这个控件的objectName属性哟否则无法通过btn_close_window这个名字找到这个控件。具体方法就是选中这个控件在属性编辑窗口中修改QObject中的objectName字段将这个字段的值修改为btn_close_window就可以了。好了目前位置我们已经将关闭按钮添加好了保存程序进入PyCharm软件右键点击LoginMainWin.ui文件在弹出来的菜单中选择“External Tools”中的“PyUIC”插件将.ui文件转换为.py文件。转换.ui文件为.py文件此时打开LoginMainWin.py文件咱们一起看看代码有没有更新吧。查看python文件的变化可以看到代码中出现了刚才添加的QPushButton控件并通过对象的setGeometry方法将对应的属性成功传递。按钮加载图片接下来需要将关闭按钮的图像放置上去了。pixmap QtGui.QPixmap(QtGui.QImage(images/close_windows.png))
self.btn_close_window.setIcon(QtGui.QIcon(pixmap))
self.btn_close_window.setIconSize(QSize(10, 10))
我们通过实例化了一个QPixmap对象加载了关闭按钮的图片文件通过使用QPushButton的setIcon方法将这个pixmap设置为QPushButton上的一个小图标同时还将图标尺寸设置为10x10px这样看起来更美观一些。增加关闭按钮之后的效果看着挺不错的(#^.^#)。好了已经添加完关闭按钮了咱们这个页面又做完一个新功能收工吧。咦······怎么还是没法关闭这个窗口呀这是怎么回事啊已经将关闭按钮添加上去了为什么还不能关闭呢是这样的我们仅仅是将按钮放置到了主窗口上并没有给它添加事件也就是说在我们点击了按钮之后它并不知道要做什么所以只能呆呆的没有反应。教程开始的时候提到过需要先复习一下“信号和槽”的相关知识在这里就需要用到了。添加事件我们需要给关闭按钮添加事件让按钮作为一个事件发起者发送出一个关闭信号。这个事件在什么情况下发生呢当我们点击关闭按钮的时候需要通知系统我们想要关闭当前主窗口请快快把主窗口关闭吧具体代码可以这么写self.btn_close_window.clicked.connect(self.close)
调用QPushButton的clicked方法并通过其connect将这个信号发送给系统的close方法完成关闭主窗口的操作。逻辑就是这么简单的咱们重新梳理下流程哈在这里的定义关闭按钮是信号发出者当点击关闭按钮之后会发射一个信号通过connect方法将这个按钮的电机事件连接到了主窗口的关闭事件上接收者窗体在接收到关闭信号之后将运行槽函数close()将主窗口关闭。这么一讲大家是不是就能理解信号和槽机制的运行机理了呢好了咱们的关闭按钮完工咯不对发现一个问题这个关闭按钮四周有一个边框呢这个在设计稿里可以没有的。咱们需要想想办法把这个边框去掉吧。这样吧今天咱们就把这个问题留作一个思考问题请大家想想如何去掉按钮的边框吧。下一节课中我们会引入一个新的概念实现去掉按钮的边框。请持续关注木辛老师的编程课哟后续更多精彩陆续到来快乐编程快乐成长