在python2里怎么使用ttk_关于用户界面:python 2.7中的Tkinter和ttk
我遵循的是Sentdex教程,在这里找到的,特别是关于在Python中创建GUI的这一部分。不过,教程在Python3中,我使用的是2.7。
进口Tkinter是可以的,但是当我进口ttk然后把它继承到A级的时候,就出现了问题。在python 2.7中,ttk是一个单独的模块,这意味着它不在Tkinter类中。
import Tkinter as tk
import ttk
LARGE_FONT= ("Verdana", 12)
class SeaOfBTCApp(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
tk.Tk.wm_title(self,"Seal of BTC")
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageOne, PageTwo):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
当类继承tk时出现问题,当我这样做时:
button = ttk.Button(self, text="Visit Page 1",
command=lambda: controller.show_frame(PageOne))
号
它不使用ttk,按钮看起来还是一样的(就像在tk.Button的时候)。如何使按钮看起来像TTK按钮,请帮助。
完整代码:
import Tkinter as tk
from ttk import *
LARGE_FONT= ("Verdana", 12)
class SeaOfBTC(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
tk.Tk.wm_title(self,"Sea of BTC")
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, PageOne, PageTwo):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label = tk.Label(self, text="Start Page", font=LARGE_FONT)
label.pack(pady=10,padx=10)
button = ttk.Button(self, text="Visit Page 1",
command=lambda: controller.show_frame(PageOne))
button.pack()
button2 = ttk.Button(self, text="Visit Page 2",
command=lambda: controller.show_frame(PageTwo))
button2.pack()
class PageOne(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Page One!!!", font=LARGE_FONT)
label.pack(pady=10,padx=10)
button1 = ttk.Button(self, text="Back to Home",
command=lambda: controller.show_frame(StartPage))
button1.pack()
button2 = ttk.Button(self, text="Page Two",
command=lambda: controller.show_frame(PageTwo))
button2.pack()
class PageTwo(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Page Two!!!", font=LARGE_FONT)
label.pack(pady=10,padx=10)
button1 = ttk.Button(self, text="Back to Home",
command=lambda: controller.show_frame(StartPage))
button1.pack()
button2 = ttk.Button(self, text="Page One",
command=lambda: controller.show_frame(PageOne))
button2.pack()
app = SeaOfBTC()
app.mainloop()
如果使用ttk.Button,它绝对会使用ttk按钮。它不可能做任何其他事情,因为您明确地说要使用来自ttk模块的Button类。
注意:根据您所在的平台,tk和ttk按钮看起来可能相同。
除了导入的方式,python 2.x和3.x中的tkinter几乎没有区别。
我在Ubuntu 12.04
在python2里怎么使用ttk_关于用户界面:python 2.7中的Tkinter和ttk相关推荐
- python里load什么意思_【python】json中load和loads区别
相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化 序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容 ...
- xml python2.6_如何使用前缀选项解析python 2.6中的参数为-f file.xml
我想解析从命令行传递的参数和prefix选项,如下所示: python myApp.y -f file.xml 我使用python 2.6.6所以我不能使用argparse. 而且我想让它更具通用性和 ...
- python2发送http不编码_[转]Python 2.x中常见字符编码和解码方面的错误及其解决办法...
Python 2.x中的字符编码,设计的的确不好,导致初学者,甚至是即使用Python很长时间的人,都会经常遇到字符编解码方面的错误. 下面就把一些常见情,尽量的都整理出来,并给出相应的解决办法. 看 ...
- python里unexpected eof while parsing_使用Python编程时的10个注意事项
01初始变化量 在Python里,一个表达式中的名字在它被赋值之前是没法使用的.这是有意而为的:这样能避免一些输入失误,同时也能避免默认究竟应该是什么类型的问题(0,None,"" ...
- 安装Python-2.5.2,并修改默认python版本
由于要在linux中使用python 2.5版本,结果ubuntu 10.04默认版本为2.6,因此要安装2.5版本,并将其默认编译器改为2.5版本的. 下面是主要步骤: 1. 下载源代码: wget ...
- python2 openssl安装_CentOS下openssl和python编译安装
一.前言 本文主要纪录CentOS等类型系统下openssl和python软件编译安装的操作过程和一些注意事项,以供后续回顾使用. 二.操作指导 2.1 环境说明 软件 版本 CentOS 6.9 x ...
- Python将PPT中所有文本框里的文字提取出来
Python将PPT中所有文本框里的文字提取出来 我用了正则表达式,理论上用用可以解析xml格式的都可以,如Beautiful,pandas等. 直接上代码 import os import re s ...
- python2 输出不换行_怎样使 Python 输出时不换行
怎样使 Python 输出时不换行 关注:109 答案:4 mip版 解决时间 2021-01-16 23:39 提问者雨份凉伴 2021-01-16 01:49 怎样使 Python 输出时不换 ...
- python2.7装饰器使用_在python里如何使用装饰器
1 通常可以理解它是一个hook 的回调函数. 或者是理解成python 留给二次开发的一个内置API. 一般是用回调和hook 方式实现的. 2 简单来讲,可以不严谨地把Python的装饰器看做一个 ...
- python里row是什么意思_row python
1.python脚本中经常第一句出现#!/usr/bin/env python或#!/usr/bin/python.这句话的意义下面解释: 脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用 ...
最新文章
- Flask-RESTful的简单使用
- flask与简单的form表单
- python入门须知:包、模块、库的含义以及导入以及包下__init__.py的作用
- python爬虫技术可以干什么-Python除了爬虫,还能干啥?
- DDD中的聚合和UML中的聚合以及组合的关系
- html:(39):块级元素和内联块级元素
- 不要低估AI面临的困境
- 布谷直播:仿富聊V聊、一对一社交APP、抖音短视频、社交APP源码
- 用yacc编写的算术运算计算器_10天学会四则运算小计算器设计之第5天
- 几个jquery分发库速度测评
- 安卓虚拟键盘_微软双屏Surface Duo上的安卓应用体验:可瞬间变身笔记本电脑
- 回顾 | Apache Flink x TiDB Meetup · 北京站(附 PPT 下载)
- 分享几篇有关DO-178和GJB5000对比的论文
- 小丁带你走进git的世界二-工作区暂存区分支
- [n年以前的诗] 回想那一次
- 英特尔核显驱动hd630_AMD与英特尔彻底失去合作关系?中止Kaby Lake-G更新支持
- python读取与保存图片的exif信息
- 六、软件用户操作手册-模板
- 互动媒体技术作业——十二个“一”扩展版
- CSP202112-3登机牌条码
热门文章
- 中央电视台最常用的 100 首经典背景乐曲(视频制作音乐推荐) 2009-05-12 17:31:47
- mysql 子链接_MySQL多表查询实例详解【链接查询、子查询等】
- 使用Ryu实现交换式集线器(Switching hub)
- 计算机网络技术线路连接,计算机网络基础知识之电路交换(CircuitSwitching)
- mysql加载audit失败_MySQL5.5 安装mcafee mysql-audit插件 不成功
- Adobe Camera Raw使用方法
- 五个真实的数据挖掘故事
- 私有云搭建使用docker搭建
- SEO站内优化教程-SEO站内优化方法教程
- 交换芯片CPSS-MARVELL 98DXX交换处理流程