python gui设计 tkinter菜鸟编程_三菱简单运动控制模块教程

python gui设计 tkinter菜鸟编程_三菱简单运动控制模块教程学习tkinter之余,实现了一个简单的计算器操作,能够满足页面输入参数和计算得到结果

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

学习tkinter之余,实现了一个简单的计算器操作,能够满足页面输入参数和计算得到结果
下面是结果展示和源码记录:
在这里插入图片描述
在这里插入图片描述
源码如下:

import tkinter as tk
from tkinter import ttk
from tkinter import messagebox


class Windows(tk.Frame):
    def __init__(self, root):
        self.root = root  # 窗口的变量
        self.root.geometry("300x200")  # 初始化窗口的大小
        self.root.title("WIN")  # 初始化窗口的名称
        self.frame1 = tk.Frame()
        self.frame2 = tk.Frame()
        self.operate = tk.Frame()

        self.lable_str = tk.StringVar(None, "6666")  # 给标签一个初始值
        self.num1 = tk.StringVar(None, "")
        self.num2 = tk.StringVar(None, "")
        self.operate_str = tk.StringVar(None, "+") # 操作符号
        # self.operate = tk.StringVar(None, "")

        self.lable_num1()  # 显示lable标签
        self.lable_num2()  # 显示lable标签
        self.lable_operate()
        self.button_()  # 显示button标签

    # 图标的操作
    def lable_num1(self):
        tk.Label(self.frame1, text="输入第1个数字").grid(row=0, column=0)
        tk.Entry(self.frame1, textvariable=self.num1).grid(row=0, column=1)
        self.frame1.grid()

    def lable_num2(self):
        tk.Label(self.frame2, text="输入第2个数字").grid(row=1, column=0)
        tk.Entry(self.frame2, textvariable=self.num2).grid(row=1, column=1)
        self.frame2.grid()

    def button_(self):
        tk.Button(self.root, text="输出结果", command=self.button_operate, width=6,
                  heigh=2).grid()

    def lable_operate(self):
        tk.Label(self.operate, text="运算符").grid(row=3, column=0)
        self.selector = ttk.Combobox(self.operate, values=["+", "-", "*", "/", "//"])  # 增加默认的值的操作
        self.selector.grid(row=3, column=1)
        self.selector.current(0)  # 选择一个作为默认值
        self.selector.bind("<<ComboboxSelected>>", self.selectlistenor)  # 绑定一个事件,能够获取一个操作过程的信息
        self.operate.grid()

    def selectlistenor(self, *args):
        print("当前的运算符号为:%s" % self.selector.get())
        self.operate_str.set(self.selector.get())  # 将页面获取到的值赋给操作变量

    # 实现的后台的操作
    def button_operate(self):
        num1 = int(self.num1.get())
        num2 = int(self.num2.get())
        operate = self.operate_str.get()
        result = 0
        print(num1)
        print(num2)
        if (0 == num1) and ("/" == operate or "//" == operate):
            messagebox.showwarning("被除数不能为0")
            return
        if operate == "+":
            result = num1 + num2
        if operate == "-":
            result = num1 - num2
        if operate == "*":
            result = num1 * num2
        if operate == "/":
            result = num1 / num2
        if operate == "//":
            result = num1 / num2

        if num1 is None or num2 is None:
            messagebox.showerror("\n提示:请输入要计算的数据")
            return
        messagebox.showinfo("%s" % (result))


if __name__ == '__main__':
    root = tk.Tk()  # 初始化一个窗口
    Windows(root=root)
    root.mainloop()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168448.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021全国大学生电子设计竞赛–电源–三相逆变(硬件)「建议收藏」

    2021全国大学生电子设计竞赛–电源–三相逆变(硬件)「建议收藏」废话不多说,直接上电路!三相逆变系统的框架如下::那么,降压电路不用多说,网上多得是1、下面说一下逆变驱动电路,也是通篇一律,这里贴上电路图,2、LC滤波器很多人会问我,LC如何选取,还有人在问,为啥我做出来之后发现电感在出声?答:第一个问题,网上可以搜得到,就是一个公式,以基波50HZ进行计算就行。第二个问题,有时候电感明明很大了,仍然出声音,其实那不是电感的问题,由于瓷片电容本身结构的问题,所以就睡导致在高频下的振荡出声,如果换成安规电容或者CBB就会…

    2022年5月25日
    42
  • 数据统计的视觉盛宴—visifire charts

    数据统计的视觉盛宴—visifire charts上文中我给大家展示了微软提供的开源toolkit中图表控件的效果和使用,但是与fusioncharts相比效果还是显得逊色。本篇将介绍另一种charts控件库—visifirecharts。visifire控件库不仅涵盖wpf/silverlight,还有windowsphone的版本(由此可见将wpf的代码移植到silverlight和windowsphone上是一个非…

    2022年7月21日
    14
  • JAVA标识符命名规则及命名规范[通俗易懂]

    JAVA标识符命名规则及命名规范[通俗易懂]文章目录一、标识符可以标识什么二、标识符是什么三、标识符命名规则一、标识符可以标识什么标识符可以标识类名、方法名、变量名、接口名、常量名等。二、标识符是什么凡是程序员自己有权利命名单词的叫做标识符。但是main虽然是标识符,但是程序员不能修改。三、标识符命名规则命名规则属于语法机制,必须遵守,不遵守命名规则标识符不符合语法,编译器会报错。规则1:标识符只能有数字、字母(包括中文)、下划线、美元符号$组成。规则2:不能以数字开头。规则3:java关键字和保留字不能做为标识符。规则4:标

    2022年7月8日
    17
  • 操作系统概念(导论)

    操作系统概念(导论)SDU考试特别提醒:整无语了,遇到hmb老师出题就躺平了吧。八个论述两个计算(死锁检测、硬盘访问),论述题感觉像考研题,基本是结合xx谈谈xx这样。分数直接爆炸,心累了,呜呜。操作系统(概念)

    2022年7月1日
    26
  • mybtis jdbctype

    mybtis jdbctype思路:1.在mapper.xml中使用#{参数,jdbctype=VARCHAR}2.在javadao层中使用传入map的方式3.mybatis中就可以应用字段了mybatisjdbctype写法daomapper.xml例子:&lt;?xmlversion="1.0"encoding="UTF-8"?&gt;&lt;!DOCTYPEmapper…

    2022年10月20日
    3
  • win10系统无法识别usb大容量移动硬盘_电脑没有usb大容量存储设备选项

    win10系统无法识别usb大容量移动硬盘_电脑没有usb大容量存储设备选项WIN10突然不能使用USB大容量存储设备(移动硬盘)的解决方法昨天开始使用usb硬盘,发现一块无法识别,一块识别好了以后不能打开。可能是之前一次系统更新有bug,但是一直也没有用移动硬盘,所以没有发现。 开始尝试各种方案,已经尝试过并且无效的有以下几个:1,卸载usb驱动,重启后系统自动安装,没有用;2,驱动精灵,没有用;3,驱动人生,没有用;4,驱动禁用启用

    2022年9月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号