温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中如何创建一个复杂的GUI

发布时间:2021-10-11 17:32:33 来源:亿速云 阅读:97 作者:柒染 栏目:大数据

Python中如何创建一个复杂的GUI,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创建一个复杂的GUI

我们使用Qt设计师创建一个稍显复杂的GUI。其中包括:

  • 两个选项卡TabWidgets

  • 两个子选项卡TabWidgets

  • 一个日期部件DateEdit

  • 一个日历部件CalendarWidget

  • 一个树形部件TreeWidget

  • 一个组盒子GroupBox

  • 三个单选按钮RadioButton

  • 一个字体选择盒子FontComboBox

  • 一个Lable标签

  • 一个进度条progressBar

  • 一个刻度盘Dial

  • 一个LCD数据显示器LcdNumber

所有的步骤通过Qt设计师的拖拽就可以完成。

创建主选项卡

新建一个主窗口,拖拽TabWidget部件到主窗口中:

Python中如何创建一个复杂的GUI

在选项卡1中创建一个子选项卡

继续使用TabWidget部件,在选项卡1中创建一个子选项卡:

Python中如何创建一个复杂的GUI

在子选项卡1中添加一个树部件

我们继续使用TreeWidget部件,在刚刚创建的子选项卡1中创建一个树,并添加一些信息:

Python中如何创建一个复杂的GUI

在子选项卡2中添加日期和日历部件

现在切换到子选项卡2中,我们使用DateEdit部件和CalendarWidget部件,在子选项卡2中添加一个日期修改框和一个日历框,采用垂直布局:

Python中如何创建一个复杂的GUI

在选项卡2中添加按钮组

选项卡1已经构建好了,现在切换到选项卡2。
我们先使用GroupBox部件在创建一个组部件,然后在其中添加三个PushButton部件:

Python中如何创建一个复杂的GUI

在选项卡2中添加刻度和LCD部件

我们再在选项卡2中添加一个刻度盘和LCD显示器,放置在一个组部件中:

Python中如何创建一个复杂的GUI

在选项卡2中添加一个字体选择器

接着,使用FontComboBox部件和Label部件,在选项卡2中添加一个字体选择器和文本显示:

Python中如何创建一个复杂的GUI

在选项卡2中添加一个进度栏

最后,我们使用ProcessBar部件在选项卡2中添加一个进度栏:

Python中如何创建一个复杂的GUI

这样就完成了整个GUI的图形界面设计。
接下来,我们创建信号/槽来实现GUI的事件响应。

构建信号/槽
转换UI文件为Python文件

我们首先转换设计好的UI文件为Python文件,按照之前的解耦思想,将界面代码与逻辑代码分离。

Python中如何创建一个复杂的GUI

转换UI文件后,新建一个Python文件,引入转换为Python代码的GUI窗口:

Python中如何创建一个复杂的GUI

运行一下,看是否正常:

Python中如何创建一个复杂的GUI

新建一个逻辑类

为了便于操作,我们创建一个新类MainWindow,将程序的主循环放入其中,其余的逻辑功能以类的方法的方式添加:

Python中如何创建一个复杂的GUI

实现日历选择同步到日期选择器

我们在选项卡1的子选项卡2中构建了一个日期修改器和一个日历。
我们需要在日历上对日期进行点击的时候,日期修改器上同步显示我们选择的日期。

我们在MainWindow()类中,新建一个update_date()方法,用于设置日期修改器的数值:

Python中如何创建一个复杂的GUI

再新建一个update_calendar()方法,用于设置点击日历的信号/槽,将其响应到日期修改器上:

Python中如何创建一个复杂的GUI

完整的代码如下:

Python中如何创建一个复杂的GUI

这样,我们点击了日历上的一个日期,日期修改器上就会显示我们点击日期。

Python中如何创建一个复杂的GUI

实现LCD显示器数字跟随刻度盘变化

我们在组合子部件中放置了一个Dial刻度盘和LCDNumber显示器。
我们可以设置LCD显示器上的数字跟随着刻度盘的变化而变化。

同样是创建两个方法:

Python中如何创建一个复杂的GUI

一个用来设置LCD显示器的数字,一个用来响应刻度盘的信号。

Python中如何创建一个复杂的GUI

实现按钮控制进度栏

我们在选项卡2中放置了3个单选按钮,和一个进度条,现在我们让单选按钮来控制进度栏的进度。其中,第一个按钮是默认选项,第二个按钮用来重置清零进度栏,第三个按钮用来根据LCD上的数字来更新。

设置第二个按钮清零进度栏,新建一个方法:

Python中如何创建一个复杂的GUI

Python中如何创建一个复杂的GUI
 

设置第三个按钮的功能,新建两个方法:

Python中如何创建一个复杂的GUI

Python中如何创建一个复杂的GUI
 

更新字体选择

我们还在选项卡2中放置了一个字体选择部件和一个label标签部件,我们可以设置选择了某个字体,就显示在label标签上。

Python中如何创建一个复杂的GUI

Python中如何创建一个复杂的GUI

这样,一个稍显复杂的GUI就完成了。

看完上述内容,你们掌握Python中如何创建一个复杂的GUI的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI