我有一个文本框小部件,其中插入了三个消息.一个是开始消息,一个是结束消息,另一个是在"单位"被销毁时发出警报的消息.我希望开始和结束消息是黑色的,但是当插入到小部件中时,被破坏的消息(请参阅我在代码中评论的位置)将显示为红色.
我不确定如何去做这件事.我看了一下如何更改tkinter文本小部件中某些单词的颜色?如果使用鼠标选择文本,它只会更改文本属性,而我希望我的文本自动插入该颜色.
有什么建议指引我正确的方向?我比较新Tkinter.我正在使用Python 3.6.
import tkinter as tk
import random
class SimulationWindow():
def __init__(self, master):
#Initialise Simulation Window
self.master = master
self.master.geometry('1024x768') #w,h
#Initialise Mainframe
self.mainframe()
def mainframe(self):
#Initialise Frame
self.frame = tk.Frame(self.master)
self.frame.grid_columnconfigure(0, minsize = 100)
self.frame.grid(row = 1, sticky = 'w')
self.txtb_output = tk.Text(self.frame)
self.txtb_output.config(width = 115, height = 30, wrap = tk.WORD)
self.txtb_output.grid(row = 1, column = 0, columnspan = 3, padx …Run Code Online (Sandbox Code Playgroud) 我有一个带有 README.md 文件的 GitHub 存储库。我的标题下方有一些盾牌,但它们是左对齐的,而不是居中的。
<a href=""></a>
<a href=""></a>
<a href=""></a>
Run Code Online (Sandbox Code Playgroud)
然而,我想将它们居中,将它们包装在<div align='center'></div>仅显示原始链接而不是屏蔽图像中。然后,我看到了另一种方法,使用包含在 a 中的 markdown 参考样式链接<h1 align='center'></h1>,如下所示:
[<h1 align="center">
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
</h1>
[contributors-shield]: https://img.shields.io/github/contributors/othneildrew/Best-README-Template.svg
[contributors-url]: https://example.com
[forks-shield]: https://img.shields.io/github/forks/othneildrew/Best-README-Template.svg
[forks-url]: https://example.com
[stars-shield]: https://img.shields.io/github/stars/othneildrew/Best-README-Template.svg
[stars-url]: https://example.com
Run Code Online (Sandbox Code Playgroud)
虽然这按照我的意愿正确地居中对齐了防护罩,但存在一个流氓开放的[情况,如下图所示:
如果我修改上面的代码以将其删除,如下所示:
<h1 align="center">
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
</h1>
Run Code Online (Sandbox Code Playgroud)
我遇到了与以前相同的问题:仅显示原始链接,而不显示屏蔽。这是什么奇怪的行为?我想要实现的目标在 HTML/markdown 中是不可能实现的,还是与屏蔽不兼容?
因此,我正在用Python 3.4编写一个文本游戏,该游戏print()经常需要使用该函数来向用户显示变量。
我一直使用的两种方法是使用字符串格式设置和字符串连接:
print('{} has {} health left.'.format(player, health))
Run Code Online (Sandbox Code Playgroud)
和,
print(player + ' has ' + str(health) + ' health left.')
Run Code Online (Sandbox Code Playgroud)
那么哪个更好呢?它们既具有可读性,又能快速键入,并且性能完全相同。哪一个是Pythonic,为什么?
问了一个问题,因为我在与Java无关的Stack Overflow上找不到答案。
所以我编程比赛,我需要一个可以存储变量,从众多数据类型lists,tuples,strings和integers.我在使用dictionaries或之间徘徊namedtuples.
GameData = namedtuple('GameData', ['Stats', 'Inventory', 'Name', 'Health'])
current_game = GameData((20,10,55,3), ['Sword', 'Apple', 'Potion'], 'Arthur', 100)
GameData = {'Stats': (20,10,55,3), 'Inventory': ['Sword', 'Apple', 'Potion'], 'Name': 'Arthur', 'Health': 100}
Run Code Online (Sandbox Code Playgroud)
你看,这里最大的问题是所有这些值都可能改变,所以我需要一个可变数据类型,而不是namedtuple.看看文档,namedtuples似乎有._replace(),所以它是否可变?
我也喜欢namedtuples有一种__repr__以name=value格式打印的方法.此外,__doc__为每个值分配单独的字段的功能namedtuple非常有用.有这个功能dictionaries吗?
作为经验丰富的Python开发人员,您认为最佳实践,更多pythonic,更适合我的需求是什么?
我使用的是Python 3.6.0.我也是Python的新手,从未使用过lists或面向对象的编程技术.
python ×3
colors ×1
dictionary ×1
github ×1
html ×1
markdown ×1
namedtuple ×1
python-3.6 ×1
python-3.x ×1
shields.io ×1
string ×1
tkinter ×1
types ×1
widget ×1